Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Как передать данные с HTML формы в PHP скрипт?

Ответить
Настройки темы
Как передать данные с HTML формы в PHP скрипт?

Аватара для .ExeRun

Ветеран


Сообщения: 685
Благодарности: 33


Конфигурация

Профиль | Отправить PM | Цитировать


Совсем недавно вот начал изучать PHP, сегодня написал калькулятор. Вот код
PHP код: Выделить весь код

<html>

<head>
<title>Калькулятор</title>
</head>
</html>
<b>Калькулятор</b>
<form action="calc.php">
<p>Введите первое число:
  <input type="text" name="first" size="10" maxlength="10"><br />
<p>Введите второе число:
  <input type="text" name="second" size="10" maxlength="10">
</p>
</p>
</form>
<p>Действие:
<select size="1" name="action">
    <option value="sum">Сложить</option>
    <option value="min">Вычесть</option>
    <option value="mult">Умножить</option>
    <option value="dev">Разделить</option>
    </p>
  </select>
<form action="calc.php">
  <input type="submit" name="submit" value="Посчитать">
</form>
<?php
switch ($action)
{
    case 
"sum":$result $first+$second;
    break;
    case 
"min":$result $first-$second;
    break;
    case 
"mult":$result $first*$second;
    break;
    case 
"dev":
    if (
$second or $second == 0)
    {
        exit(
"На 0 делить нельзя!");
    }
    
$result $first/$second;
    break;
}
echo 
"Результат:"$result;
?>

Как видите, вначале идет HTML форма, затем уже сам скрипт.. вроде все правильно, но не работает, ввожу данные, жму считать и не считает нифига... Как я понял, данные из формы не передаются в переменные.Мне нужно, например, чтобы эта форма
PHP код: Выделить весь код

<input type="text" name="first" size="10" maxlength="10"

была связана с переменной $first, ну и т.д, короче я в замешательстве... Скрипт писал с книгой в зубах, ну и глядя на примеры.

Отправлено: 04:15, 07-07-2009

 

Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


1 Форма должна быть одна
2 Проверяй входящие переменные через echo
3 Что это за книжка? И какие примеры?

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 08:09, 07-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Во-первых, как уже сказано, делаем одну форму:
HTML код: Выделить весь код
<form action="calc.php"> <p>Введите первое число: <input type="text" name="first" size="10" maxlength="10"><br /> <p>Введите второе число: <input type="text" name="second" size="10" maxlength="10"> </p> </p> <p>Действие: <select size="1" name="action"> <option value="sum">Сложить</option> <option value="min">Вычесть</option> <option value="mult">Умножить</option> <option value="dev">Разделить</option> </p> </select> <input type="submit" name="submit" value="Посчитать"> </form>

Во-вторых, скорее всего работать ничего не будет, т.к. сейчас устанавливают register_globals = 0 в php.ini в целях безопасности, поэтому для обращения к переменной action нужно писать $_GET['action'] (и т.д.) или $_POST['action'], если передаёте методом post.

И в третьих... калькулятор на php? Автор книги подобрал неудачный пример. Но что поделать...
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:36, 07-07-2009 | #3


Аватара для .ExeRun

Ветеран


Сообщения: 685
Благодарности: 33

Профиль | Отправить PM | Цитировать


Цитата Igor_I:
1 Форма должна быть одна
2 Проверяй входящие переменные через echo
3 Что это за книжка? И какие примеры? »
1 уже сделал в отдельных файлах форму и скрипт )
2 эт как? )
3 пхп 5 для чайников... пример не оттуда взял, а с инета.
Цитата Coutty:
Во-вторых, скорее всего работать ничего не будет, т.к. сейчас устанавливают register_globals = 0 в php.ini в целях безопасности, поэтому для обращения к переменной action нужно писать $_GET['action'] (и т.д.) или $_POST['action'], если передаёте методом post. »
ок, посоображаю посижу

Отправлено: 12:00, 07-07-2009 | #4


Аватара для .ExeRun

Ветеран


Сообщения: 685
Благодарности: 33

Профиль | Отправить PM | Цитировать


Coutty, ну вот, например я сделал 2 файла - один index.php с HTML Кодом (сама форма), вот код
PHP код: Выделить весь код

<html>
<
head>
<
title>Калькулятор</title>
</
head>
</
html>
<
b>Калькулятор</b>
<
form action="calc.php" method="post">
<
p>Введите первое число:
  <
input type="text" name="first" size="10" maxlength="10"><br />
<
p>Введите второе число:
  <
input type="text" name="second" size="10" maxlength="10">
</
p>
</
p>
</
form>
<
p>Действие:
<
select size="1" name="action">
    <
option value="sum">Сложить</option>
    <
option value="min">Вычесть</option>
    <
option value="mult">Умножить</option>
    <
option value="dev">Разделить</option>
    </
p>
  </
select>
<
form action="calc.php" method="post">
  <
input type="submit" name="submit" value="Посчитать">
</
form

и код файла calc.php
PHP код: Выделить весь код

