Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.044 c
15-1190972708
Polevi
2007-09-28 13:45
2007.11.04
ftp.exe


15-1191593116
Черный Шаман
2007-10-05 18:05
2007.11.04
Что лучше широкоформатка 16:9 или классика 4:3(мониторы)


15-1190865542
vajo
2007-09-27 07:59
2007.11.04
Не могу установить XP


15-1191431498
vpbar
2007-10-03 21:11
2007.11.04
Это нормально?


15-1190945751
Slider007
2007-09-28 06:15
2007.11.04
С днем рождения ! 28 сентября 2007 пятница





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский