Работа с формами
Одно из главнейших достоинств PHP — то, как он работает с формами HTML. Здесь основным является то, что каждый элемент формы автоматически становится доступным вашим программам на PHP. Для подробной информации об использовании форм в PHP читайте раздел Переменные из внешних источников. Вот пример формы HTML:
Пример #1 Простейшая форма HTML
В этой форме нет ничего особенного. Это обычная форма HTML без каких-либо специальных тегов. Когда пользователь заполнит форму и нажмёт кнопку отправки, будет вызвана страница action.php . В этом файле может быть что-то вроде:
Пример #2 Выводим данные формы
Пример вывода данной программы:
Здравствуйте, Сергей. Вам 30 лет.
Если не принимать во внимание куски кода с htmlspecialchars() и (int) , принцип работы данного кода должен быть прост и понятен. htmlspecialchars() обеспечивает правильную кодировку «особых» HTML-символов так, чтобы вредоносный HTML или Javascript не был вставлен на вашу страницу. Поле age, о котором нам известно, что оно должно быть число, мы можем просто преобразовать в int , что автоматически избавит нас от нежелательных символов. PHP также может сделать это автоматически с помощью модуля filter. Переменные $_POST[‘name’] и $_POST[‘age’] автоматически установлены для вас средствами PHP. Ранее мы использовали суперглобальную переменную $_SERVER , здесь же мы точно так же используем суперглобальную переменную $_POST , которая содержит все POST-данные. Заметим, что метод отправки (method) нашей формы — POST. Если бы мы использовали метод GET, то информация нашей формы была бы в суперглобальной переменной $_GET . Кроме этого, можно использовать переменную $_REQUEST , если источник данных не имеет значения. Эта переменная содержит смесь данных GET, POST, COOKIE.
В PHP можно также работать и с XForms, хотя вы найдёте работу с обычными HTML-формами довольно комфортной уже через некоторое время. Несмотря на то, что работа с XForms не для новичков, они могут показаться вам интересными. В разделе возможностей PHP у нас также есть короткое введение в обработку данных из XForms.
User Contributed Notes 3 notes
According to the HTTP specification, you should use the POST method when you’re using the form to change the state of something on the server end. For example, if a page has a form to allow users to add their own comments, like this page here, the form should use POST. If you click «Reload» or «Refresh» on a page that you reached through a POST, it’s almost always an error — you shouldn’t be posting the same comment twice — which is why these pages aren’t bookmarked or cached.
You should use the GET method when your form is, well, getting something off the server and not actually changing anything. For example, the form for a search engine should use GET, since searching a Web site should not be changing anything that the client might care about, and bookmarking or caching the results of a search-engine query is just as useful as bookmarking or caching a static HTML page.
Also, don’t ever use GET method in a form that capture passwords and other things that are meant to be hidden.
Using Form Elements
Form elements are used for capturing user input. A form contains one or more elements, which are the fields where the user can enter data. When a user finishes entering the data, the form is submitted to the server for verification or storing of the data.
Text Field
The text type displays a single-line box in which the user can enter text. It is the default type for the input tag even if you forgot to specify the input type or you specified an invalid type. The following input tags are valid text fields:
Input Attributes
type:
The text is the default type for an input tag, other types are hidden, tel, url, email, password, date, time, datetime-local, number, range, color, checkbox, radio, file, submit, image, reset, and button (discussed below).
name:
PHP (or any server-side language) will use the name attribute to retrieve the data (text) from this field. For example, in PHP:
$phone = $_POST[‘state’]; .
value:
You can prefill the text field by writing the text in the value attribute. PHP access the input value by its name attribute: $_POST[‘state’] .
placeholder:
The placeholder gives a quick hint about how to fill in the field.
Specify any regular expression that must be matched in order to pass validation.
Displays as the validation message if the field doesn’t match the pattern (regular expression).
Specify the mandatory field, a value must be present for the form to be submitted.
Example: Restricting form submission unless the pattern is matched:
" title="Please enter state code, i.e. CA" required >
The text field uses the pattern attribute that uses a regular expression [A-Z] to match two uppercase letters. The required attribute tells the browser that this field is mandatory.
The form will not submit if you leave the field blank, enter more than two letters, enter lowercase letters, or enter anything other than uppercase letters, let’s try:
Password Field
A password field is like a text input field, except that the characters that the user enters are disguised as asterisks or circles in the field. You code a password field the same way you code a text input field, except that you replace the word “text” with the word “password’.
Hidden Field
A hidden form field is used when you want to embed data that shouldn’t be seen by the user. The data associated with a hidden form field will be submitted along with the rest of the fields of the form when the form is submitted.
Radio Button
Radio buttons enable you to provide users with a list of options from which only one option can be selected. You must write the same name in the name property to create a radio button group.
Check Box
A check box field has two states: on and off. A user can select as many choices as they would like in a group of checkboxes.
Multiline Text Field
The above code represents a multi-line text box. This field does not have a value attribute. To prefill this box, write your text between the opening and closing tags. For example: Your text .
The rows=»4″ cols=»50″ specifies the box height and width but it is recommended to use the CSS stylesheet to set the width and height of the textarea.
Selection List
The select field creates a drop-down menu from which a user can choose an option.
Multiple Selection List
By default, users can only select a single option from the select menu. Adding the multiple attribute allows a user to select multiple options at once and submit all selected options with the form.
File Field
The input file field allows users to upload files to the server. To enable uploading files you must specify the enctype attribute of form tag to multipart/formdata :
The accept attribute tells the browser to show only specified file types. The following example shows only image files to choose from:
Try it (only images are allowed):
To choose only pdf and doc files, use the comma to separate them:
Try it (only pdf, doc, and docs files are allowed):
Submit Button
A submit input creates a button that submits the form it is inside when clicked.
Reset Button
To see how a form resets, fill fields and press the Reset button:
- Text in an input field will be reset to blank or its default value (specified using the value attribute).
- Any option in a selection menu will be deselected unless they have the selected attribute.
- All checkboxes and radio boxes will be deselected unless they have the checked attribute.
HTML5 Form Fields
These fields can be automatically validated when submitted depending on the browser support.
Note: These fields are considered as type=»text» if the browser does not support the type specified.