<?php
switch ($_POST['action'])
{
    case 
"sum":$result $_POST['first']+$_POST['second'];
    break;
    case 
"min":$result $_POST['first']-$_POST['second'];
    break;
    case 
"mult":$result $_POST['first']*$_POST['second'];
    break;
    case 
"dev":
    if (
$_POST['second'] < or $_POST['second'] == 0)
    {
        exit(
"На 0 делить нельзя!");
    }
    
$result $_POST['first']/$_POST['second'];
    break;
}
echo 
"Результат:"$result;
?>

данные пробовал передавать также GET методом, заменяя все переменные $_POST на $_GET и все равно результат не отображается.. может потому, что на денвере делаю?
З.Ы. кстати, вот хорошая статья на эту тему http://php.su/phphttp/forms/?intro

Отправлено: 13:17, 07-07-2009 | #5


Аватара для .ExeRun

Ветеран


Сообщения: 685
Благодарности: 33

Профиль | Отправить PM | Цитировать


Все, сделал )))) Работает ыыы )))) Вот код - пришлось поправить HTML форму...

<html>
<head>
<title>Калькулятор</title>
</head>
</html>
<b>Калькулятор</b>
<form action="calc.php" method="post">
<p>Введите первое число:
<input type="text" name="first" size="10" maxlength="10"><br />
<p>Введите второе число:
<input type="text" name="second" size="10" maxlength="10">
</p>
</p>
</form>
<p>Действие:
<select size="1" name="action">
<option value="sum">Сложить</option>
<option value="min">Вычесть</option>
<option value="mult">Умножить</option>
<option value="dev">Разделить</option>
</p>
</select>
<form action="calc.php" method="post">
<input type="submit" name="submit" value="Посчитать">
</form>

я просто удалил теги, выделенные жирным ))) Ура! Мой первый скрипт ))))

Отправлено: 13:44, 07-07-2009 | #6


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


.ExeRun, я тебе сразу сказал, форма должна быть одна
Вернее, нет, у каждой формы должен быть свой submit.
Что значит - проверяй переменные.
PHP код: Выделить весь код

<?php

echo ' Первое число = '.$_POST['first'];
echo 
' Второе число = '.$_POST['second'];
echo 
' Действие = '.$_POST['action'];

switch (
$_POST['action'])
{
    case 
"sum":$result $_POST['first']+$_POST['second'];
    break;
    case 
"min":$result $_POST['first']-$_POST['second'];
    break;
    case 
"mult":$result $_POST['first']*$_POST['second'];
    break;
    case 
"dev":
    if (
$_POST['second'] < or $_POST['second'] == 0)
    {
        exit(
"На 0 делить нельзя!");
    }
    
$result $_POST['first']/$_POST['second'];
    break;
}
echo 
"Результат:"$result;
?>

И видно что приходит, в противном случае, для тебя - это чёрный ящик, который непонятно как работает.

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 19:58, 07-07-2009 | #7


Аватара для set242

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Простая схемка и все ясно без лишнего кода надеюсь кому то пригодится!
Что то по круче подставят if и тд.

HTML
PHP код: Выделить весь код

<head>
<
title>Просчет площад</title>
</
head>
<
body>
<
p>Просчет площади </p>

<
form action="in.php" method="POST" >
 <
p> <label>Стена 1 <input name="A" size="10" maxlength="50" /> </label> </p
<
p> <label>Стена 2 <input name="b" size="10" maxlength="50" /> </label> </p
<
p> <label>Стена 3 <input name="c" size="10" maxlength="50" /> </label> </p
<
p> <label>Стена 4 <input name="d" size="10" maxlength="50" /> </label> </p
<
p> <label>Посчитать <input type="submit" value="Отправить" /> </label> </p>
 </
form>
</
body>
</
html



PHP
PHP код: Выделить весь код

<?php
 
/* Таблица просчета площади */ 
$A $_POST ["A"];
$b $_POST ["b"];
$c $_POST ["c"];
$d $_POST ["d"]; 

/* Формула */
 
$e= ($A $c)/2;
 
$k=($b $d)/2
$result$e*$k;
 echo 
"Результат подсчета квадратуры: $result "
?>

Не забудьте поместить in.php PHP код!


Работает на Денвере и хосте.

Отправлено: 02:31, 19-04-2010 | #8



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Как передать данные с HTML формы в PHP скрипт?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проблема с PHP(не передаются переменные из формы в PHP- скрипт) Kirander Вебмастеру 21 03-08-2009 01:11
Как передать в javascript данные массива, полученного из кода на php vagner_HATE Вебмастеру 1 18-06-2009 13:51
XML + XSL + PHP => HTML, Как передать бинарный код рисунка ? Lexxx_HU Вебмастеру 5 02-03-2007 17:55
Как передать параметры из формы с множественным значением koresaram Вебмастеру 3 22-07-2006 13:06
Скрипт РНР для обработки формы HTML   Lorena Вебмастеру 1 02-11-2004 14:50




 
Переход