Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Передача и сохранение данных из формы.


Автор: DarkAngel 29.3.2006, 07:24
Вообщем в форму вводяться данные текстовые, эти данные должны сохраниться в каталоге на сервере и заодно отправиться на мыло, но я не хочу включать пхп в код хтмл а хочу что бы при нажатие например кнопки из формы submit форма обращалась и обрабатывалась скриптом....
что то вроде action="form.php" как мне это сделать и как в таком случае передать данные в скрипт.....срипт мой представляет нечто вроде такого....:
Код
<?php


<?php

$form_data = array($_POST['telephone'], $_POST['face'], $_POST['machine'], $_POST['model']);

$handle = fopen('./zakaz/'.time().'.txt', 'rt');
foreach ($form_data as $value) fwrite($handle, $value."\r\n");


$message = "Здрасти! текст  \n\nНиже вся инфа в столбег :\n".join("\n", $form_data)."\n\nКонец песьма воще :)";
$to      = "мыло";
$subj    = "Инфа из формы";
$headers = "Content-type: text/plain; charset=windows-1251;\r\nFrom:\"откуда :)\"<".$admin_mail.">\r\n";

mail($to, $subj, $message, $headers);

?>



Как думаете прокатит и можно ли так сделать?

Автор: arial 29.3.2006, 07:29
DarkAngel, а ты попробуй.

Автор: DarkAngel 29.3.2006, 07:34
arial,
Прикольный ответ я попробую не знаю как инфу из формы передать на обработку скрипту.

Автор: DarkAngel 29.3.2006, 07:58
Дык подскажите мне как передать инфу на обработку скрипту?

Автор: arial 29.3.2006, 08:26
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
</head>

<body>
    <form method="post" action="/form.php">
        <input type="text" name="telephone">
        <br>
        <input type="submit">
    </form>
</body>
</html>
Ход мыслей у тебя верный. Будь решительней, пробуй.

Автор: oksale 29.3.2006, 08:30
Создаешь файл index.htm
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</HEAD>
<BODY>
<FORM NAME="myform" ACTION="form.php" METHOD="post">
telephone:<input type="text" name="telephone" size="50" value=""><br>
face:<input type="text" name="face" size="50" value=""><br>
machine:<input type="text" name="machine" size="50" value=""><br>
model:<input type="text" name="model" size="50" value=""><br>
<input type="submit" name="send" value="send">
</FORM>
</BODY>
</HTML>


При нажатии на кнопку данные передаются твоему скрипту form.php.

Автор: Serkys 29.3.2006, 15:03
А зачем 2 раза открывающая скобка "<?php" ?

Автор: Guedda 29.3.2006, 15:35
Короче... Не мучайте человека. Данные в другой скрипт можно передать следующим образом.
Есть файл index.html:
Код

<form action="form.php" method="post">
<input type="text" name="user_name" value="Имя пользователя" /><br />
<input type="password" name="user_password" /><br />
<center><input type="submit" value="Ok" /></center>
</form>

Есть файл form.php:
Код

<?php
  echo "Вас зовут " . $HTTP_POST_VARS['user_name'] . "<br />\n";
  echo "Ваш пароль " . $_POST['user_password'] . "<br />\n";  
?>

Я показал два метода приема данных. Но лучше всего использовать $_POST, так как $HTTP_POST_VARS по моему уже в 5 версии php нет.

Автор: Serkys 29.3.2006, 18:07
Цитата(Guedda @ 29.3.2006, 15:35 Найти цитируемый пост)
$HTTP_POST_VARS по моему уже в 5 версии php нет.

А по моему есть, но по умолчанию отключен. А вот в РНР6 убирают совсем.

Автор: Ciber SLasH 29.3.2006, 18:13
Цитата(Guedda @ 29.3.2006, 16:35 Найти цитируемый пост)
$HTTP_POST_VARS

Фтопку.

Читаем мануал...
Цитата
$HTTP_POST_VARS contains the same initial information, but is not an autoglobal. (Note that $HTTP_POST_VARS and $_POST are different variables and that PHP handles them as such)

Пример 12-3. Суперглобальные переменные и область видимости
Код

<?php
function test_global()
{
    // Большинство предопределенных переменных не являются
    // "супер" и чтобы быть доступными в локальной области
    // видимости функции требуют указания 'global'.
    global $HTTP_POST_VARS;
    
    echo $HTTP_POST_VARS['name'];
    
    // Суперглобальные переменные доступны в любой области
    // видимости и не требуют указания 'global'.
    // Суперглобальные переменные доступны, начиная с PHP 4.1.0
    echo $_POST['name'];
}
?>  

А также:
Цитата
Более старые массивы $HTTP_*_VARS, такие, как $HTTP_POST_VARS, существуют со времен PHP 3 и, вероятно, будут еще долго существовать для сохранения совместимости.

И ещё:
Цитата
$_POST
Переменные, передаваемые скрипту через HTTP POST. Аналог старого массива $HTTP_POST_VARS (который по-прежнему доступен, но не рекомендуется).

Автор: DarkAngel 30.3.2006, 07:00
Спасибо всем огромное, разобрался еще когда ответил arial, но спасибо всем так как подчеркнул много инфы. Если я задал глупый или очевидный вопрос уж не судите строго....я только начина
ю.

Автор: Serkys 30.3.2006, 10:29
DarkAngel, отметь, пожалуйста, вопрос решённым.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)