Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.04;
Скачать: CL | DM;

Вниз

проблемка с 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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.013 c
2-1191937848
Сергей Красин
2007-10-09 17:50
2007.11.04
Стандартные диалоги


11-1175002147
ElectriC
2007-03-27 17:29
2007.11.04
Липкие окна


3-1182875269
Lavrenty
2007-06-26 20:27
2007.11.04
Проблема с триггером


2-1192114269
alex810
2007-10-11 18:51
2007.11.04
Регистр символов


2-1192167883
kyn66
2007-10-12 09:44
2007.11.04
TRxDBLookupCombo вместе с MSSQL