[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: правильность работы
eLDeR
Приветствую! написал одну из 2х страниц гостевой проверил выдает ошибку
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in Z:\home\localhost\www\gbadd_db.php on line 5

PHP
<?
if ($_POST['addrecord']) { // если требуется добавить запись
/* вывод формы для сообщения */
echo "<html><center><h2>Моя гостивая книга</h2></center>
<form action="
gbadd_db.php" method="POST">
<table>
<tr><td>Ваше имя:</td>
<td><input type="
text" name="username" size="40" />
</td></tr>
<tr><td>Город:</td>
<td><input type="
text" name="city" size="40" />
</td></tr>
<tr><td>Сайт:</td>
<td><input type="
text" name="site" size="40" />
</td></tr>
<tr><td>e-mail:</td>
<td><input type="
text" name="mail" size="40" />
</td></tr></table>
Сообщение:<BR />
<textarea name="
msg" rows="4" cols="60"></textarea><BR />
<input type="
submit" name="addok" value="Добавить запись" />
<input type="
reset" name="reset" value="Отмена" />
</form><BR /></html>"
; }
}
 elseif ($_POST['addok']) { // если потвердили ввод в форму
header("location:gbookdb.php") // переход к странице показа
if (!$_POST['msg']){exit}; //если сообщение пустое то выход!
$t=date('Y-m-d H:i:s') //текущие дата и время
/* подключение к базе данных */
$server="localhost"; //расположение
$dbname="gbook"; // имя БД
$user="root"; // имя пользователя БД
$pass=""; // Пароль пользователя БД
$connect=mysql_connect($server,$dbname,$pass,);
$db=mysql_select_db($connect,gbook);
$strsql="INSERT INTO gbook (username, city, site, mail, msg, date)
VALUES (\"{$_POST['username']}\", \"{$_POST['city']}\", \"{$_POST['site']}\", \"{$_POST['mail']}\", \"{$_POST['msg']}\", CAST('"
.$t"' AS datetime))";
$rez=mysql_query($strsql,$connect); //выполнение запроса
mysql_close($connect); //отключение от базы данных
}




Спустя 3 минуты, 15 секунд (6.10.2009 - 14:55) Kuliev написал(а):
eLDeR
Кавычки экранируй

Спустя 3 минуты, 1 секунда (6.10.2009 - 14:58) eLDeR написал(а):
Теперь в 24 строчке
Parse error: syntax error, unexpected '{' in Z:\home\localhost\www\gbadd_db.php on line 24

PHP
<?
if ($_POST['addrecord']) { // если требуется добавить запись
/* вывод формы для сообщения */
echo "<html><center><h2>Моя гостивая книга</h2></center>
<form action=\"gbadd_db.php\" method=\"POST\">
<table>
<tr><td>Ваше имя:</td>
<td><input type=\"text\" name=\"username\" size=\"40\" />
</td></tr>
<tr><td>Город:</td>
<td><input type=\"text\" name=\"city\" size=\"40\" />
</td></tr>
<tr><td>Сайт:</td>
<td><input type=\"text\" name=\"site\" size=\"40\" />
</td></tr>
<tr><td>e-mail:</td>
<td><input type=\"text\" name=\"mail\" size=\"40\" />
</td></tr></table>
Сообщение:<BR />
<textarea name=\"msg\" rows=\"4\" cols=\"60\"></textarea><BR />
<input type=\"submit\" name=\"addok\" value=\"Добавить запись\" />
<input type=\"reset\" name=\"reset\" value=\"Отмена\" />
</form><BR /></html>"
; 
} elseif ($_POST['addok']) { // если потвердили ввод в форму
header("location:gbookdb.php") // переход к странице показа
if (!$_POST['msg']){exit}; //если сообщение пустое то выход!
$t=date('Y-m-d H:i:s') //текущие дата и время
/* подключение к базе данных */
$server="localhost"; //расположение
$dbname="gbook"; // имя БД
$user="root"; // имя пользователя БД
$pass=""; // Пароль пользователя БД
$connect=mysql_connect($server,$dbname,$pass,);
$db=mysql_select_db($connect,gbook);
$strsql="INSERT INTO gbook (username, city, site, mail, msg, date)
VALUES (\"{$_POST['username']}\", \"{$_POST['city']}\", \"{$_POST['site']}\", \"{$_POST['mail']}\", \"{$_POST['msg']}\", CAST('"
.$t"' AS datetime))";
$rez=mysql_query($strsql,$connect); //выполнение запроса
mysql_close($connect); //отключение от базы данных
}

PHP
} elseif ($_POST['addok']) { // если потвердили ввод в форму

Спустя 25 минут, 5 секунд (6.10.2009 - 15:23) Michael написал(а):
Форму лучше выводить:
PHP
$str=<<<ABC
<form action="gbadd_db.php" method="POST">
<table>
<tr><td>Ваше имя:</td>
<td><input type="text" name="username" size="40" />
</td></tr>
</table>
</form>
ABC;
echo 
$str;

Спустя 14 минут, 37 секунд (6.10.2009 - 15:37) sergeiss написал(а):
Во-первых, у тебя очень "тяжело" написан код. Ни отступов, нифига нету... Всё идет сплошным потоком.
Во-вторых, что означают, по-твоем, выражения типа
PHP
if ($_POST['addrecord'])
? Это проверка на наличие? Тогда надо писать
PHP
if ( isset($_POST['addrecord']) )
.
В-третьих, если ты просто выводишь форму, в которой нету никаких переменных, то это лучше сделать по-другому:
HTML
<?php
if ( isset($_POST['addrecord']) )
{
// далее закрываем тэг ПХП и выводим форму - и вообще не "паримся" насчет экранирования кавычек
?>
<html><center><h2>Моя гостивая книга</h2></center>
<form action=\"gbadd_db.php\" method=\"POST\">
<table>
<tr><td>Ваше имя:</td>
<td><input type=\"text\" name=\"username\" size=\"40\" />
</td></tr>
<tr><td>Город:</td>
<td><input type=\"text\" name=\"city\" size=\"40\" />
</td></tr>
<tr><td>Сайт:</td>
<td><input type=\"text\" name=\"site\" size=\"40\" />
</td></tr>
<tr><td>e-mail:</td>
<td><input type=\"text\" name=\"mail\" size=\"40\" />
</td></tr></table>
Сообщение:<BR />
<textarea name=\"msg\" rows=\"4\" cols=\"60\"></textarea><BR />
<input type=\"submit\" name=\"addok\" value=\"Добавить запись\" />
<input type=\"reset\" name=\"reset\" value=\"Отмена\" />
</form><BR /></html>
<?php // а тут опять открываем тэг ПХП и пишем дальше всё, что хотим - в том числе и закрывающую скобку из предыдущего блока ПХП
// заодно "посылаем подальше" всяких нелюбителей смеси ПХП и HTML и делаем так, как удобнее
}
// далее идет другой код
?>


В-четвертых, ты не даешь возможность юзеру исправить что-то, если у него есть ошибки - у тебя даже проверки ошибок нету!

И относительно ошибки... Скорее всего, тут проблема в том, что после header("location:gbookdb.php") у тебя нету точки с запятой (и еще после нескольких других функций - найди их сам!).
Плюс к этому exit не надо заключать в фигурные скобки (это не ошибка, а излишество).

Спустя 31 минута, 31 секунда (6.10.2009 - 16:09) twin написал(а):
У меня в подписи ссылка. Засунь туда код и все ошибки свои увидишь. Только сразу не пугайся, выключи опцию "считать скобки"

Спустя 1 час, 32 минуты, 7 секунд (6.10.2009 - 17:41) SunSet написал(а):
sergeiss
Обьясни почему вариант if ($_POST['addrecord']) не подходит? Он же точно так же проверяет на существование. Только с нулем там ньюансы.

Спустя 3 минуты, 1 секунда (6.10.2009 - 17:44) twin написал(а):
Он не проверяет, а сначала обращается к переменной. При обращении переменная возвращает либо фальсе, либо true, если не пуста. А если в массиве POST нет такого элемента? К чему тут идет обращение? К пустому месту. А это нотис.

Спустя 4 минуты, 39 секунд (6.10.2009 - 17:49) SunSet написал(а):
twin
Спасибос, учту smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.