Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

[Решено] Проблема на PHP 5.5


natural
 Поделиться

Рекомендованные сообщения

Всем привет! 

Сразу к делу! После обновления php c 5.3 на 5.5 не приходят письмо о заказе на почту,в админ панели появляются .

Писал в тех.поддержку хостинга,говорят на этой версии php проблему не решить.

Может найдутся люди ,или варианты решения этой проблемы ?

Ссылка на комментарий
Поделиться на других сайтах


а проблема какая? какие ошибки?

вариантов то туева хуча.

Ошибок в админке я не вижу . Заказы и прочие уведомления ,типа "Заказать звонок" приходит только в админку . На почту нет.

Вопрос как Вы обновляли, могли как минимум php.ini не отредактировать.

А это здесь причем? что там редактировать то ...
Ссылка на комментарий
Поделиться на других сайтах


Писал в тех.поддержку хостинга,говорят на этой версии php проблему не решить.

что вы им писали?

что именно ОНИ вам писали?

если "говорят на этой версии php проблему не решить", значит знают, какая проблема. вот и озвучьте. выясните и озвучьте.

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

ответ от хостера:

 

Причина одна - версии PHP. При отработке скрипта нужно читать логи ошибок. Для полноты ответа - минорные обновления версий уже не совместимы между собой по коду, нужно переписывать модули под определенную версию PHP.

Ссылка на комментарий
Поделиться на других сайтах


Это ответ бота.

Где смотреть логи ошибок?

Если в логах OC нет ошибок, проверить, включен ли лог.

Если включен, а ошибок нет - к хостеру

Возможно, что отключен php mail() - к хостеру

проверить можно phpinfo()

Ссылка на комментарий
Поделиться на других сайтах

Говорят никаких ограничений нет. Ошибок в админке нет. /system/logs - чистый 

Я залез в логи своего VDS - там килотонны файлов и еще больше строчек в в этих файлах. 

Полный Ан*с короче...

 

Где этот phpinfo() можно проверить?

вот мой mail.php

<?php
class Mail {
	protected $to;
	protected $from;
	protected $sender;
	protected $subject;
	protected $text;
	protected $html;
	protected $attachments = array();
	public $protocol = 'mail';
	public $hostname;
	public $username;
	public $password;
	public $port = 25;
	public $timeout = 5;
	public $newline = "\n";
	public $crlf = "\r\n";
	public $verp = false;
	public $parameter = '';

	public function setTo($to) {
		$this->to = $to;
	}

	public function setFrom($from) {
		$this->from = $from;
	}

	public function setSender($sender) {
		$this->sender = $sender;
	}

	public function setSubject($subject) {
		$this->subject = $subject;
	}

	public function setText($text) {
		$this->text = $text;
	}

	public function setHtml($html) {
		$this->html = $html;
	}

	public function addAttachment($filename) {
		$this->attachments[] = $filename;
	}

