Jump to content

Recommended Posts

Всем привет! 

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

Говорят никаких ограничений нет. Ошибок в админке нет. /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);
			}
		}
	}
}
?>
Edited by afwollis

Share this post


Link to post
Share on other sites

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

<?php
phpinfo()
?>

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

 

Сайт/inf.php

 

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

disable_functions

Share this post


Link to post
Share on other sites

disable_functions I no value I no value

Share this post


Link to post
Share on other sites

К хостеру

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

:-D  Брат))

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

Share this post


Link to post
Share on other sites

нет, всё ок)

Share this post


Link to post
Share on other sites

нет, всё ок)

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.