Forum Webscript.Ru

Программирование => PHP => Тема начата: Fransua от 13 Июля 2005, 08:06:49

Название: На одном хостинге работает, на другом нет!
Отправлено: Fransua от 13 Июля 2005, 08:06:49
Помогите мне кто-нибудь, уже не знаю что делать, оттестировал скрипт на бесплатном хостинге (holm.ru), потом на своем компьютере (на ДЭНВЕРе), теперь купил хостинг на год (атлекс) и именно там возникли проблемы.
Скажу сначала что скрипт на PHP с одной базой данных mysql.
Вот такие проблемы: есть на сайте регистрация, когда нажимаешь "Регистрация" то должна открываться страница с благодарностью и высылаться письмо, а на новом хостинге открывается страница где написано:

 Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/login/public_html/input.php on line 434

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/login/public_html/input.php on line 440
Ошибка: записи в БД!

Скрипт правильно написан, т.к. везде работал, что же означают эти записи, может кто сталкивался с подобным??
Название: На одном хостинге работает, на другом нет!
Отправлено: Fransua от 13 Июля 2005, 09:38:52
Ошибка возникает из-за этой строки в input.php:
$Temp4=mysql_fetch_row($result);

Перед ней идет присвоение переменной $result:
$result=ReadDB(\'catalogautosalon\',\'ID,Login,Pass\',"ID=\'$ID\' OR Login=\'$Login\' OR Pass=\'$Pass\'",\'\',\'\');

Вот цитата из ошибки которую я приводил в предыдущем сообщении:
"Warning: mysql_fetch_row():" Т.е. скобки пустые, а там должна
находиться переменная $result, куда она девается? Из-за чего может появляться эта ошибка?
Название: На одном хостинге работает, на другом нет!
Отправлено: tserbis от 13 Июля 2005, 10:18:11
эта ошибка, скорее всего, появляется из-за того, что перед mysql_fetch_row не выполнился запрос (возможно он находится в функции ReadDB); можно попробовать после ReadDB временно написать

echo mysql_error();

и посмотреть, что напишет...
Название: На одном хостинге работает, на другом нет!
Отправлено: Fransua от 13 Июля 2005, 10:38:44
tserbis, сделал как вы сказали, перед теми сообщениями пишет:"No Database Selected".
Что значит не выбрана БД, я ее создал, пользователя вроде добавил, недавно сделал sql-запросы на таблицу "catalogautosalon" такими вот способами: "SELECT ID FROM catalogautosalon". Все запросы прошли удачно. Что может быть еще?
Название: На одном хостинге работает, на другом нет!
Отправлено: tserbis от 13 Июля 2005, 10:43:06
Вероятно, нужно использовать функцию [p]mysql_select_db[/p] (или какой-то её аналог среди того набора ф-й, который, судя по всему, используется в обсуждаемом случае).
Название: На одном хостинге работает, на другом нет!
Отправлено: Fransua от 13 Июля 2005, 11:25:32
tserbis, я посмотрел, эта функция используется в скрипте.
Название: На одном хостинге работает, на другом нет!
Отправлено: CGVictor от 13 Июля 2005, 11:28:06
Fransua
Значит, неверно используется.

Цитировать
tserbis:
какой-то её аналог среди того набора ф-й, который, судя по всему, используется

Ищите. Может, она и используется, но с неверным именем базы.
Название: На одном хостинге работает, на другом нет!
Отправлено: Fransua от 13 Июля 2005, 13:26:17
CGVictor но ведь на другом хостинге работало, и на моем компьютере, на дэнвере  все нормально работало.
Название: На одном хостинге работает, на другом нет!
Отправлено: CGVictor от 13 Июля 2005, 14:51:43
Fransua
А ты уверен, что базы совпадают?
Название: На одном хостинге работает, на другом нет!
Отправлено: Fransua от 13 Июля 2005, 15:25:47
CGVictor так там ведь всего одна БД.
Название: На одном хостинге работает, на другом нет!
Отправлено: Fransua от 13 Июля 2005, 18:27:32
Вот кстати какие строчки ошибки вызывают, а точнее последняя:
$result=ReadDB(\'catalogautosalon\',\'ID,Login,Pass\',"ID=\'$ID\' OR Login=\'$Login\' OR Pass=\'$Pass\'",\'\',\'\');
$Temp4 =mysql_fetch_row($result);
Название: На одном хостинге работает, на другом нет!
Отправлено: CGVictor от 13 Июля 2005, 18:33:42
Fransua
Про строчки можешь не писать, это уже ясно.

Цитировать
Fransua:
так там ведь всего одна БД

Скрипт обращается к базе. На первом хосте и на локальной машине база названа определенным именем и имеет определенные настройки доступа к ней.

Проверь,
1) называется ли база тем же именем?
2) имеешь ли ты права на хосте обращаться к этой базе?
3) есть ли там база вообще? Ты на тот сервер обращаешься?
и т.п.

Более конкретно сказать ничего не смогу, т.к. с твоих слов большего не выудить.
Название: На одном хостинге работает, на другом нет!
Отправлено: Fransua от 13 Июля 2005, 18:47:43
CGVictor, после закачки скрипта я открываю html файл где надо заполнить поля, там я вписываю сервер БД, ее имя, фамилию...ой... логин и пароль. Нажимаю на кнопочку и создаются таблицы в БД. Т.е. если бы я неправильно вписал данные то никаких таблиц не создалось бы. А так получается я все указал правильно, соединение с базой прошло, таблицы создались, но потом почему-то скрипт не хочет взаимодействовать с ней. Я бы сюда не писал про это, думал что в скрипте что-то не так, но ведь в других местах работало ведь, этого я и не пойму.

Вот про пункт два бы пояснил немного, что за права, может хостинг такой что там права как-то нужно устанавливать на БД.
Название: На одном хостинге работает, на другом нет!
Отправлено: CGVictor от 13 Июля 2005, 19:05:29
Fransua
Конкретно по случаю - попробуй перепоставить скрипт.

Про права спрашивать непосредственно у хостера. Хотя, если ты их скриптом и создавал - то это маловероятно.

Если не поможет - скопипасть сюда ту функцию, где вызывается mysql_select_db (поиском по файлам)