	public function send() {
		if (!$this->to) {
			trigger_error('Error: E-Mail to required!');
			exit();			
		}

		if (!$this->from) {
			trigger_error('Error: E-Mail from required!');
			exit();					
		}

		if (!$this->sender) {
			trigger_error('Error: E-Mail sender required!');
			exit();					
		}

		if (!$this->subject) {
			trigger_error('Error: E-Mail subject required!');
			exit();					
		}

		if ((!$this->text) && (!$this->html)) {
			trigger_error('Error: E-Mail message required!');
			exit();					
		}

		if (is_array($this->to)) {
			$to = implode(',', $this->to);
		} else {
			$to = $this->to;
		}

		$boundary = '----=_NextPart_' . md5(time());

		$header = '';
		
		$header .= 'MIME-Version: 1.0' . $this->newline;
		
		if ($this->protocol != 'mail') {
			$header .= 'To: ' . $to . $this->newline;
			$header .= 'Subject: ' . $this->subject . $this->newline;
		}
		
		$header .= 'Date: ' . date('D, d M Y H:i:s O') . $this->newline;
		$header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;
		$header .= 'Reply-To: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;
		$header .= 'Return-Path: ' . $this->from . $this->newline;
		$header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;
		$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline . $this->newline;

		if (!$this->html) {
			$message  = '--' . $boundary . $this->newline;
			$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
			$message .= $this->text . $this->newline;
		} else {
			$message  = '--' . $boundary . $this->newline;
			$message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->newline . $this->newline;
			$message .= '--' . $boundary . '_alt' . $this->newline;
			$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

			if ($this->text) {
				$message .= $this->text . $this->newline;
			} else {
				$message .= 'This is a HTML email and your email client software does not support HTML email!' . $this->newline;
			}

			$message .= '--' . $boundary . '_alt' . $this->newline;
			$message .= 'Content-Type: text/html; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
			$message .= $this->html . $this->newline;
			$message .= '--' . $boundary . '_alt--' . $this->newline;
		}

		foreach ($this->attachments as $attachment) {
			if (file_exists($attachment)) {
				$handle = fopen($attachment, 'r');
				
				$content = fread($handle, filesize($attachment));
				
				fclose($handle);

				$message .= '--' . $boundary . $this->newline;
				$message .= 'Content-Type: application/octet-stream; name="' . basename($attachment) . '"' . $this->newline;
				$message .= 'Content-Transfer-Encoding: base64' . $this->newline;
				$message .= 'Content-Disposition: attachment; filename="' . basename($attachment) . '"' . $this->newline;
				$message .= 'Content-ID: <' . basename(urlencode($attachment)) . '>' . $this->newline;
				$message .= 'X-Attachment-Id: ' . basename(urlencode($attachment)) . $this->newline . $this->newline;
				$message .= chunk_split(base64_encode($content));
			}
		}

		$message .= '--' . $boundary . '--' . $this->newline;

		if ($this->protocol == 'mail') {
			ini_set('sendmail_from', $this->from);

			if ($this->parameter) {
				mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);
			} else {
				mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);
			}
		} elseif ($this->protocol == 'smtp') {
			$handle = fsockopen($this->hostname, $this->port, $errno, $errstr, $this->timeout);

			if (!$handle) {
				trigger_error('Error: ' . $errstr . ' (' . $errno . ')');
				exit();					
			} else {
				if (substr(PHP_OS, 0, 3) != 'WIN') {
					socket_set_timeout($handle, $this->timeout, 0);
				}

				while ($line = fgets($handle, 515)) {
					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($this->hostname, 0, 3) == 'tls') {
					fputs($handle, 'STARTTLS' . $this->crlf);

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 220) {
						trigger_error('Error: STARTTLS not accepted from server!');
						exit();								
					}
				}

				if (!empty($this->username)  && !empty($this->password)) {
					fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 250) {
						trigger_error('Error: EHLO not accepted from server!');
						exit();								
					}

					fputs($handle, 'AUTH LOGIN' . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 334) {
						trigger_error('Error: AUTH LOGIN not accepted from server!');
						exit();						
					}

					fputs($handle, base64_encode($this->username) . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 334) {
						trigger_error('Error: Username not accepted from server!');
						exit();								
					}

					fputs($handle, base64_encode($this->password) . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 235) {
						trigger_error('Error: Password not accepted from server!');
						exit();								
					}
				} else {
					fputs($handle, 'HELO ' . getenv('SERVER_NAME') . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 250) {
						trigger_error('Error: HELO not accepted from server!');
						exit();							
					}
				}

				if ($this->verp) {
					fputs($handle, 'MAIL FROM: <' . $this->from . '>XVERP' . $this->crlf);
				} else {
					fputs($handle, 'MAIL FROM: <' . $this->from . '>' . $this->crlf);
				}

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 250) {
					trigger_error('Error: MAIL FROM not accepted from server!');
					exit();							
				}

				if (!is_array($this->to)) {
					fputs($handle, 'RCPT TO: <' . $this->to . '>' . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
						trigger_error('Error: RCPT TO not accepted from server!');
						exit();							
					}
				} else {
					foreach ($this->to as $recipient) {
						fputs($handle, 'RCPT TO: <' . $recipient . '>' . $this->crlf);

						$reply = '';

						while ($line = fgets($handle, 515)) {
							$reply .= $line;

							if (substr($line, 3, 1) == ' ') {
								break;
							}
						}

						if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
							trigger_error('Error: RCPT TO not accepted from server!');
							exit();								
						}
					}
				}

				fputs($handle, 'DATA' . $this->crlf);

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 354) {
					trigger_error('Error: DATA not accepted from server!');
					exit();						
				}
            	
				// According to rfc 821 we should not send more than 1000 including the CRLF
				$message = str_replace("\r\n", "\n",  $header . $message);
				$message = str_replace("\r", "\n", $message);
				
				$lines = explode("\n", $message);
				
				foreach ($lines as $line) {
					$results = str_split($line, 998);
					
					foreach ($results as $result) {
						if (substr(PHP_OS, 0, 3) != 'WIN') {
							fputs($handle, $result . $this->crlf);
						} else {
							fputs($handle, str_replace("\n", "\r\n", $result) . $this->crlf);
						}							
					}
				}
				
				fputs($handle, '.' . $this->crlf);

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 250) {
					trigger_error('Error: DATA not accepted from server!');
					exit();						
				}
				
				fputs($handle, 'QUIT' . $this->crlf);

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 221) {
					trigger_error('Error: QUIT not accepted from server!');
					exit();						
				}

				fclose($handle);
			}
		}
	}
}
?>
Изменено пользователем afwollis
Ссылка на комментарий
Поделиться на других сайтах


