Php action

Что за переменная PHP _SELF?

Переменная PHP _SELF возвращает имя и путь к текущему файлу (относительно корня документа). Вы можете использовать эту переменную в атрибуте формы action. Существуют также некоторые нюансы, которые вы должны знать. Мы, конечно, никак не можем обойти стороной эти нюансы.

Давайте рассмотрим несколько примеров.

echo $_SERVER['PHP_SELF'];

1) Предположим, что ваш php файл расположен по следующему адресу:

http://www.yourserver.com/form-action.php

В этом случае переменная PHP _SELF будет содержать:

"/form-action.php"

2) Предположим, ваш php файл расположен по такому адресу:

http://www.yourserver.com/dir1/form-action.php

PHP _SELF будет:

"/dir1/form-action.php"    

PHP _SELF в атрибуте формы action. Для чего она там понадобилась?

Обычно переменную PHP _SELF используют в атрибуте action тега form. В атрибуте action указывается адрес, по которому будет отослано содержание формы после подтверждения (клик пользователем по кнопке с type=»submit»). Как правило это таже самая страница, с которой ушла форма.

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

Переменная PHP _SELF избавит вас от лишних исправлений, так как адрес страницы будет генерироваться автоматически, исходя из названия файла.

Допустим, у вас есть файл с формой form-action.php, и вы хотите, чтобы после подтверждения форма отправлялась на тот же самый файл. Обычно пишут так:

<form method="post"   action="form-action.php" >

Но вы можете использовать переменную PHP _SELF вместо form-action.php. В этом случае код будет выглядеть:

<form name="form1" method="post"   action="<?php echo $_SERVER['PHP_SELF']; ?>" >

Код для form-action.php

Объединим скрипт с формой:

<?php  if(isset($_POST['submit']))  {   $name = $_POST['name'];  echo "User name : <b> $name </b>";  echo "<br>Youcanusethefollowing form again to enter a new name.";  }  ?>  <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">     <input type="text" name="name"><br>   <input type="submit" name="submit" value="Submit Form"><br>    </form>    

Код, стоящий в верхней части HTML страницы, будет выполнен первым. В первой строчке кода проверяется: форма отправлена или нет. Если существует $_POST['submit'], то конструкция IF выполняется (TRUE) и будет выведено имя, введенное пользователем.

Если переменной $_POST['submit'] не существует, то форма не была отправлена и, соответственно, конструкция IF выполняться не будет (FALSE). Поэтому имя пользователя выведено не будет.

Нежелательные моменты, связанные с переменной PHP _SELF

Переменная PHP _SELF используется для того, чтобы получить имя и путь к текущему файлу — хорошо, но ее также могут использовать хакеры — плохо. Если на вашей странице стоит PHP _SELF, пользователь может ввести слеш (/) и прописать вредоносные XXS скрипты.

Рассмотрим пример:

<form name="test"   action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

Теперь, если пользователь зашел с нормального
url, то в адресной строке будет что-то наподобие:
http://www.yourdomain.com/form-action.php
а код, приведенный выше, можно прочитать так:

<form name="test" action="form-action.php" method="post">

В этом случае, как вы видите, все нормально.

Теперь давайте рассмотрим ситуацию, когда пользователь начинает «химичить» с адресной строкой:
http://www.yourdomain.com/form-action.php/%22%3E%3Cscript%3Ealert('xss')%3C
/script%3E%3Cfoo%22

В этом случае, после работы PHP ваш код примет такой вид:

<form name="test" method="post"   action="form-action.php"/>  <script>alert('xss')</script><foo"">

Вы можете видеть сами, что в код добавлен тег script и команда alert. Когда эта страница будет загружена, пользователь увидит окно с предупреждением. Это простой пример того, как можно эксплуатировать переменную PHP _SELF.

Любой JavaScript код может быть добавлен между тегами script. Хакер также может ссылаться на JavaScript файл, который будет расположен на другом сервере. В этом файле, вероятно, будет вредоносный код, посредством которого хакер может изменить глобальные переменные и переправить форму на другой адрес с целью перехвата введенных пользователем данных.

Как избежать неприятностей, связанных с PHP _SELF

Неприятностей можно избежать, используя функцию htmlentities()
. Взгляните на код формы, где присутствует функция htmlentities().

<form name="test"   action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"   method="post">

Функция htmlentities() преобразует все возможные символы в соответствующие HTML-сущности. Теперь попытка обойти переменную PHP _SELF потерпит крах и результат внедрения вредоносного кода выразиться в следующем:

<form name="test" method="post"  action="form-action.php/&quot;&gt;&lt;script&gt;alert('xss')&  lt;/script&gt;&lt;foo">

Как видите, часть скрипта чиста.

Итак, не забывайте преобразовывать $_SERVER['PHP_SELF'] в htmlentities($_SERVER['PHP_SELF']) на протяжении всего скрипта.

Стоит отметить, что некоторые серверы автоматически проводят эту конвертацию. К чему рисковать? Возьмите в привычку использовать PHP _SELF совместно с htmlentities().

Источник

dnzl.ru

Одно из главнейших достоинств PHP — то, как он работает с формами HTML. Здесь основным является то, что каждый элемент формы автоматически становится доступным вашим программам на PHP. Для подробной информации об использовании форм в PHP читайте раздел Переменные из внешних источников. Вот пример формы HTML:


В этой форме нет ничего особенного. Это обычная форма HTML без каких-либо специальных тегов. Когда пользователь заполнит форму и нажмет кнопку отправки, будет вызвана страница action.php. В этом файле может быть что-то вроде:

Если не принимать во внимание куски кода с htmlspecialchars() и (int), принцип работы данного кода должен быть прост и понятен. htmlspecialchars() обеспечивает правильную кодировку "особых" HTML-символов так, чтобы вредоносный HTML или Javascript не был вставлен на вашу страницу. Поле age, о котором нам известно, что оно должно быть число, мы можем просто преобразовать в integer, что автоматически избавит нас от нежелательных символов. PHP также может сделать это автоматически с помощью расширения filter. Переменные $_POST[‘name’] и $_POST[‘age’] автоматически установлены для вас средствами PHP. Ранее мы использовали суперглобальную переменную $_SERVER, здесь же мы точно так же используем суперглобальную переменную $_POST, которая содержит все POST-данные.
метим, что метод отправки (method) нашей формы — POST. Если бы мы использовали метод GET, то информация нашей формы была бы в суперглобальной переменной $_GET. Кроме этого, можно использовать переменную $_REQUEST, если источник данных не имеет значения. Эта переменная содержит смесь данных GET, POST, COOKIE.

В PHP можно также работать и с XForms, хотя вы найдете работу с обычными HTML-формами довольно комфортной уже через некоторое время. Несмотря на то, что работа с XForms не для новичков, они могут показаться вам интересными. В разделе возможностей PHP у нас также есть короткое введение в обработку данных из XForms.

php.net

PHP — A Simple HTML Form

The example below displays a simple HTML form with two input fields and a submit button:

When the user fills out the form above and clicks the submit button, the form data is sent for processing to a PHP file named "welcome.php". The form data is sent with the HTTP POST method.

To display the submitted data you could simply echo all the variables. The "welcome.php" looks like this:

The output could be something like this:

The same result could also be achieved using the HTTP GET method:

and "welcome_get.php" looks like this:

The code above is quite simple. However, the most important thing is missing. You need to validate form data to protect your script from malicious code.



GET vs. POST


Both GET and POST create an array (e.g. array( key1 => value1, key2 => value2, key3 => value3, …)). This array holds key/value pairs, where keys are the names of the form controls and values are the input data from the user.

Both GET and POST are treated as $_GET and $_POST. These are superglobals, which means that they are always accessible, regardless of scope — and you can access them from any function, class or file without having to do anything special.

$_GET is an array of variables passed to the current script via the URL parameters.

$_POST is an array of variables passed to the current script via the HTTP POST method.


When to use GET?

Information sent from a form with the GET method is visible to everyone (all variable names and values are displayed in the URL). GET also has limits on the amount of information to send. The limitation is about 2000 characters. However, because the variables are displayed in the URL, it is possible to bookmark the page. This can be useful in some cases.

GET may be used for sending non-sensitive data.

Note: GET should NEVER be used for sending passwords or other sensitive information!


When to use POST?


Information sent from a form with the POST method is invisible to others (all names/values are embedded within the body of the HTTP request) and has no limits on the amount of information to send.

Moreover POST supports advanced functionality such as support for multi-part binary input while uploading files to server.

However, because the variables are not displayed in the URL, it is not possible to bookmark the page.

Next, lets see how we can process PHP forms the secure way!


www.w3schools.com

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали о том, что такое сериализация в php. В данной статье я бы хотел рассказать о том, как работать с формами в PHP. Язык PHP предназначен для программирования web-сценариев, и обработка форм занимает, пожалуй, самое главное место в этом процессе. Сейчас уже и не встретить сайтов, на которых не было бы, к примеру, регистрации или формы обратной связи, или опросника. Форумы, интернет-магазины, добавление комментария, отправка сообщения в социальной сети — всё это обработка данных, помещенных в поля формы. Давайте на примере разберемся, как обрабатывать формы на PHP.
Будем реализовывать простую задачу: необходимо создать 2 поля (имя и фамилия), передать эти данные скрипту action.php, в результате должно выйти приветствие "Добро пожаловать, фамилия имя". Кто забыл, как создаются формы, и какие там есть поля, можно посмотреть ТУТ. Создадим файл test.html:


  <html>  <head>  	<meta charset="utf-8"/>  </head>  <body>  	<form action="action.php">  		Имя: <input type="text" name="name" value=""/>  		Фамилия: <input type="text" name="surname" value=""/>  		<input type="submit" name="start" value="Запустить сценарий"/>  	</form>  </body>  </html>  

Обращаю ваше внимание, что файл action.php (в нашем случае) должен находиться в одной папке с файлом test.html. Тут можно указывать как относительные, так и абсолютные пути. Будьте внимательны, многие ошибки связаны с неправильным указанием пути до скрипта-обработчика формы.

Создадим файл action.php со следующим содержимым:

  <?php  echo "Данные из строки браузера: $_SERVER[QUERY_STRING]";   ?>  

Если мы сейчас откроем файл test.html, заполним поля формы и нажмём на кнопку, то попадём в файл action.php, где будет выведено сообщение. В данном случае браузер обращается к скрипту action.php и передает ему, через знак "?" все значения атрибутов name, расположенных внутри тегов <input>, разделенных символом &. Обратите внимание, что подставляется вместо $_SERVER[QUERY_STRING].


Нашу задачу мы можем решить, разобрав строку QUERY_STRING с помощью стандартных функций по работе со строками в PHP, но лучше воспользоваться другим механизмом — это использование массива $_REQUEST. Все данные, которые получены из полей формы, PHP помещает в массив $_REQUEST, не зависимо от того, каким способом были переданы данные: POST или GET (узнать можно через $_SERVER[‘REQUEST_METHOD’]). Напоминаю чем эти способы отличаются:

Метод GET является открытым, метод POST является закрытым, т.е. они отличаются способом передачи параметров. Пример:

Также, помимо массива $_REQUEST, PHP создаёт массивы $_GET и $_POST. Давайте теперь реализуем нашу задачу, на основе полученных знаний:

  <?php  	echo "Добро пожаловать, ".$_REQUEST["surname"]." ".$_REQUEST["name"]; //В квадратных скобках передаётся атрибут name текстового поля  ?>  

Если мы сейчас заполним форму и нажмём на кнопку, то увидим, что скрипт action.php приветствует нас по фамилии и имени. Всё работает корректно.

