Проблема MySQL и PHP

Статус
В этой теме нельзя размещать новые ответы.

websar

Постоялец
Регистрация
7 Июл 2007
Сообщения
68
Реакции
36
- это не ошибка, а предупреждение))
О том, что нет результата поиска по базе. Если у вас, все работало на денвере, то вопрос, на какой версии? По ходу, переменная не определена.

Скорее всего, вам надо сделать эмуляцию register_globals.
Можно поступить так, чтобы не переписывать скрипты:
PHP:
for ($i=0; $i<count($_POST); $i++) {list($key,$val)=each($_POST);$$key=$val;};
for ($i=0; $i<count($_GET); $i++) {list($key,$val)=each($_GET);$$key=$val;};
этот код вставь в начале скрипта, или в конфигурационный файл.
Результат выполнения этого кода - все переменные, взятые из массивов GET и POST будут преобразованы.

Так получается если это предупреждение, то работа скрипта от этого не должна пострадать? Скрипт-то должен выполняться? А этого не происходит.
 

rex1963

Гуру форума
Регистрация
19 Фев 2007
Сообщения
228
Реакции
51
А кто вам сказал, что скрипт не выполняется?
Просто выдается предупреждение, которое можно убрать, если прописать в начале скрипта
PHP:
 Error_Reporting(E_ALL & ~E_NOTICE);
У вас, проблема в другом.
Как вы знаете, переменные из одного скрипта в другой передаются методами GET, POST или сессией.
если существует адрес index.php?dupa=1 то в скрипт передается значение $_GET['dupa']=1;
применительно к вашему варианту,
PHP:
$usersql = "SELECT * FROM ".TAB_USERS." where id=".$xid);
$rescuser = MYSQL_QUERY($usersql);
$us = mysql_fetch_array($rescuser);
У вас, переменная $xid поступает или из формы, или из адреса, но при register_globals off , она должна иметь вид
$_GET['xid'] $_POST['xid'], а у вас , эта прееменная поступает в скрипт как $xid и уже там, определяется как глобальная. Но при register_globals off переменная в скрипт не передается, и естественно ваш запрос принимает вид
PHP:
$usersql = "SELECT * FROM ".TAB_USERS." where id=);
Если условие выборки из базы не определено, то естественно в результирующем массиве будет пусто, и скрипт пройдет через парсер и выдаст вам либо пустую страницу, либо нотиксы.
Вот для того, чтобы эмулировать работу register_globals, я вам и написал несколько строк, которые вы должны разместить в самом верху скрипта.
 

tostrss

Мой дом здесь!
Регистрация
16 Окт 2007
Сообщения
768
Реакции
219
Так получается если это предупреждение, то работа скрипта от этого не должна пострадать? Скрипт-то должен выполняться? А этого не происходит.

В самом начале скрипта пропиши

PHP:
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL);

должны появится ошибки, если не появятся, значит скрипт работает, но неправильно.
 

websar

Постоялец
Регистрация
7 Июл 2007
Сообщения
68
Реакции
36
В самом начале скрипта пропиши

PHP:
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL);

должны появится ошибки, если не появятся, значит скрипт работает, но неправильно.

Да, появилась куча новых ошибок. А что же делать дальше? Если прописать код

PHP:
for ($i=0; $i<count($_POST); $i++) {list($key,$val)=each($_POST);$$key=$val;}; 
for ($i=0; $i<count($_GET); $i++) {list($key,$val)=each($_GET);$$key=$val;};

то ничего не помогает.

PHP:
Error_Reporting(E_ALL & ~E_NOTICE);

И это тоже не помогает.
Что же делать?
 

tostrss

Мой дом здесь!
Регистрация
16 Окт 2007
Сообщения
768
Реакции
219
Да, появилась куча новых ошибок. А что же делать дальше? Если прописать код

Дальше эти ошибки нужно править. Показывай ошибки, показывай кусок строки с этой ошибки и т.д.
 
M

masto

Прохожие
у тебя ошибка в самом запросе.
посмотри мой предыдущий пост
 

websar

Постоялец
Регистрация
7 Июл 2007
Сообщения
68
Реакции
36
Дальше эти ошибки нужно править. Показывай ошибки, показывай кусок строки с этой ошибки и т.д.

Ошибок получается большое количество :D
Вообще по идее этот скрипт должен работать без проблем (скрипт SmartTop 6.01). Может кто смотрел данный скрипт?
На Денвере всё работает.
 

tostrss

Мой дом здесь!
Регистрация
16 Окт 2007
Сообщения
768
Реакции
219
Ну выкладывай ошибки, хотяб первые части. Телепаты в отпуске.
 

websar

Постоялец
Регистрация
7 Июл 2007
Сообщения
68
Реакции
36
Ну выкладывай ошибки, хотяб первые части. Телепаты в отпуске.

Я убрал все ошибки таким путем:
- было:
PHP:
$usersql = "SELECT * FROM ".TAB_USERS." where id=".$xid); 
$rescuser = MYSQL_QUERY($usersql); 
$us = mysql_fetch_array($rescuser);

- теперь:
PHP:
$usersql = "SELECT * FROM ".TAB_USERS." where id=".$xid); 
$rescuser = MYSQL_QUERY($usersql); 
$us = @mysql_fetch_array($rescuser);

Убрал простым добавлением @

Только вот теперь ошибок нет, но и работы скрипта вообще никакой!!!
Что же делать???
 

rex1963

Гуру форума
Регистрация
19 Фев 2007
Сообщения
228
Реакции
51
Скачал и установил с ветки нуледа данный скрипт
Денвер 3.
В файле weboffice.php вставил
PHP:
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL);
и поперли предупреждения.
Я не знаю, как у автора топика мог работать данный скрипт на Денвере? Лично у меня, он не пошол, пришлось с полчаса ковырять его, чтобы все заработало на локале.
Я не любитель комментировать чужие работы, но я бы не стал пользоваться данным скриптом однозначно. Единственное, что вырвать части кода, для того, чтобы снимать статсы с доров или сайтов на фрихостах.
На сервере проверять однозначно не буду, если автору топика нужно, могу скинуть скрипт на мыло. Адрес мыла в приват.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху