Проблемы с Php скриптом новом сервере

  • Автор темы thergotron
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

thergotron

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

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



а вот на новом пусто -

В коде 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" хотя в базе данных данные есть. Тоесть скрипт почему-то не берет оттуда данные. И еще проблема со входом в админовку, выдается что логин и пароль неверный, хотя пароль точно известен, после переноса со старого сервера его не менял.

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

Загадочно как-то. На старом сервере все отлично работает.
 
T

thergotron

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

Что это может быть?
 
G

GOsha

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

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

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

Это отключает контроль ошибок на сервере.
Я бы сначала попробовал второй вариант - с первым много лопатить.
 
G

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") - сразу ошибку выдаст, если подгрузить не сможет.
 
G

GOsha

2 garrymax: Да скорее всего скрипт писался на низком контроле ошибок. ПРОсто нужно либо его опустить до того, на котором писался скрипт. Либо переписать под высокий контроль.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!