Здесь всё хорошо, но если мы изменим название скрипта, то нужно будет вносить изменения в файл test.html. Давайте модифицируем файл action.php, так, чтобы, обращаясь к нему либо выводилась форма, когда мы ничего не отправили, либо приветствие, когда мы нажали кнопку:

  <html>  <head>  	<meta charset="utf-8"/>  </head>  <body>  	<?php if (!isset($_REQUEST['start'])) {?>   		<form action="<?=$_SERVER['SCRIPT_NAME']?>">   			Имя: <input type="text" name="name" value=""/>  			Фамилия: <input type="text" name="surname" value=""/>  			<input type="submit" name="start" value="Запустить сценарий"/>  		</form>   	<?php} else {   			echo "Добро пожаловать, $_REQUEST['surname'] $_REQUEST['name']";  		}   	}?>   </body>  </html>  

Теперь мы не зависим от имени скрипта, т.к. задаем его через переменную окружения $_SERVER[‘SCRIPT_NAME’]. Конструкция равнозначна конструкции .
Помимо переменной окружения SCRIPT_NAME существует множество других.

Домашнее задание: необходимо написать скрипт, который будет выводить ip-адрес пользователя и его браузер. Подсказка: необходимо воспользоваться другими переменными окружения $_SERVER, все переменные окружения можно вывести с помощью php_info();

В данной статье вы узнали, как работать с формами в PHP.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


alekseygulynin.ru

Как сделать форму на HTML

Форма создается с помощью тега form. Этот тег имеет два важных атрибута.

Атрибут action задает адрес страницы сайта, на которую будут отправляться введенные данные. Если оставить этот атрибут пустым — форма отправится на текущую страницу сайта.

Атрибут method задает способ отправки формы. Может принимать значение GET или POST. При отправки методом GET данные из формы будут видны в адресной строке, а при отправке методом POST — не видны.

Имейте ввиду, что PHP код страницы с формой выполнится не один раз, как может показаться, а два раза — первый раз пользователь зайдет на страницу сайта, заполнит форму, нажмет на кнопку отправки, данные из формы отправятся на сервер и PHP код страницы начнет выполнятся сначала.

Поля формы

Внутри тега form можно располагать различные элементы формы: поле ввода input, кнопку отправки формы, многострочное поле ввода textarea и некоторые другие элементы, которые нам пока не нужны.

Как получить данные из формы в PHP

Мы можем получить данные, которые ввел пользователь в форму, в PHP коде. Это делается с помощью глобальных массивов $_GET, $_POST, $_REQUEST.

В $_GET будут лежать данные, отправленные методом GET, в $_POST будут лежать данные, отправленные методом POST, а $_REQUEST — данные, отправленные и тем, и другим методом одновременно.

Как именно это делается: пусть в форме есть инпут с атрибутом name=»user». Тогда после отправки этой формы мы можем получить данные из этого инпута таким образом: $_GET[‘user’] (или $_POST[‘user’], или $_REQUEST[‘user’]).

Сохраняем значения полей формы после отправки

Давайте сделаем так, чтобы при отправке формы не стирались значения из инпутов:

Пример выше будет генерировать предупреждение PHP при первом заходе на страницу — в случае, когда отправка формы еще не была сделана. Исправим это:

Дополнительные материалы

Рекомендую посмотреть видео из заочного курса: скачайте его по данной ссылке.

code.mu

Форма с записью результата в файл

Оставляем нашу форму как есть и заносим в файл имя, фамилию, телефон и IP адрес посетителя. Вот и всё. Тестируйте.

Форма с записью результата в базу данных MySql

