Перейти к содержимому


ivrndesign

Регистрация: 03 Sep 2013
Offline Активность: Oct 07 2014 05:35 PM
-----

Мои сообщения

В теме: Простенький модуль ЧПУ, версия 2

24 September 2014 - 06:34 PM

А то, что убрал секцию в которой эта функция используеться мне чем-то грозит? Или только тем, что я не буду знать деталей ошибок, если что

В теме: Простенький модуль ЧПУ, версия 2

24 September 2014 - 06:24 PM

Я так понимаю, что если дергается функция xEscSQL, то есть какой-то трабл с БД?

А теперь, пожалуйста, подскажите ничего ли я не поломал.
(Я просто не большой мастер в программинге).

Итак, есть функция, которая дергает xEscSQL в файле mysql.php
function db_query($s) //database query
{
	    global $sc_4, $sc_8, $gmc;
	    if (isset($gmc) && $gmc == 1) $sc_81 = getmicrotime();
	    // $scriptv = getmicrotime();
	    $res = array();
	    $res["resource"] = mysql_query($s);
	    /*
	    $scriptp = getmicrotime();
	    $rom = $scriptp-$scriptv;
	    print $rom." - ".$s."<br>";
	    */
  
		    if(!$res['resource']){
			    $out = "ERROR: ".mysql_errno().":".mysql_error()."\nSql: ".$s."\nLink: ".$_SERVER["REQUEST_URI"]."\nDate: ".date("d.m.y - H:i:s")."\nDump:\n";
			    ob_start();
			    var_dump($_GET);
			    var_dump($_POST);
			    $tmpa=ob_get_contents();
			    ob_end_clean();
			    $out .= $tmpa;
			    mysql_query("insert into ".MYSQL_ERROR_LOG_TABLE." (errors, tstamp) VALUES ('".xEscSQL(ToText($out))."', NOW())");
			    $ecount = mysql_fetch_row(mysql_query("select count(*) from ".MYSQL_ERROR_LOG_TABLE));
			    $ecount = $ecount[0] - 50;
			    if($ecount > 0) mysql_query("delete from ".MYSQL_ERROR_LOG_TABLE." ORDER BY tstamp ASC LIMIT ".$ecount);
			    // die('Wrong database query!');
		    }
	  
	    $res["columns"]=array();
	    $column_index = 0;
	    while($xwer = @mysql_fetch_field($res["resource"])){
			    $res["columns"][$xwer->name] = $column_index;
			    $column_index++;
	    }
	    if (isset($gmc) && $gmc == 1) {
		    $sc_82 = getmicrotime();
		    $sc_4++;
		    $sc_8 = $sc_8+$sc_82-$sc_81;
	    }
	    return $res;
}

В ней я закомментировал кусок:
   if(!$res['resource']){
			    $out = "ERROR: ".mysql_errno().":".mysql_error()."\nSql: ".$s."\nLink: ".$_SERVER["REQUEST_URI"]."\nDate: ".date("d.m.y - H:i:s")."\nDump:\n";
			    ob_start();
			    var_dump($_GET);
			    var_dump($_POST);
			    $tmpa=ob_get_contents();
			    ob_end_clean();
			    $out .= $tmpa;
			    mysql_query("insert into ".MYSQL_ERROR_LOG_TABLE." (errors, tstamp) VALUES ('".xEscSQL(ToText($out))."', NOW())");
			    $ecount = mysql_fetch_row(mysql_query("select count(*) from ".MYSQL_ERROR_LOG_TABLE));
			    $ecount = $ecount[0] - 50;
			    if($ecount > 0) mysql_query("delete from ".MYSQL_ERROR_LOG_TABLE." ORDER BY tstamp ASC LIMIT ".$ecount);
			    // die('Wrong database query!');
		    }

И у меня все заработало:

Вот и ответ получился красивый
HTTP/1.1 301 Moved Permanently
Server: nginx admin
Date: Wed, 24 Sep 2014 16:28:47 GMT
Content-Type: text/html; charset=windows-1251
Connection: keep-alive
X-Powered-By: PHP/5.2.17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=58f5c003e6b332c3ddeb15f001febc75; path=/
Location: /motornoe-maslo-mopar-atf--4.html
Last-Modified: Wed, 24 Sep 2014 16:28:46 GMT

или

This website has a 301 Redirect to:
/motornoe-maslo-mopar-atf--4.html
This redirect is Search Engine Friendly.

В теме: Простенький модуль ЧПУ, версия 2

24 September 2014 - 04:36 PM

А то сейчас проверяю, по старой ссылке идет 500 ошибка.

Ну так смотрите логи нгинкса, там обычно четко написано, в чем ошибка. Скорее всего, либо какой-то функции нет, либо повторное определение функции.

В начале index.php закомментирована строка

#require_once "core/functions/functions.php";

попробуйте ее раскомментировать.

В случае какой-либо ошибки в запросах используется функция xEscSQL, которая находится в functions.php. В случае нормальной работы ни она, ни какая-либо другая функция из functions.php в index.php не используются, поэтому штатно строка закомментирована.


Спасибо.

Раскоментировал - вообще не работает. "Белый экран"
Ситуация сейчас такая. Сайт работает и ЧПУ работает. Все редактируеться и обновляеться.
Проблема только при заходе по старым ссылкам.

Поковыряюсь в логах.

Кстати да.
Call to undefined function  xescsql() in /home/autolide/public_html/test/core/includes/database/mysql.php on line 59

при раскомментированном function.php выдает такое
[24-Sep-2014 14:49:05] PHP Warning:  mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/autolide/public_html/test/core/includes/database/mysql.php on line 213

В теме: Простенький модуль ЧПУ, версия 2

24 September 2014 - 02:46 PM

Да, старые ссылки именно в таких форматах

http://test.autolide...roduct_284.html
http://test.autolide...ategory_97.html

В теме: Простенький модуль ЧПУ, версия 2

24 September 2014 - 07:58 AM

Короче заработало вроде все. Буду тестировать.

Лучше из этого - последнего на текущий момент - архива.
Что исправлено в админке (modules_friendly_cpu.php) я уже не помню, а в sitemap.php исправлено /news/news/novost_na_translinte.html, т.к. должно быть /news/novoct...


Спасибо большое.
Кстати, не совсем понял, как настроить, чтобы по старым ссылкам выдавал 301 редирект? А то сейчас проверяю, по старой ссылке идет 500 ошибка.
Или оно должно автоматом работать и у меня траблы на хостинге какие-то?

Вот собственно ответ:
HTTP/1.1 500 Internal Server Error
Server: nginx admin
Date: Wed, 24 Sep 2014 07:35:56 GMT
Content-Type: text/html
Content-Length: 0
Connection: keep-alive
X-Powered-By: PHP/5.2.17