файл создания формы 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));"; - не нужна первая точка с запятой
<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 настройки.
$ _REQUEST, по умолчанию содержит значение $ _GET, $ _POST и $ _COOKIE,
зависит от variables_order настройки.
Спустя 11 минут, 7 секунд (13.09.2012 - 15:01) Romnia написал(а):
Форма
Обработчик
ввела кнопке имя и данные от кнопки про отправку данных передаются, но if( !empty($_POST["Post"] )не выводит ничего. что может ещё быть не так. и можно ли как-то проверять в процессе исполнения значения переменных?что-то типа точек останова в вижуал студии есть?и если есть то в каких программах??
<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);
чтоб посмотреть что пришло
так ты убиваешь скрипт и он прекращает работу ничего не происходит
die там не нужен
чтоб посмотреть что пришло
$on_submit=true;
die(" submit!");
так ты убиваешь скрипт и он прекращает работу ничего не происходит
die там не нужен
Спустя 4 минуты, 41 секунда (13.09.2012 - 15:27) Romnia написал(а):
спасибо большое.почитала нулевой урок у вас с форума IRBIS, очень полезно. подключила скрипт для просмотра состояния переменных, очень удобно.