В случае с базой чуть посложнее. Тут очень важен момент безопасности. Данные необходимо профильтровать и лишь потом занести в БД, иначе злоумышленник может провести SQL инъекцию и уничтожить вашу базу данных.Обязательно используйте функцию mysql_real_escape_string. Пишем обработчик: Будет лучшим использовать библиотеку PDO. Код будет выглядеть следующим образом: Обратите внимание,что при использовании PDO наши переменные не проходили никакой проверки. Но это не является уязвимостью. Библиотека PDO самостоятельно очистит всё лишнее и выполнит запрос. Чтоб узнать результат запроса-допишите в конце следующий код:

Форма с отправкой e-mail средствами php

Опять правим форму. На этот раз экранируем ненужные символы для безопасного отображения в браузере. Используется для этого функция htmlspecialchars. Вот и всё. Если делаете форму, доступную для посетителей сайта-обязательно используйте капчу. Качайте исходники, разбирайтесь. Пишите комментарии, задавайте вопросы.

php-include.ru

What is PHP_SELF variable?

PHP_SELF is a variable that returns the current script being executed. This variable returns the name and path of the current file (from the root folder). You can use this variable in the action field of the FORM. There are also certain exploits that you need to be aware of. We shall discuss all these points in this article.

We will now see some examples.
echo $_SERVER['PHP_SELF'];

a) Suppose your php file is located at the address:
http://www.yourserver.com/form-action.php

In this case, PHP_SELF will contain:
"/form-action.php"

b) Suppose your php file is located at the address:
http://www.yourserver.com/dir1/form-action.php

For this URL, PHP_SELF will be :
"/dir1/form-action.php"

Using the PHP_SELF variable in the action field of the form

A common use of PHP_SELF variable is in the action field of the <form> tag. The action field of the FORM instructs where to submit the form data when the user presses the “submit” button. It is common to have the same PHP page as the handler for the form as well.

However, if you provide the name of the file in the action field, in case you happened to rename the file, you need to update the action field as well; or your forms will stop working.

Using PHP_SELF variable you can write more generic code which can be used on any page and you do not need to edit the action field.

Consider, you have a file called form-action.php and want to load the same page after the form is submitted. The usual form code will be:

We can use the PHP_SELF variable instead of “form-action.php”. The code becomes:

The complete code of “form-action.php”

Here is the combined code, that contains both the form and the PHP script.

This PHP code is above the HTML part and will be executed first. The first line of code is checking if the form is submitted or not. The name of the submit button is “submit”. When the submit button is pressed the $_POST['submit'] will be set and the IF condition will become true. In this case, we are showing the name entered by the user.

If the form is not submitted the IF condition will be FALSE as there will be no values in $_POST['submit'] and PHP code will not be executed. In this case, only the form will be shown.

What are PHP_SELF exploits and how to avoid them

The PHP_SELF variable is used to get the name and path of the current file but it can be used by the hackers too. If PHP_SELF is used in your page then a user can enter a slash (/) and then some Cross Site Scripting (XSS) commands to execute.

See below for an example:

Now, if a user has entered the normal URL in the address bar like
http://www.yourdomain.com/form-action.php
the above code will be translated as:

This is the normal case.

Now consider that the user has called this script by entering the following URL in the browser’s address bar:

http://www.yourdomain.com/form-action.php/%22%3E%3Cscript%3Ealert('xss')%3C
/script%3E%3Cfoo%22

In this case, after PHP processing the code becomes:

You can see that this code has added a script tag and an alert command. When this page is be loaded, user will see an alert box. This is just a simple example how the PHP_SELF variable can be exploited.

Any JavaScript code can be added between the “script” tag. <script>....HERE....</script>. A hacker can link to a JavaScript file that may be located on another server. That JavaScript file can hold the malicious code that can alter the global variables and can also submit the form to another address to capture the user data, for example.

How to Avoid the PHP_SELF exploits

PHP_SELF exploits can be avoided by using the htmlentities() function. For example, the form code should be like this to avoid the PHP_SELF exploits:

The htmlentities() function encodes the HTML entities. Now if the user tries to exploit the PHP_SELF variable, the attempt will fail and the result of entering malicious code in URL will result in the following output:

