Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

Всем привет! 

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

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

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

Надіслати
Поділитися на інших сайтах


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

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

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

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

А это здесь причем? что там редактировать то ...
Надіслати
Поділитися на інших сайтах


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

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

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

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

Надіслати
Поділитися на інших сайтах

  • 4 weeks later...

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

 

Причина одна - версии 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 weeks later...

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

# 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 weeks later...
  • 4 months later...

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

Это не нормально. Уже версия 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 months later...
Гість
Ця тема закрита для публікації повідомлень.
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.