Форум: "Прочее";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
Внизпроблемка с php Найти похожие ветки
← →
редкий гость (2007-10-05 20:18) [0]Доброго времени суток, многоуважаемый All. Я занялся изучением php + mysql и столкнулся с проблемкой: создаю простую страничку с простой формой, из которых данные хочу запихнуть в таблицу mySql:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>my test page</title>
</head>
<body>
<form name="form1" method="post" action="">
<p>first_name
<input type="text" name="name_edit" value="mdm" />
</p>
<p>last_name
<input type="text" name="fam_edit" />
</p>
<p>e_mail
<input type="text" name="mail_edit" />
</p>
</form>
<form id="form2" name="form2" method="post" action="save.php">
<input type="submit" name="Submit" value="Submit" />
</form>
<p> </p>
</body>
</html>
так-же написал скриптик, для сохранения результатов (test.php):
<?php
MYSQL_CONNECT(localhost,root,passwd) OR DIE("can"t connect ");
@mysql_select_db("test") or die("can"t select db ");
$name = $HTTP_POST_VARS["name_edit"];
$fam = $HTTP_POST_VARS["fam_edit"];
$e_mail = $_POST["mail_edit"];
$query = "INSERT INTO test_table VALUES($name,$fam, $e_mail)";
if ($name != ""){$result = MYSQL_QUERY($query);};
print $query;
?>
суть проблемы заключается в том, что запись в таблицу добавляется но она пустая, насколько я понял функция $HTTP_POST_VARS[""] не вытаскивает значения, так как при отправке переменные name, fam, e_mail являются пустыми :( Подскажите пожалуйста, в чём заключаются грабли ? заранее благодарен
← →
Johnmen © (2007-10-05 20:22) [1]
> я понял функция $HTTP_POST_VARS[""] не вытаскивает значения,
А что, разве должна? Где это написано?
← →
редкий гость (2007-10-05 20:29) [2]To Johnmen © (05.10.07 20:22) [1]
ну я читал, что должна, а в моём варианте (
$name = $HTTP_POST_VARS["name_edit"];) почему-то не работает
← →
Johnmen © (2007-10-05 20:31) [3]
> ну я читал, что должна,
Интересно, где? Можно конкретное указание?
← →
редкий гость (2007-10-05 20:41) [4]первоисточник найти не удалось, но это был какой-то формум, но в этой статье (http://phpclub.ru/detail/article/phpintro ) ведь используется тот-же метод, по анологии с которым я делал (если $_POST[" "] является аналогом функции $_HTTP_POST_VARS[" "];) или я опять ошибаюсь ?
← →
Johnmen © (2007-10-05 20:50) [5]Ну что можно сказать... Смотришь в книгу - видишь фигу (c) :)
Начни все-таки с учебника по основам.
← →
фуке (2007-10-05 20:56) [6]Прочитай внимательно
http://www.codenet.ru/webmast/php/GuestBook.php
← →
homm © (2007-10-05 21:17) [7]> [0] редкий гость (05.10.07 20:18)
> я понял функция $HTTP_POST_VARS[""]
Это не функция. Это масив.
У тебя 2 формы, в одной поля для вообда значений, во второй верное указание направления, куда слать данные и кнопка подтворждения. Какую быты из них не засубмитил, данных твой скрипт не увидит.
← →
редкий гость (2007-10-05 21:39) [8]всем спасибо за помощ :)
← →
SerJaNT © (2007-10-06 00:50) [9]А куда у тебя из первой формы данные отправляются? Ведь action у тебя пустой!
← →
_xxx_ (2007-10-06 15:11) [10]Форма номер 1. Где кнопка отправки?
<form name="form1" method="post" action="">
<p>first_name
<input type="text" name="name_edit" value="mdm" />
</p>
<p>last_name
<input type="text" name="fam_edit" />
</p>
<p>e_mail
<input type="text" name="mail_edit" />
</p>
</form>
Форма номер два. Похоже, кнопка окопалась тут:<form id="form2" name="form2" method="post" action="save.php">
<input type="submit" name="Submit" value="Submit" />
</form>
И всё это вместе - разве должно работать как единая форма?
← →
_xxx_ (2007-10-06 15:19) [11]И ктсати,
if ($name != "")
- это не дело. Для этого есть is_empty(). И к тому-же, для работы с $_POST -> MySQL проверки на пустую переменную мало, читай статьи по безопасности кода.
← →
редкий гость (2007-10-07 01:01) [12]спасибо за разъяснение, я эти огрехи исправил, но всё равно, параметры не передаются скрипту
← →
homm © (2007-10-07 01:14) [13]> [12] редкий гость (07.10.07 01:01)
> я эти огрехи исправил,
код?
← →
редкий гость (2007-10-07 12:03) [14]вот мой код после исправлений:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form name="forma" action="save.php" method="post" >
<p>first_name
<input type="text" name="name_edit" value="mdm" />
</p>
<p>last_name
<input type="text" name="fam_edit" />
</p>
<p>e_mail
<input type="text" name="mail_edit" />
</p>
<input type="submit" name="save" value="Submit" />
</form>
</body>
</html>
вот код скрипта из save.php
<?php
MYSQL_CONNECT(localhost,root,passwd) OR DIE("can"t connect ");
@mysql_select_db("test") or die("can"t select db ");
$name = $_POST["name_edit"];
$fam = $_POST["fam_edit"];
$e_mail = $_POST["mail_edit"];
$query = "INSERT INTO test_table VALUES($name,$fam, $e_mail)";
$result = MYSQL_QUERY($query);
print $query;
?>
← →
SerJaNT © (2007-10-07 12:33) [15]Попробуй вместо $_POST использовать $_REQUEST. Хотя, особой разницы нет, и так должно работать. Что-то у тебя с настройками php.ini...
← →
редкий гость (2007-10-07 12:54) [16]благодарю за помощ, попробовал использовать массив $_REQUEST, всё равно данные не передаются, видимо тому виной кривизна моих рук, буду разбираться с настройками
← →
homm © (2007-10-07 15:03) [17]> $query = "INSERT INTO test_table VALUES($name,$fam, $e_mail)";
$query = "INSERT INTO test_table VALUES("$name","$fam", "$e_mail")";
$query вено выводится?
← →
_xxx_ (2007-10-07 18:33) [18]
> редкий гость (07.10.07 12:54) [16]
> благодарю за помощ, попробовал использовать массив $_REQUEST,
> всё равно данные не передаются, видимо тому виной кривизна
> моих рук, буду разбираться с настройками
Ситуацию с пост-массивами лего выяснить с помощью
print_r($_POST);
или
print_r($_REQUEST);
и т.д.
в скрипте "save.php".
← →
_xxx_ (2007-10-07 18:34) [19]и в начале скрипта напиши error_reporting(E_ALL);
поможет при отладке.
← →
редкий гость (2007-10-07 20:39) [20]2 _xxx_ нечего не выводит, данные просто не передаются
← →
homm © (2007-10-07 21:34) [21]> [17] homm © (07.10.07 15:03)
> $query вено выводится?
← →
homm © (2007-10-07 21:35) [22]> [14] редкий гость (07.10.07 12:03)
> MYSQL_CONNECT(localhost,root,passwd) OR DIE("can"t connect
> ");
Ты уверен, что у тебя правильные значения стоят вместо localhost,root,passwd ?
← →
homm © (2007-10-07 21:35) [23]Что выводит скрипт???
← →
имя (2007-10-07 22:10) [24]Удалено модератором
← →
имя (2007-10-07 22:24) [25]Удалено модератором
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.04 c