As you can see, the script part is now ‘sanitized’.

So don’t forget to convert every occurrence of "$_SERVER['PHP_SELF']" into "htmlentities($_SERVER['PHP_SELF'])" throughout your script.

NOTE:
Some PHP servers are configured to solve this issue and they automatically do this conversion.But, why take risk? make it a habit to use htmlentities() with PHP_SELF.

form.guide

Предварительно определенные переменные

В PHP существует ряд предварительно определенных переменных, которые не меняются при выполнении всех приложений в конкретной среде. Их также называют переменными окружения или переменными среды. Они отражают установки среды Web-сервера Apache, а также информацию о запросе данного браузера. Есть возможность получить значения URL, строки запроса и других элементов HTTP-запроса.

Все предварительно определенные переменные содержатся в ассоциативном массиве $GLOBALS. Кроме переменных окружения этот массив содержит также глобальные переменные, определенные в программе.

Пример 1

<html> <head> <title>Просмотр массива $GLOBALS</title> </head> <body> <?php  $a = "Hello!";  foreach ( $GLOBALS as $key=>$value )  echo "$GLOBALS["$key"] == $value<br>"; ?> </body> </html>

В результате на экране появится список всех глобальных переменных, включая переменные окружения. Наиболее часто используемые из них:

Переменная Описание Cодержание
$_SERVER[‘HTTP_USER_AGENT’] Название и версия клиента

$_SERVER[‘REMOTE_ADDR’]

IP-адрес

185.98.86.181
getenv(‘HTTP_X_FORWARDED_FOR’)

Внутренний IP-адрес клиента
$_SERVER[‘REQUEST_METHOD’]

Метод запроса (GET или POST)

GET
$_SERVER[‘QUERY_STRING’]

При запросе GET закодированные данные, передаваемые вместе с URL

$_SERVER[‘REQUEST_URL’]

Полный адрес клиента, включая строку запроса

$_SERVER[‘HTTP_REFERER’]

Адрес страницы, с которой был сделан запрос

$_SERVER[‘PHP_SELF’]

Путь к выполняемой программе

/index.php
$_SERVER[‘SERVER_NAME’]

Домен

htmlweb.ru
$_SERVER[‘REQUEST_URI’]

Путь

/php/php_form.php

Обработка ввода пользователя

PHP-программу обработки ввода можно отделить от HTML-текста, содержащего формы ввода, а можно расположить на одной странице.

Пример 2

<?php if ( ! isset( $cardnumber ) )  $m = "Введите номер карточки"; elseif ( $cardnumber == "" )  $m = "Ваш номер пуст!"; else  $m = "Ваш номер: $cardnumber"; ?> <html> <head> <title>Пример обработки ввода</title> </head> <body> <h1><?php echo $m?></h1> <form name="form1" action="<?=$_SERVER['PHP_SELF']?>" method="post">  <p>Номер карточки:  <input name="cardnumber" type="text" size="20"> </form> </body> </html>

Здесь отсутствует кнопка передачи данных, т.к. форма, состоящая из одного поля, передается автоматически при нажатии клавиши <Enter>.

При обработки элемента с многозначным выбором для доступа ко всем выбранным значениям нужно к имени элемента добавить пару квадратных скобок. Для выбора нескольких эллементов следует удерживать клавишу Ctrl.

Пример 3.1

Файл ex.htm

<html> <head> <title>Список</title> </head> <body> <form name="form1" action="ex1.php" method="post"> <select name="Item[]" size=5 multiple> <option>Чай <option>Кофе <option>Молоко <option>Ветчина <option>Сыр </select> <input type="submit" value="ВВОД"> </form> </body> </html>

Пример 3.2

Файл ex.php

<html> <head> <title>Обработка списка из файла ex1.htm</title> </head> <body> <?php echo "Ваш заказ: <p><ul>"; foreach ( $Item as $value ) echo "<li>$value"; echo "</ul>"; ?> </body> </html>

