Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с Php скриптом новом сервере
Форум программистов > Интернет и сети > Web-программирование > Общие вопросы
thergotron
Имеется скрипт службы знакомств написанный на PHP, использующий базу данных MySQL. После того как я перенес его на новый сервер, почему-то появились ошибки и перестали работать некоторые функции...и тоже самое на локахосте(Windows XP)

Вот например неработает страница с формой регистрации. На старом сервере все ок -

http://66.221.192.244/default.php?open=signup

а вот на новом пусто - http://behibak.com/default.php?open=signup

В коде default.php:

Цитата
if($open=="signup")
include("signup.php");
else
include("searchRecords1.php");
?>


Почему не инклюдится signup.php непонятно, вместо него searchRecords1.php. Если убрать searchRecords1.php всеравно пусто. signup.php находится в той-же директории. Если открыть signup.php напрямую то видно что форма регистрации работает, но зарегестрироватся не получается, в action стоит default.php?open=signup, после отправки форма переходит на страницу с той-же ошибкой, даже если поставить прямо signup.php всеравно не работает, форма еще раз загружается.

Еще при поиске , выдается "no records found" хотя в базе данных данные есть. Тоесть скрипт почему-то не берет оттуда данные. И еще проблема со входом в админовку, выдается что логин и пароль неверный, хотя пароль точно известен, после переноса со старого сервера его не менял.

В админовке пользователи отображаются, но при попытке удалить, выводится пустой экран. А так-же не работает одна страница, вместо нее появляется квадратик.

Загадочно как-то. На старом сервере все отлично работает.
thergotron
Врубил E_ALL в php.ini получаю ошибки Notice: Undefined variable: на всех страницах

Что это может быть?
GOsha
Это значит, что у вас не определена какая-то переменная. Криволапые программеры.
Как скоростной вариант решения проблемы:
Найти эту переменную в коде и поставить перед ней @.
Т.о.Было:
Код
$variable = ....

А станет:
Код
@$variable = ....

Значок @ - подавляет ошибки PHP.

МОжно еще в первую строчку главного скрипта вставить:

Код
<?php
Error_Reporting(1);
?>


Это отключает контроль ошибок на сервере.
Я бы сначала попробовал второй вариант - с первым много лопатить.
garrymax
  1. такие вопросы, в первую очередь, надо суппорту хостера задавать;
  2. если с MySQL записями проблема, то отдельную страницу с запросом SELECT * без фильтров и посмотреть, что пришло;
  3. whois behibak.com - свободен - может по IP, что бы посмотреть.
Обычно, самая распространенная ошибка при переносе скриптов к другому хостеру, связана как раз с переменными, которые инициализируются от глобальных. Если так, то перепиши прямое обращение к ним, например $name=$_POST['name']; и т/д.

Еще (по include), опция include_path должна иметь первым параметром точку (текущую директорию). Попробуй в .htaccess поставить строку php_value include_path ".:/usr/local/lib/php", но будет работать если PHP модулем подгружен, а иначе критическую ошибку выдаст (правильнее вставлять в блок <IfModule mod_php4.c> </IfModule>). И еще, если $err= include("signup.php");, то 1 = подключил и тогда ошибки в signup.php, а лучше заменить на require_once("signup.php") - сразу ошибку выдаст, если подгрузить не сможет.
GOsha
2 garrymax: Да скорее всего скрипт писался на низком контроле ошибок. ПРОсто нужно либо его опустить до того, на котором писался скрипт. Либо переписать под высокий контроль.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.