LINUX.ORG.RU

Немного PHP.


0

0

Вот решил поковырять пхп, и взял пример из книжки, правдо пришлось 
подправить, т.к. исходный не работал

# cat /var/www/localhost/htdocs/index.php
<html>
<head>
  <title>TEST!!!</title>
  <meta http-equiv="Content-Type" content="text/html; charset=WINDOWS-1251 ">
</head>
<body>

<?php
if(submit){
$date = mysql_connect("localhost","root");
mysql_select_db("test",$date);
$sql = "INSERT INTO peoples (name, age) VALUES ('$name', '$age')";
$result = mysql_query($sql);
echo "Database update\n";
}eles
?>
<?php
{
?>

<form method="post" action="<?php echo $PHP_SELF?>">
Name: <input type="Text" name="name"><br>
Age: <input type="Text" name="age"><br>
<input type="Submit" name="submit" valut="Input information">
</form>
<?php
}
?>

</body>
</html>

В мускуле сдалал соотвествующую базу и таблицу.

mysql> create table peoples (name varchar(80), age int);
Query OK, 0 rows affected (0.01 sec)

И вот тут самое интересное, после первого же вызова файла, т.е. сразу
после отркрытия index.php, почему то добавляется запись, причём нулевая:

mysql> select * from peoples;
+------+------+
| name | age  |
+------+------+
|      |    0 |
+------+------+
1 row in set (0.00 sec)

Ну что ещё более странно, я задаю значение Вася для имени и 666 для возраста,
но записывается почему то ноль (после нажатия sumbit'а):

mysql> select * from peoples;
+------+------+
| name | age  |
+------+------+
|      |    0 |
|      |    0 |
+------+------+
2 rows in set (0.02 sec)

Вот и вопрос, что не так и как исправить???

P.S. книжку листал но так и не понял что не так.

Заранее спасибо!!!
★★★★★

Ответ на: комментарий от Selecter

Ну register_globals действительно помог, за что спасибо, но вот только возникает ещё один вопрос, и остаётся один старый:

1. В каментах написано что делать register_globals=On это плохо, как реализовать указанный пример для register_globals=Off 2. При первом же заходе, т.е. когда просто открывается форма, то в таблицу сразу же заносяться данные а имнно пустота в name и ноль age.

Что можно сделать в этом случае???

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

1. Прочитай про суперглобальные массивы: $_GET, $_POST, $_REQUEST
2. Можно проверять, была ли нажата кнопка, введены ли данные. Простые проверки типа:

if($_POST['submit'])

Selecter ★★★★
()
Ответ на: комментарий от Selecter

Да я знаю просто чё то после пива было уже пофигу :)

cyclon ★★★★★
() автор топика

>if(submit){

Долляр куда дели?

А вообще $_POST["submit"] конечно будет правильне, для пхп 4.1+

roller ★★★
()
Ответ на: комментарий от roller

значение лучше проверять, а то привыкнет, а потом ему ктонить фалсе значение в переменную подсунет и выполнит совершенно другой код

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

Млин тут решил это дело на фре запустить, так он отобразил в виде текста на странице этот элемент: (это я тут убрал else)

\n";}?>

Но и это не всё, при нажатии сабмита пишет:

Not Found

The requested URL /< was not found on this server.

Система:

Apache/2.0.50 (FreeBSD) PHP/4.3.9 Server at www.cyclon.lan Port 80

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.