Пример 4. Прием значений от checkbox-флажков

<?php if (@$_REQUEST['doGo']) {  foreach (@$_REQUEST['known'] as $k=>$v) {  if($v) echo "Вы знаете язык программирования $k!<br>";  else echo "Вы не знаете языка программирования $k. <br>";  } } ?> <form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post"> Какие языки программирования вы знаете?<br> <input type=hidden name="known[PHP]" value="0">  <input type=checkbox name="known[PHP]" value="1"> PHP<br> <input type=hidden name="known[Perl]" value="0">  <input type=checkbox name="known[Perl]" value="1"> Perl<br> <input type=submit name="doGo" value="Go!"> </form>

Пример 5

<?php // Модель скрипта, принимающего текст от пользователя. if (@$_REQUEST['text'])  echo htmlspecialchars($_REQUEST['text'])."<hr>"; ?> <form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post"> <textarea name="text" cols="60" rows="10"> < ?=@htmlspecialchars($_REQUEST['text'])?> </textarea><br> <input type="submit"> </form>

Можно обрабатывать формы, не заботясь о фактических именах полей.

Для этого можно использовать (в зависимости от метода передачи) ассоциативный массив $HTTP_GET_VARS или $HTTP_POST_VARS. Эти массивы содержат пары имя/значение для каждого элемента переданной формы. Если Вам все равно, Вы можете использовать ассоциативный массив $_REQUEST.

Пример 6

<html> <head> <title>Обработка произвольного ввода         независимо от метода передачи</title> </head> <body> <?php $params = ( $_SERVER['REQUEST_METHOD'] == "GET" )  ? $HTTP_GET_VARS : $HTTP_POST_VARS;  foreach ( $params as $key=>$value )  echo "$key == $value<br>"; ?> </body> </html>

Пример 7. Обработка нажатия на кнопку с использованием оператора ‘@’.

<?php if (@$_REQUEST['submit']) echo "Кнопка нажата!" ?> <form action="<?=$_SERVER['SCRIPT_NAME']?>"> <input type="submit" name="submit" value="Go!"> </form>

С помощью функции header(), послав браузеру заголовок «Location», можно перенаправить пользователя на новую страницу.

Например:

<? header("Location: ex2.php"); ?>

Передача файла на сервер. Залить файл. UpLoad

PHP позволяет передавать на сервер файлы. HTML-форма, предназначенная для передачи файла, должна содержать аргумент enctype=»multipart/form-data».

Кроме того в форме перед полем для копирования файла должно находиться скрытое поле с именем max_file_size. В это скрытое поле должен быть записан максимальный размер передаваемого файла (обычно не больше 2 Мбайт).

Само поле для передачи файла — обычный элемент INPUT с аргументом type=»file».

Например:

<form enctype="multipart/form-data"     action="<?echo $_SERVER['PHP_SELF']?>" method="post"> <input type="hidden" name="max_file_size" value="51200"> <input type="file" name="myfile"><br> <input type="submit" value="ВВОД"> </form>

После того, как файл передан на сервер, он получает уникальное имя и сохраняется в каталоге для временных файлов. Полный путь к файлу записывается в глобальную переменную, имя которой совпадает с именем поля для передачи этого файла. Кроме этого PHP сохраняет еще некоторую дополнительную информацию о переданном файле в других глобальных переменных:

Переменная Описание
$_FILES[‘userfile’][‘name’]

оригинальное имя файла, такое, каким его видел пользователь, выбирая файл
$_FILES[‘userfile’][‘type’]

mime/type файла, к примеру, может быть image/gif; это поле полезно сохранить, если Вы хотите предоставлять интерфейс для скачивания загруженных файлов
$_FILES[‘userfile’][‘size’]

размер загруженного файла
$_FILES[‘userfile’][‘tmp_name’]

полный путь к временному файлу на диске
$_FILES[‘userfile’][‘error’]

код ошибки, который равен 0, если операция прошла успешно

htmlweb.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector