PDA

Просмотр полной версии : не работает php


connectoid
08.06.2004, 08:39
Установил себе apache2 и php4 для отладки скриптов, вроде бы правильно настроил, примитивные скрипты типа "hallo world" работают. Но в более сложных скриптах выдает ошибки типа:
"Undefined variable: author in C:\Server\WWW\forum.php on line 32", там где их не должно быть.
Явно что-то с настройкой, а что именно?

Constantine
08.06.2004, 10:17
Прикрепи forum.php хотя бы до 34 строки, посмотрим...

Nirva
08.06.2004, 17:09
это означает, что переменной $author у тебя ранее нет, а ты ее как-либо используешь (втч присваеваешь новое значение путем конкатенации).
полагаю register_globals, как всегда =)

Wave
08.06.2004, 17:39
если ты добавишь в начало скрипта

error_reporting(error_reporting() ^ E_NOTICE);


оно перестанет ругаться по поводу неинициализированных переменных

правильно ли это - другой вопрос.

Crazy
09.06.2004, 23:30
Оригинал написал(а) Wave
правильно ли это - другой вопрос.

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

Wave
10.06.2004, 00:03
хорошее сравнение :)

connectoid
10.06.2004, 01:55
2Nirva
полагаю register_globals, как всегда =)

можно подробнее...

kompadre
10.06.2004, 02:02
А можно нажать на кнопку поиск?

connectoid
10.06.2004, 07:21
2 Constantine

Вот кусок скрипта, ошибка в 25 строке (неопределення переменная trophimov .....)

<?
$dimidrol = date("d.m.Y");
print "<table width= cellpadding=0 cellspacing=0 border=0 align=center>
<p>| <a href=\"forum.php?trofimov=add\">Äîáàâèòü òåìó </a>| | <a
href=\"forum.php?trofimov=forum\">Ïðîñìîòðåòü òåìû</a> | Ñåãîäíÿ: $dimidrol </p>
";

print "<body>
<div align=\"center\"><center>

<table border=\"1\" width=\"711\" height=\"25\" bordercolor=\"#FFFFFF\" bgcolor=\"#E9E9E9\"
bordercolorlight=\"#FFFFFF\" bordercolordark=\"#FFFFFF\">
<tr>
<td width=\"209\" height=\"25\">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Òåìà</td>
<td width=\"209\" height=\"25\">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Àâòîð</td>
<td width=\"209\" height=\"25\">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Äàòà</td>
</tr>
</table>
</center></div>
</body>";

switch($trofimov) :
default :
print "<table width= cellpadding=0 cellspacing=0 border=0 align=center>";

break;
case("add") :
print "
<center><h2>Äîáàâèòü òåìó</h2></center>
<form action=forum.php?trofimov=trofimov method=post>
Èìÿ : <input type=text value='' name=name size=30><br>
E-mail : <input type=text value='' name=mail size=30><br>
Çàãîëîâîê : <input type=text value='' name=zag size=30><br>
Ñîîáùåíèå : <textarea cols=40 rows=5 size=100 name=mess></textarea><br>
<input type=submit value='Îòïðàâèòü'>
</form>
";

break;
case("trofimov") :

if ($name == "") {print "Ââåäèòå èìÿ!"; exit;}
if ($mess == "") {print "Ââåäèòå òåêñò!"; exit;}
if ($zag == "") {print "Ââåäèòå çàãîëîâîê!"; exit;}
if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $mail) and $mail != "") {print "Âû ââåëè íåêîððåêòíûé E-mail àäðåñ!"; exit;}
$er = 1;

Crazy
10.06.2004, 10:40
Оригинал написал(а) connectoid
switch($trofimov)

Где ты присвоил значение этой переменной?

Нигде? Тогда что тебя удивляет?

Constantine
11.06.2004, 11:29
В догонку вообще по скрипту...
Зачем проверять заполнение полей в ПХП? Для этого есть джаваскрипт... Обрати внимание, что скрипт выпадает при первой же ошибке заполнения и бедный юзер будет сабмитить и перезагружать страницу до тех пор пока не поймет что от него хотят ;)

Nirva
11.06.2004, 14:44
2Constantine: ты пошутил или правда с ума сошел?? хинт: у меня яваскрипт отключается нажатием сочитания двух клавиш.

Constantine
11.06.2004, 17:28
2Nirva: Сошел, видимо... :rolleyes: Это я как будто только что родился? М-да... вот и верь после этого людям :)