Ознакомьтесь с нашей политикой обработки персональных данных
11:23 

Вопрос по формам

Adrina_Lin!
Лишь потеряв все до конца мы обретаем свободу...
так вот! повторяю вопрос!
как сделать, чтобы когда анкету заполняешь, данные сохранялись в базу или отпралялись на ящик?.. и вообще как лучше сделать?
мне кинули статью, но я там чет не до конца поняла...
вот моя анкета (не полностью, т.к. там около 30 вопросов)
код


ну вот... примерно так...

@темы: PHP, Html

Комментарии
2007-03-05 в 22:17 

[php]
как должно быть - пишешь вверху
<form action="/" method=post>
перед всеми Input'ами
в action прописываешь имя пхп файла, (того же самого)

потом где-нибудь в коде дописываешь обработку данных:
все данные будут доступны как переменные с именами, такими же, как имена input'ов (сделай им свойство name)

например, <input name=fio value=''> </input>. после нажатия на кнопу переменная будет доступна как $fio . Итак, ты получишь доступ ко всем значениям полей из формы, и сможешь их куда угодно пхнуть. самое простое - в файл. Пока попробуй выводить эти переменные на экран echo'ами

URL
2007-03-06 в 11:07 

Adrina_Lin!
Лишь потеряв все до конца мы обретаем свободу...
перед всеми Input'ами
в action прописываешь имя пхп файла, (того же самого)

для каждого поля создавать файл? или один? не поняла...

потом где-нибудь в коде дописываешь обработку данных:
все данные будут доступны как переменные с именами, такими же, как имена input'ов (сделай им свойство name)

ваще не поняла...

2007-03-06 в 12:05 

HeatMiser
Эх, блин ... вставлю я свои 5 копеек ...

все данные будут доступны как переменные с именами, такими же, как имена input'ов (сделай им свойство name)
Это работать не будет. Объясню почему. В файле конфигурации php есть директива register_globals. Она отвечает за доступность глобальных переменных. Так вот уже года два, как эта директива в сборке по умолчанию находится в стате Off по соображениям безопасности. И включать ее крайне(!) не рекомендуется.
То, о чем вы пишете - это тоже глобальные переменные, и именно поэтому работать не будут.
Для обращения к переменным передающимся скрипту есть несколько суперглобальных массивов: $_GET, $_POST и $_REQUEST, соответственно для переменных отправленных методом get, post либо любым из двух вышеперечисленных.
Таким образом имея в форме <input type="text" name="var"> обратиться к значению этого поля при использовании метода get можно так: $_GET["var"] либо $_REQUEST["var"]
Если вы спросите меня "почему просто не включить register_globals?" я расплачусь ...

2007-03-06 в 14:25 

[php]
(8
дадада забыл, переменные сначала выдирать $fio=$_POST["fio"] если из формы и $_GET["fio"] если передавали в адресной строке... сам раз 500 напарывался, всё в привычку не войдет (8

URL
2007-03-06 в 14:34 

Adrina_Lin!
Лишь потеряв все до конца мы обретаем свободу...
хммм.... ребят! а что мне-то делать?..
(простите блондиночку за глупость...)

2007-03-07 в 01:01 

HeatMiser
Ну попробую таки заняться руководствописательством для начинающих. Поскольку вам, уважаемая Adrina_Lin!, лень прочитать это

Формы (краткий курс HTML)
Для отсылки данных для их последующей обработки необходимо объединить их в форму. Форма открывается и закрывается тегом form
<form>
...
</form>

1. Все поля, значения которых необходимо обработать должны находиться между этими тегами. Открывающий тег form имеет такие основные параметры:
method - описывает метод передачи данных из формы. Основные значения, которые вы будете использовать на начальном этапе post и get. Основным видимым отличием (в подробности углубляться не буду пока) будет то, что при использовании метода get все данные будут переданы в адресной строке (примерно таким образом http://www.site.com/?var1=value1&var2=value2) и их максимальная длинна составит 256 символов. При использовании метода post данные будут отправлены в заголовке запроса. Рекомендации по использованию того или иного метода будут очень сомнительными - много нюансов, которые начинающему и неинтересны будут. Но две основные все же дам. Используйте post, когда вам будет мало 256 символов и когда передаете пароль.
action - здесь указывается абсолютный либо относительный путь к скрипту, которым будут обработаны данные переданные формой.
Таким образом немного усложненная форма будет выглядеть так:
<form method="POST" action="act.php">
...
</form>

Данный код создаст форму, данные из которой будут отправлены методом post и обработаны файлом act.php, который находится в той же директории, что и файл данную форму сгенерировавший.
2. Поля ввода заключенные между тегами form.

Начнем с того, что все поля вода должны иметь атрибут name, по которому их значения и будут отработаны в скрипте, которому отсылаются данные. Таким образом к значению поля ввода <input name="var" ... > из обрабатывающего скрипта мы сможем обратиться используя такую конструкцию $_REQUEST["var"]

input - наиболее распространенное поле ввода; внешний вид очень сильно варьируется при использовании парметра type. Перечислю те из них, которые вам пригодятся на этапе освоения.
text - обычное поле ввода.
password - такое же поле ввода, но в нем все вводимые символы заменяются звездочками; используется для ввода паролей.
checkbox - флаги; позволяют отметить несколько выбранных вариантов. Флаги удобно обрабатывать, если полям одной смысловой группы давать одно имя вида name[], а не каждому свое, как-то name1, name2, name3 etc. В таком случае все значения флагов будут доступны в виде массива, если же работа с массивами вами пока не освоена, то использовать лучше второй вариант с уникальным именем.
radio - локализация данного названия пока под большим вопросом не столько у кодеров, сколько у лингвистов. Назовем его "радио". Данный элемент позволяет выбрать только одно поле из группы. В группу данные элементы объединяются автоматически при задании одного имени. Так к примеру
Укажите ваш возраст:
<input type="radio" name="age" value="1">18-25
<input type="radio" name="age" value="2">26-35
<input type="radio" name="age" value="3">36-45

Создаст группу переключателей, выбрать из которых возможно буде только один и никак иначе. Если в данном примере будет выбран второй, то в скрипт уйдет переменная с именем age значение которой будет равно 2 (значение value соответствующего поля).
submit - основной элемент формы. Кнопка, по нажатию на которую, данные отсылаются на сервер. Есть еще способы, но вы поа остановитесь на этом.
Следующий немаловажный атрибут тега input - value. Для стандартных полей ввода он определяет текст который будет находится в поле сразу после загрузки страницы, для типа submit он определяет надпись на кнопке (лушче не использовать по причинам нарушения юзабилити) и для типов checkbox и radio он определяет значения соотвествующих полей (здесь использовать обязательно).
Пример нескольких полей ввода:
Логин: <input type="text" name="login">
Пароль: <input type="password" name="password">
<input type="submit">

Такой блок создаст нам поля для ввода логина, пароля и кнопку для отсылки их на сервер.

Продолжим с порями ввода. Раскрывающийся список можно создать используя тег select. Требуемый атрибут, как и везде - name
<select name="list">
...
</select>

Каждый элемент списка описывается тегом option. Трубемый атрибут - value, с котором мы храним значение, которое будет отправлено на сервер. option имеет открывающий и закрывающий тег. Между ними указывается то, что будет отображено пользователю, как элемент списка.
Пример:
<select name="age">
<option value="1">18-25</option>
<option value="2">26-35</option>
<option value="3">36-45</option>
</select>

Создаст раскрывающийся список из трех элементов. После выбора второго на сервер будет отправлена переменная age со значением 2

Далее тег создающий текстовую область - textarea. Имеет открывающий и закрывающий теги. Атрибуты:
name - как обычно имя поля
cols - количество символов в строке
rows - количество строк

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

2007-03-07 в 11:37 

Adrina_Lin!
Лишь потеряв все до конца мы обретаем свободу...
HeatMiser
Поскольку вам, уважаемая Adrina_Lin!, лень прочитать это
а мне никто не давал читать ЭТО!

я умница и все законспектировала :goodgirl: :nail:
спасиба вам всем бальшое!!! :shuffle2:

2007-03-07 в 17:02 

[php]
Adrina_Lin!
а мне никто не давал читать ЭТО! и слава богу есть более умные ресурсы.)))
Надеюсь скоро увидив Ваши творения , обращайтесь еще (:

URL
2007-03-08 в 21:52 

Adrina_Lin!
Лишь потеряв все до конца мы обретаем свободу...
канешна увидите!!! :) обязательно пришлю ссылочку!

2007-03-09 в 11:33 

Adrina_Lin!
Лишь потеряв все до конца мы обретаем свободу...
у меня ничего не получаеца... :weep3: не работает ничего!!! :weep2: :teeth:

2007-03-09 в 11:36 

Adrina_Lin!
Лишь потеряв все до конца мы обретаем свободу...
я тупая!!!!! :weep3:

2007-03-09 в 19:17 

[php]
Adrina_Lin!
код в студию как всегда , посмотрим, оценим, поправим. (что хочется - код - что именно не работает)

URL
2007-03-12 в 10:41 

Adrina_Lin!
Лишь потеряв все до конца мы обретаем свободу...
я нашла учебник. там пример есть. попробовала, а он не работает...
<?php
$subj = "Запрос на информацию";
$text = "Уважаемый ".$_POST['name']."!
Спасибо за ваш интерес!
Вас интересуют ".$_POST['preference']."
Мы их распространяем бесплатно.
Обратитесь в ближайший филиал нашей компании и получите ящик этого продукта.";
mail($_POST['email'], $subj, $text);

$subj = "Поступил запрос на информацию";
$text = $_POST['name']." интересовали ".$_POST['preference']." email-адрес: ".$_POST['email'];
mail($adminaddress, $subj, $text);
?>

переменные тока переписала... но все равно не работает. выводит какую-то белиберду!

   

Сообщество PHP программистов

главная