[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: обработка данных формы
Romnia
Здравствуйте. Решила поизучать PHP, но столкнулась с множеством мелочей непривычных. хотелось бы уточнить их. Напишу в тексте комментарии где не понятно мне, точнее в разных источниках по разному хотелось бы узнать точно как оно должно быть и как работать, ато работает не все.

файл создания формы Form.php


</head>

<
body bgcolor="#677845" text="#ffffff" link="#cbda74" vlink="#808040" alink="#808040">
<?php
$Name="NAME";
$Post="Post";
$Pass="Passvord";
$TextAr="Area";
$ChBox="CheckBox";
$Rb1="Rb1";
$Rb2="Rb2";
$Rb3="Rb3";
$Select="Select";
$Select1="Select1";
$Select2="Select2";
$Select3="Select3";
$Select4="Select4";
?>
<form action = "FormProc.php" method = "POST">
<
br><b>Введите адрес электронной почты</b></br>
<
input type="text" name="$Post" size="30" maxlength="15" value="введите адрес электронной почты">
<
br><b>Введите логин</b></br>
<
input type="text" name="$Name" size="30" maxlength="15">
<
br><b>Введите пароль</b></br>
<
input type="password" name="$Pass" size="10" maxlength="5">
<
br><b>Введите свои пожелания</b></br>
<
textarea name="$TextAr" rows="10" cols="40" value="enter text"></textarea>
<
br><b>Согласны ли вы с правилами</b></br>
<
input type="checkbox" name="$ChBox">Я согласен с правилами
<br><b>Выберите нужное</b></br>
<
input type="radio" name="$Rb1">one
<br><input type="radio" name="$Rb2">two</br>
<
input type="radio" name="$Rb3">three
<br><b>выберите значение</b></br>
<
select name=$Select>
<
option valuе="1">Select1
<option value="2">Select2
<option value="3">Select3
<option value="4">Select4
</select>
<
br><input type="submit" value="Отправить"></br>
</
body>

</
html>

Файл обработки данных формы FormProc.php

<html>
<
head>
<
title>Processing</title>
</
head>
<
body bgcolor="#ffffff" text="#000000" link="#cbda74" vlink="#808040" alink="#808040">
<
br><b>Подтвердите правильность данных</b></br>
<?php
include("Form.php");// ?? без этого вообще ни разу не срабатывала хоть какая-то обработка, хотя в источниках нигде не написано что так надо делать да и по логике тоже бред получается.
$on_submit=false;
if (!empty($_POST["submit"]))// ????? не видит событие нажатия кнопки(не работает)
{
//форма была отправлена, проверим данные
$on_submit=true;
if (!empty($_POST["$Post"]))
{
echo "Почта = \n",$_POST["$Post"];
}
if (!empty($_POST["$Name"])) // не работает ??? почему в переменную $Post передаются данные а тут нет????синтаксис одинаков
{
echo "\nИмя = ",$_POST["$Name"];//не работает \n ?????
}
if (!empty($_POST["Pass"]))
{
echo "\nПароль = ",$_POST["$Pass"];
}
if (!empty($_POST["$TextAr"]))
{
echo "\nПожелания = ",$_POST["$TextAr"];
}
}


$link1 = @mysql_connect("localhost");
if(!$link1)
{
die("Could not connect to MySQL server!");
}
else
{
die("Connect to MySQL server!");
}
mysql_select_db("my_db", $link1);
$sql = "CREATE TABLE Persons // ???не создается таблица в базе данных. такой же запрос вручную все создает
(
Number INTEGER,
FirstName VARCHAR(15),
LastName VARCHAR(15),
Mail VARCHAR(40)
);"
;
$result = mysql_query($sql,$link1);
if(!$result)
{
die( "Could not create table");
}
else
{
die( "Create table");
}
// Создать запрос
$Name="fff";
$query = "SELECT Number FROM Persons WHERE FirstName=$Name ";

// Выполнить запрос
$result = mysql_query($query,$link1);
if(!$result)
{
die("There is no so name all is ok!");

$query = "INSERT INTO Persons(Number,FirstName,LastName,Mail), VALUES(1,'Name','Petrov','nomail')";
}
else
die("There is so name please try aggain!");
// Execute query
mysql_query($query,$link1);

mysql_close($link1);
?>

</body>

</
html>


И если ещё есть какие-то нехорошие вещи или просто пожелания так не делать в программах буду рада выслушать. И вопрос в форме при присваивании имен элементам лучше использовать непосредственное имя в кавычках или через переменные. мне ближе названия хранить в переменных, но тут не знаю, в php много допущений и вариаций есть.



Спустя 17 минут, 14 секунд (13.09.2012 - 12:47) Jack_White написал(а):
1)Надо переменные заключать в php теги чтобы интерпретатор понимал что это php иначе name="$Name" а неname="NAME"

<input type="text" name="<?php echo $Post ?>" size="30" maxlength="15" value="введите адрес электронной почты">

В твоем случае вообще не вижу причин заносить name в переменные php лучше пусть будет html чистый.

