Перейти к содержанию

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

Всем привет! 

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

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

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

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

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

А это здесь причем? что там редактировать то ...

Поделиться сообщением


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

а откатиться?)

откатится проблематично ..

Я не верю что нет выхода. Должен же бытЬ!!(

Поделиться сообщением


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

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

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

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

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

Поделиться сообщением


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

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

 

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

Поделиться сообщением


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

disable_functions I no value I no value

Поделиться сообщением


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

К хостеру

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

 

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

 

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

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

:-D  Брат))

при откате ничего не отвалилось ?

Поделиться сообщением


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

нет, всё ок)

Поделиться сообщением


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

нет, всё ок)

Если решения не найду, даунгрейд - неизбежен .

Поделиться сообщением


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

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

# 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')) {

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

Поделиться сообщением


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

Причем тут php 5.5 и вход в админку ? Не ПоНятнО..

Поделиться сообщением


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

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

Это не нормально. Уже версия 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

Поделиться сообщением


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

А если сайт не устанавливать , в смысле на готовом изменить конфиг не выйдет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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