Создайте файл, например
inf.php

<?php
phpinfo()
?>

Сохраните в корень

 

Сайт/inf.php

 

Будет интересовать строка

disable_functions

Ссылка на комментарий
Поделиться на других сайтах

К хостеру

Заставить хостера ясно объяснить!

Ссылка на комментарий
Поделиться на других сайтах

напишу им в тикет. отпишусь как будет ответ.

Интересно было бы услышать кто еще обновился до php5.5 и как дела, ничего не тревожит их. )

Ссылка на комментарий
Поделиться на других сайтах


Я залез в логи своего VDS -

 

И этим все сказано!!!!  И причем тут хостер? Обычно вдс поддерживают владельцы, а не хостер. Максимум они могут ответить приближенно к решению, в зависимости от того какой хостер.

 

Если в тарифе у вас есть тех поддержка... то можете и потребовать.

Ссылка на комментарий
Поделиться на других сайтах

А поддержка здесь при том , что она ответила: Проблема на этой версии php 5.5 не решается . Есть она , нет её. По барабану .

Да, в тарифе нет тех.поддержки.

Реально, это относится больше ко мне чем к тех.поддержке. Все верно говорите.

Ссылка на комментарий
Поделиться на других сайтах


Не бросайте в беде )) Должен быть выход же.

Перерыл забугорные форумы и ничего подобного , такое впечатление что я первый кто обновился на opencart .

Найду решение, отпишу .

Ссылка на комментарий
Поделиться на других сайтах


Не первый))) Небыло времени да и особого желания решать проблему, поэтому откатился на 5.4.4

Ссылка на комментарий
Поделиться на других сайтах


  • 2 недели спустя...

Есть проблема, посоветуйте плз куда копать.
 

# php -v
PHP 5.5.17 (cli) (built: Sep 20 2014 17:12:00)
 
opencart 1.5.6.4
 
nginx + apache
 

куки, конечно, почистил и в браузере и на сервере

 

Не могу попасть в админку:

при вводе успешного логина/пароля для входа в админку - перебрасывает на /admin/index.php?route=common/home&token=1eed66fd51c1d824366f1d8f36afbd25
 

my.ip.ad.dr - - [02/Oct/2014:12:56:08 +0400] 200 "GET /admin/index.php?route=common/home&token=1eed66fd51c1d824366f1d8f36afbd25 HTTP/1.1" 1484 ""http_x_forwarded_for"

Это соответственно единственная ошибка и видимо сессия не открывается,  

[Thu Oct 02 12:56:26 2014] [error] [client 188.123.248.51] PHP Fatal error:  Call to a member function get() on a non-object in /home/site.ru/http/admin/index.php on line 84, referer: http://site.ru/admin/index.php?route=common/home&token=1eed66fd51c1d824366f1d8f36afbd25

 

index.php:84

if ($config->get('config_error_display')) {

пути в конфигах правильные и не менялись, витрина работает, но с аналогичной ошибкой, гугл не помог(

Ссылка на комментарий
Поделиться на других сайтах


  • 3 недели спустя...
  • 4 месяца спустя...

Нашел на просторах интернета

Это не нормально. Уже версия 5.6.6, есть драйвер для mysqli (http://www.opencart.com/index.php?route=extension/extension/info&extension_id=13041&filter_search=mysql).
Берем этот файл и копируем в нужную папку до того как будем устанавливать сайт (в /system/database, туда и распакует по умолчанию). Потом устанавливаем. После 3ьего этапа (ввода данных о БД и нажатия далее) сайт валится в белый экран с ошибками.
Но надо набраться смелости забить на это, пойти в конфиги, исправить их (в файлах /config.php и /admin/config.php заменить “define(‘DB_DRIVER’, ‘mysql’);” на “define(‘DB_DRIVER’, ‘mysqliz’);”, потом удалить папку инсталл, и обновить окно браузера icon_smile.gif.pagespeed.ce.nuZG_6txEH.g

Ссылка на комментарий
Поделиться на других сайтах


  • 2 месяца спустя...
Гость
Эта тема закрыта для дальнейших сообщений.
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.