2)$_POST["submit"] - субмит это тип импута а не имя, а в $_POST и $_GET хранится массив ключи - имена(name) => значения (value)

3)$_POST["$Name"] - не работатет из-за 1 пункта

4) Mail VARCHAR(40));"; - не нужна первая точка с запятой

Спустя 1 час, 51 минута, 28 секунд (13.09.2012 - 14:38) Romnia написал(а):
Подскажите каким массивом данных лучше пользоваться $_REQUEST или $_POST. или разницы не имеет?

Спустя 11 минут, 24 секунды (13.09.2012 - 14:50) Jack_White написал(а):
я пользуюсь $_POST
$ _REQUEST, по умолчанию содержит значение $ _GET, $ _POST и $ _COOKIE,
зависит от variables_order настройки.

Спустя 11 минут, 7 секунд (13.09.2012 - 15:01) Romnia написал(а):
Форма

<html>
<
head>

<
title>Form</title>

</
head>

<
body bgcolor="#677845" text="#ffffff" link="#cbda74" vlink="#808040" alink="#808040">

<
form action = "FormProc.php" method = "POST">
<
br><b>Введите адрес электронной почты</b></br>
<
input type="text" name="Post" size="30" maxlength="15" value="введите адрес электронной почты">
<
br><b>Введите логин</b></br>
<
input type="text" name="Name" size="30" maxlength="15">
<
br><b>Введите пароль</b></br>
<
input type="password" name="Pass" size="10" maxlength="5">
<
br><b>Введите свои пожелания</b></br>
<
textarea name="TextAr" rows="10" cols="40" value="enter text"></textarea>
<
br><b>Согласны ли вы с правилами</b></br>
<
input type="checkbox" name="ChBox">Я согласен с правилами
<br><b>Выберите нужное</b></br>
<
input type="radio" name="Rb1">one
<br><input type="radio" name="Rb2">two</br>
<
input type="radio" name="Rb3">three
<br><b>выберите значение</b></br>
<
select name=$Select>
<
option valuе="1">Select1
<option value="2">Select2
<option value="3">Select3
<option value="4">Select4
</select>
<
br><input type="submit" name="sbnt"value="Отправить"></br>
</
form>
</
body>

</
html>


Обработчик

<html>
<
head>
<
title>Processing</title>
</
head>
<
body bgcolor="#ffffff" text="#000000" link="#cbda74" vlink="#808040" alink="#808040">
<
br><b>Подтвердите правильность данных</b></br>
<?php
$on_submit=false;
if (!empty($_POST["sbnt"]))
{
//форма была отправлена, проверим данные
$on_submit=true;
die(" submit!");
// сюда заходит но не заходит в следующие if ?????
if (!empty($_POST["Post"]))
{
echo "Почта =",$_POST["Post"];
}
if (!empty($_POST["Name"]))
{
echo "\nИмя = ",$_POST["Name"];
}
if (!empty($_POST["Pass"]))
{
echo "\nПароль = ",$_POST["Pass"];
}
if (!empty($_POST["TextAr"]))
{
echo "\nПожелания = ",$_POST["TextAr"];
}
}

else
{
die("Could not submit!");
}
$link1 = @mysql_connect("localhost");
if(!$link1)
{
die("Could not connect to MySQL server!");
}
else
{
die("Connect to MySQL server!");
}
mysql_select_db("my_db", $link1);
$sql = "CREATE TABLE Persons
(
Number INTEGER,
FirstName VARCHAR(15),
LastName VARCHAR(15),
Mail VARCHAR(40)
)"
;
$result = mysql_query($sql,$link1);
if(!$result)
{
die( "Could not create table");
}
else
{
die( "Create table");
}
// Создать запрос
$Name="fff";
$query = "SELECT Number FROM Persons WHERE FirstName=$Name ";

// Выполнить запрос
$result = mysql_query($query,$link1);
if(!$result)
{
die("There is no so name all is ok!");

$query = "INSERT INTO Persons(Number,FirstName,LastName,Mail), VALUES(1,'Name','Petrov','nomail')";
}
else
die("There is so name please try aggain!");
// Execute query
mysql_query($query,$link1);

mysql_close($link1);
?>

</body>

</
html>

ввела кнопке имя и данные от кнопки про отправку данных передаются, но if( !empty($_POST["Post"] )не выводит ничего. что может ещё быть не так. и можно ли как-то проверять в процессе исполнения значения переменных?что-то типа точек останова в вижуал студии есть?и если есть то в каких программах??

Спустя 21 минута, 18 секунд (13.09.2012 - 15:22) Jack_White написал(а):
выведи var_dump($_POST);
чтоб посмотреть что пришло

$on_submit=true;
die(" submit!");

так ты убиваешь скрипт и он прекращает работу ничего не происходит
die там не нужен

Спустя 4 минуты, 41 секунда (13.09.2012 - 15:27) Romnia написал(а):
спасибо большое.почитала нулевой урок у вас с форума IRBIS, очень полезно. подключила скрипт для просмотра состояния переменных, очень удобно.
Быстрый ответ:

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