Самостоятельное создание сайта
Самостоятельная раскрутка и продвижение сайта

Переменные php, метод Get и Post

   Начинающий web-программист начинает свою работу с изучения переменных php. Почти вся полезная для пользователей информация на страничке сайта находится в переменных, а сама конструкция страницы в шаблоне.
   Таким образом, веб-программист лишь меняет значение переменных и пользователь получает новую страничку.

   Переменные, передача их значений (присвоение/отправка/получение) необходимая часть работы веб-мастера без знания которой, Вы не создадите динамической странички.

  1. Создание переменных и их виды.
  2. Период действия переменных.
  3. Отправка и получение переменных с помощью методов Get и Post.

  Создание переменных и их виды
   Переменная - это буквенно-символьное представление кусочка информации которая находится в памяти у Web-сервера. В php переменная выглядит вот так:

   $name = "я информация в памяти тчк";

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

   Пример названия переменной:

   $4mysite = 'держи курс'; // неправильно: начинается с цифры
   $my_site = 'hello'; // правильно: символ "_" допускается
   $big4_1 = 'раздел 4.1.'; // правильно: допустимая комбинация

   Все переменные делятся на определенные типы:


   В PHP, также, существуют зарезервированные предопределенные переменные которые используются для определенных значений таких как параметров PHP, Web-сервера, параметров браузера пользователя.
   Например, тип и версия браузера пользователя находится в зарезервированной переменной $_SERVER["HTTP_USER_AGENT"], перечень всех переданных переменных и их значение находятся в $_SERVER["QUERY_STRING"] и т.д. Рано или поздно Вы все их изучите, их не так много.

   Сейчас для нас представляет интерес лишь две зарезервированные предопределенные переменные: $_GET и $_POST. Эти две переменные важны тем, что позволяют передавать в себе имя переменной и ее значение в запросе пользователя.

   В PHP значение переменных может быть получено следующим образом:
   1. заранее определено web-программистом;
   2. получено в результате выполнения веб-сервером функций/операций;
   3. получено через запрос браузера методом Get или Post.

   Последний вариант и используется для создания интерактивного общения страницы сайта с пользователем. Выбирая тот или иной вариант ответа, вводя информацию в поля, или мы просто хотим запомнить выбранные настройки пользователем программистами используется методы Get или Post для отправки/получения запросов с информацией.

  Период действия/существования переменных
   Переменные в PHP существуют только на время выполнения пользователем одного запроса к серверу. Это означает, что когда пользователь заходит на главную страничку сайта, а с нее переходит на внутреннюю страничку, то все переменные. которые были созданы при создании главной странички не передаются дальше, а при новом запросе создаются заново.
   Если, например, меню сайта находится в базе данных MySQL, то при каждом запросе пользователя (перехода со странички на страничку) web-сервер, выполняя код PHP, будет запрашивать из базы данных информацию по меню и заносить ее в одну и туже переменную.
   Почему же тогда все странички разные, если все переменные начинаются с нуля? Потому что, когда пользователь нажимает на ссылку он передает web-серверу переменную с определенным значением. А веб-сервер, каждый раз при выполнении кода PHP проверяет на существование переменной с определенным значением и если она существует, то выполняет определенный сценарий. И в результате вы получаем другую страничку. Потому что веб-сервер, выполнил код PHP по другому сценарию.

  Отправка и получение переменных с помощью методов Get и Post
   Передача переменных методами Get и Post отличается лишь в отправке данных.
   Метод Get передает имя переменной и ее значение в самой ссылке, а метод Post передает имя переменной и ее значение в специальном скрытом запросе. Поэтому, для передачи секретных данных всегда используют метод Post.

   Давайте, рассмотрим пример отправки данных методом Get (передача имен переменных и их значений в самой ссылке):

<html>
<head>
<title>Пример передачи значений переменных методом Get</title>
</head>
<body>
<a href=http://info-pages.com.ua/index.php?name=Franki&age=35>нажми</a>
</body>
</html>

   В примере изображен код простейшей html страницы с одной ссылкой, где:
   http://info-pages.com.ua - адрес домена (хост);
   index.php - название файла с кодом PHP (скрипт) к которому мы обращаемся и который будет выполнятся web-сервером;
   ? - символ запятой указывает веб-серверу про передачу скрипту параметров;
   name=Franki&age=35 - здесь мы передаем скрипту имена переменных и их значения, между собой переменные должны разделятся символом "&". Первая переменная будет называться "name" и иметь текстовое значение "Franki", а вторая называться "age" и иметь числовое значение "35".

   Теперь в скрипте "index.php" нам нужно получить значение переменных, для этого мы будем использовать зарезервированную предопределенную переменную $_GET.
   Рассмотрим код PHP внутри скрипта "index.php":

<?php

if (!empty($_GET["name"])&&!empty($_GET["age"])) { echo " Получены новые вводные: имя - ".$_GET["name"].", возраст - ".$_GET["age"]." лет";} else { echo "Переменные не дошли. Проверьте все еще раз."; }

?>

Теперь разберем код: функция "empty" проверяет существование переменных с названием "name" и "age" и, если они существуют и имеют значение отличное от нуля, то выполняется сценарий вывода текста "Получены новые вводные..." вместе со значением полученных переменных.

   Чтобы наочно увидеть получение веб-сервером переменных - вставьте этот кусок кода в Ваш любой *.php файл или создайте новый и обратитесь к нему в адресной строке браузера с запросом типа: http://myhost/my.php?name=myname&age=myage

   Как Вы уже догадались, глобальная переменная $_GET является массивом, в который записывается передаваемые значения, а имя переменной есть индексным номером (ключом). Таким образом, когда мы по ссылке передаем значение переменной "...index.php?name=Franki&...", то в скрипте "index.php" получаем значение переменной $_GET["name"] которое будет равняться "Franki". Что это нам дает? Если $_GET["name"]="Franki" запускаем первый сценарий, а если $_GET["name"]="Billi" - то другой сценарий.    Это и есть принцип работы динамичного сайта, страница формируется по-разному в зависимости от полученных значений переменных.

ПредупреждениеВсе операции будут работать, если на компьютере установлен и активирован web-сервер, а также установлен и настроен PHP.

   Давайте, посмотрим как отправляются данные с помощью метода POST. Для этого создадим файл "post.html" со следующим текстом:

<html>
<head>
<title>Пример передачи значений переменных методом Post</title>
</head>
<body>

<form method="post" action="index.php"> Заполняем поля для передачи информации:<br><br>
Укажите Ваше имя: <input name="user_name" type="text" maxlength="20" size="25" value="" />
<br><br> Укажите Ваш возраст: <input name="age" type="text" maxlength="2" size="3" value="" />
<br><br> <input type=submit value="Передать информацию"></form>
</body>
</html>

   Как видно на примере выше, мы создали файл "post.html" с формой. Метод Post используется только в форме.
   Параметр формы "method" определяет вид метода передачи данных и может принимать только 2 значения: "get" или "post". Если установлен "get", то все имена полей (название переменных) с их значениями передаются по ссылке. Если установлен "post", то все имена полей (название переменных) с их значениями передаются в виде запроса браузера к веб-серверу.
   Параметру формы "action" присваивается в виде значения путь и название скрипта которому вы передаете данные. Это может выглядеть также как и: action="http://my_site.com.ua/script.php". Если Вы не указываете значение параметру "action", то вся передаваемая информация передается запускному скрипту (индексной странице) Вашего сайта.

Чтобы получить передаваемую информацию в запросе, в скрипте, которому направлен запрос, создаем следующие записи:

<?php

if (!empty($_POST["user_name"])&&!empty($_POST["age"]))
{
echo "Получены новые вводные:<br>";
echo "имя - ";
echo $_POST["user_name"];
echo "<br>возраст - ";
echo $_POST["age"];
echo " лет";
}
else
{
echo "Переменные не дошли. Проверьте все еще раз.";
}

?>

   Как видите, ничего сложного нет, просто вытягиваете из зарезервированной предопределенной переменной массива $_POST переданную информацию. Для этого проверяем существование переданной переменной и, если она существует со значением отличным от нуля, получаем ее.
   Обращаемся к $_POST через атрибут name поля (<input />), например $_POST["user_name"] и получаем информацию, которую пользователь ввел в это поле.

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

1074
2.9 297
Рейтинг: +2.9 , голосов 297
Вы еще не голосовали!
Добавить комментарий (комментариев: 49)
Удалить ответ

Ваш почтовый ящик никогда не будет опубликован
Трудно разобрать цифры? Нажмите на рисунок, чтобы обновить.
#1 06/05/2014 22:15 Мурад
reply
Ещё подскажите: как из input значение присвоить обычной переменной $peremennaya. Очень надо
07/05/2014 09:11 Игорь
html код: ^input type="text"  name="peremennaya_input" value="значение_input"^
далее форма сабмитится ^form method="GET"^

в скрипте:
$peremennaya = $_GET['peremennaya_input'];

echo $peremennaya;
//выведет 'значение_input'
#2 06/05/2014 22:14 Мурад
reply
Подскажите пожалуйста: Как присвоить значение глобальной переменной GET к обычной перемнной например $peremennaya ???
07/05/2014 09:05 Игорь
да очень просто:
$peremennaya = $_GET;
#3 01/07/2013 12:14 cyber
reply
Спасибо огромное 2 дня мучился пока не прочел
#4 11/02/2013 15:15 Rey
reply
Спасибо за очень понятное для чайника изложение. Получилось не сразу только из-за того, что версии не совпали. То есть - если добавите такой кусок:
/*После введения массива $_REQUEST массивы $HTTP_POST_VARS и $HTTP_GET_VARS для однородности были переименованы в $_POST и $_GET соответственно, http://sredizeme.ru В отличие от своих предшественников, массивы $_POST и $_GET стали суперглобальными, т.е. доступными напрямую и внутри функций и методов то некоторым полегчает.... :-)
#5 19/10/2012 23:52 Имя
reply
Ребята спасиб за статью!! все очень доходчиво =)
#6 15/10/2012 16:34 Nikamka
reply
Здесь описан пример проверки переменной: [url=http://hashcode.ru/questions/153602/проверка-переменной-на-целое-число]Проверка переменной на целое число[/url]
#7 11/10/2012 13:43 Рабадан
reply
да раньше то не знал) про уникальности и все прочее)
copyscape.com - спасибо за сайт) буду знать)
#8 08/10/2012 20:55 Рабадан
reply
ыыы... реально) ??? а я то их покупал((епт... вот что значит начинать(((
09/10/2012 19:01 admin
а разве перед покупкой и даже после не надо проверять уникальность контента!?
статьи я смотрю даже не редактировались просто тупо содраны целиком, .copyscape.com их найдет без труда
кстате заявку я уже подал, пообещали понизить в поиске, хотя я смотрел анализ сайта, это просто смех, единственно 13 место по этой статье в Гугле, и все)))
#9 02/10/2012 01:34 http://kuba4idotmy1dotru/publ/peremennye_php_metod_get_i_post/1-1-0-30
reply
Не очень то уж и хорошо чужые статьи воровать) удаляй статью) илиhttp://www.copyrighter.ru/lite/index.html?apisp2.htm )))
06/10/2012 10:19 admin
)))) так ведь статью у меня украли, посмотри на дату я написал ее 11.08.2008, а укравший разместил ее в 2010, поисковые системы прекрасно разберутся где первоисточник, не переживай
я конечно могу подать в заявку в Google про защиту моего контента, но честно говоря некогда заниматся, хотя я попробую
06/10/2012 10:22 admin
спасибо за ссылку, я заметил на том сайте целая куча моих авторских статтей, а точнее даже копия моего сайта, придется принять меры
#10 10/03/2012 08:02 Олег
reply
Спасибо! Статья на 5+. Получил то, что искал, в лучшем виде.
#11 07/02/2012 17:17 Богдан
reply
Очень точно и доходчиво! Спасибо!!!
#12 05/02/2012 06:14 Макс
reply
Спасибо большое!))) Очень дохотчево!)))
#13 30/01/2012 16:41 Елена
reply
и правда хорошо написано!все понятно,спасибо!!!
#14 04/01/2012 17:37 Юрий
reply
Спасибо! очень доходчиво и понятно! Вот если бы еще кто то так же написал про классы и в общем про ООП в пхп...
#15 24/12/2011 21:22 Дмитрий
reply
Спасибо! Оооочень доступно написано!
#16 08/10/2011 17:29 ааа
reply
Немного понятно
#17 13/08/2011 00:06 Володя
reply
thx!
#18 19/06/2011 03:45 _Alex
reply

Спасибо за очень понятное для чайника изложение. Получилось не сразу только из-за того, что версии не совпали. То есть - если добавите такой кусок:
/*После введения массива $_REQUEST массивы $HTTP_POST_VARS и $HTTP_GET_VARS для однородности были переименованы в $_POST и $_GET соответственно, . В отличие от своих предшественников, массивы $_POST и $_GET стали суперглобальными, т.е. доступными напрямую и внутри функций и методов
то некоторым полегчает.... :-)
#19 19/04/2011 15:18 Дмитрий
reply
Очень доходчиво и понятно, спасибо большое!!!
#20 08/07/2010 16:46 Name
reply
Спасибо дружище-очень помого
#21 11/06/2010 01:15 Арсен
reply
Кое что для себя подчеркнул спасибо!!!)
#22 11/04/2010 16:45 Дмитрий
reply
Спасибо! urlencode это то что надо, все очень просто!
#23 09/04/2010 01:00 Дмитрий
reply
Здравствуйте! Я столкнулся с проблемой символа &. формирую ссылку с некоторыми перемененными и их значениями, но когда значение какой либо переменной(которое я заранее не знаю, но оно допускает символ &) содержит символ & то в ссылке образуется новая переменная после символа & и я уже не могу правильно обработать ссылку. Подскажите как моожно с этим баротся? Я подумываю о замене & на какой ни будь другой символ, а потом после приёма обратно, но только мне кажется существует более простой способ. Может вы знаете его? « Не хочется лишним гимароем заниматься» Очень надеюсь на ваш ответ. Спасибо!
09/04/2010 09:15 admin
все дело в том, что при запросах url ссылку данные нужно кодировать, в php это можно сделать функцией urlencode(). Каждый спецсимвол, чтобы он буквально воспринимался нужно закодировать, в том числе и символ &. Чтобы быстро получить значение воспользуйтесь гуглом (так вы его еще не использовали)))), зайдите на сайт гугла и напишите в строке поиска, например: ---&---, нажмите искать и посмотрим, что гугел написал в строке: ...q=---%26---..., значит наш код %26, а вообще пользутесь предвартельной обработкой данных функцией, что я сверху написал
#24 08/04/2010 08:13 Lepino
reply
Здравствуйте! Подскажите как мне в файле обработчике вывести каждую переменную отдельно?
08/04/2010 10:25 admin
не совсем понимаю вопрос "отдельно", Ваши переменные будут находиться в глобальных переменных $_POST, $_GET или $_REQUEST. Например,
$_REQUEST['variable_name'] = "variable_value";
Чтобы сразу вытянуть их глобальной переменной ввиде обычных переменных используеться функция extract(). Например,
extract($_REQUEST);
$variable_name = "variable_value";
#25 06/02/2010 04:48 Артемий
reply
Приветствую Вас. Я только вот так сказать первый раз сталкиваюсь с РНР (честно говоря очень интересно) и пытаюсь понять общую концепцию и принципы. Не могли бы Вы уточнить, если к примеру любой введённый в форму на страничке сайта запрос (регистрации, авторизации, оставить комент, поиска по сайту и т.д. и т.п.) проверять, перед его выполнением, по базе допутимых запросов. Которую на финальной стадии создать и подключить к Б.Д.. Для так сказать более усиленной безопасности. Что бы никакие другие, не предусмотренные мной на стадии проектирования, запросы не выполнялись. И тем самым повышали защищённость от злоумышленников. Не будет ли это через чур нагружать сервер (я просто не в курсе, а на хосте обычно "реагируют" на это по своему) и не будет ли подобный подход замедлять время выполнения запроса и тем самым замедлять время генерации страничек сайта по запросу. Если конечно всё о чём я написал возможно аелизовать. Просьба не судить строго я ведь только начинаю вникать. Заранее благодарю за ответ. И не могли бы Вы посоветовать литературу по РНР, что бы там толково и доходчиво обьяснялась и раскрывалась тема, как у Вас на сайте. Спасибо.
#26 05/02/2010 02:19 Allied
reply
Уважаемый админ, у меня два вопроса: 1. У меня в программе оператор при добавлении нового наименования товара вручную вводит количество которое он хочет добавить, чтобы появилось определённое количество форм где вписываются артикулы, названия и т п. Просто когда появляется например десять форм для ввода, то при отправке информации я не могу передать mysql данные о каждом внесённом новом наименовании товара, так как следующая форма уже не знает сколько пять или десять форм обработал пользователь. Извините может быть сложно выражаюсь ). У меня появилась идея что при вводе желаемого количества форм для ввода база данных может запомнить это количество и с третьей формы уже взять его из базы. Наверное, лучше спросить так - как передать значение из первой формы не только во вторую но и дальше? 2. Например оператор ввёл десять наименований и артикулов и нажал "Добавить", форма переносит нас на новую страницу, а информация о введённой информации теряется, так как база данных mysql не знает как зовутся переданные переменные со значениями. В общем постараюсь коротко и ясно: как правильно отдать значения сгенерированных имён переменных? В данном случае например имена переменных заканчиваются на порядковый номер. Например, prodart1 prodart2 prodart3 и так до количества обрабатываемых форм. Это происходит потому что количество форм предопределяется оператором в предыдущем окне. Замкнутый круг )) Поможите мы немесные, мы бе-еженцы )
#27 08/01/2010 19:25 Ната
reply
Здравствуйте! Мой вопрос может маленько не по теме. Можно ли в форме сделать более двух кнопок, чтобы при нажатии на кнопку1 переход на страницу1, при нажатии на кнопку2 переход на страницу2, при нажатии на кнопку3 переход на страницу3. Я знаю точно что две кнопки можно:при нажатию на первую кнопку переходим на стр1 ,которая указана в action="..", а вторую чтобы очистить форму. А мой случай каким-нибудь образом осуществляется???
10/01/2010 10:34 admin
Хм, динамически изменить атрибут action= можно только с помощью JavaScript. Например, тег form имеет атрибут onSubmit="myFunc();". Можно повесить события на кнопки и далее функцией myFunc генерировать нужный action.
Но можно обойтись и без JS, в форму можно поместить сколько угодно кнопок с типом "submit", а на сервере определять какая из них была нажата и выдавать соответствующий результат. Так как на сервер отправляется только значение нажатой кнопки submit, остальные кнопки этого типа не передаються.
#28 08/01/2010 11:05 Паша
reply
Здравствуйте. У меня такая проблема. Методом get пытаюся вывести переменную. Для этого в адресной строке ввожу: http://localhost/test.php?a=20 На странице должно появиться значение 20. А в результате пустая странице. Как добиться того, чтобы значение выдовалось. Кстати, такая же проблема с методом Post. Тоже не видит переменную. Подскажите пожалуйста.
10/01/2010 10:17 admin
в файле test.php напишите:
echo $_REQUEST['a'];
#29 21/12/2009 09:51 ch_p
reply
вот, черт, нашел ошибка в написании
#30 21/12/2009 09:44 ch_p
reply
а по какой причине может получаться, что из формы с явно указаным metod = "POST", данные передаются методом get?
#31 30/09/2009 13:18 Amilo
reply
Скажите, пожалуйста, как правильно передавать параметры имеющие свои значения в кирилице методом GET. Насколько я понимаю при передаче их нужно закодировать, а при приеме раскодировать? Заранее спасибо!
01/10/2009 20:28 admin
да, их нужно закодировать функцией urlencode, а раскодировать urldecode. Такие функции есть в php и js
#32 04/09/2009 14:22 Кирилл
reply
Здравствуйте. Мне нужно с одной РНР страницы передать на другую страницу, причём на другой странице есть форма, в поля формы должны вписаться значения пеерменных. Как мне это реализовать?
04/09/2009 14:36 admin
посмотрите на мой комментарий к этой статье от 16:04 31.05.09, тут похожее решение, только вместо test.php укажите свою страницу-получатель
#33 08/07/2009 13:43 Юра
reply
мне необходимо передать пост-переменную из одной пхп-страницы в другую. Это вожможно?
08/07/2009 16:38 admin
можете отослать Get или POST запрос из одного php файла другому. Почитайте, здесь http://info-pages.com.ua/e/108
#34 15/06/2009 13:26 Саня
reply
Мне нужно просто, можно с обновлением страницы дижбы они оставались!
Вы не могли бы написать как это делать?
#35 14/06/2009 14:22 Саня
reply
Вот как у вас сейчас здесь пишишь с сразу
наверх и оставалось!?
15/06/2009 11:37 admin
здесь, в комментариях, я использую Ajax. Передаю данные на сервер, обрабатываю, возращаю комментарий и с помощью javascript добавляю информацию. Ajax это асинхронная технология, а передача GET, POST синхронная - означает перезагрузку страницы. GET, POST это лишь методы передачи данных, а вся информация храниться в базах данных, откуда вытягиваеться при каждом запросе. Поэтому, чтобы отобразить данные на странице запрашивайте их из базы, а в базу делайте записи, когда получили данные GET или POST.
#36 14/06/2009 14:21 Саня
reply
Здравствуйте скажите пожалуйста, вот вы написали как передавать данные методом post
, я делаю как там написано они передаются,
а как мне сделать, чтобы они сохранялись на странице (чтобы люди оставляли комментарии)? подскажите пожалуйста!!!
#37 06/06/2009 21:41 Наталья
reply
А можно ли одновременно передать два значения одной переменной? Т.е., чтобы ссылка была вида ***.php?id=a И id=b (с оператором И, или ИЛИ, или еще каким-то образом)?
06/06/2009 23:14 admin
все можно, не знаю правда зачем это нужно, но можно взять два значения a и b, обьединить их в одно значение, с условным разделителем, например a_b (нижнее подчеркивание), в на сервере разделить
#38 06/06/2009 21:40 Наталья
reply
А можно ли одновременно передать два значения одной переменной? Т.е., чтобы ссылка была вида ***.php?id=a И id=b (с оператором И, или ИЛИ, или еще каким-то образом)?
#39 31/05/2009 00:57 Александр
reply
Добрый день. можно ли в одном *.php файле отправить и получить переменные из формы методом post

вот небольшие наброски но невыходит так как хочется (((

<form action="les.php" method="post" name"test" target="_self"> <input name="text1" type="text" size="15" value=""></p> <input name="submit" type="button" onclick="value='<?php $text1 = $_POST['text1']; echo "$text1";?>'" value=" вывести то что ввели" />

ps: поля "action" и "target" заполнены правильно?
31/05/2009 16:04 admin
можно, укажите в теге form method="post" action="*.php", пример:
<form action="test.php" method="post" name="test">
<input name="text1" type="text" size="15" value="">
<input type="submit" value="нажми сюда <?php echo !empty($_POST['text1'])?$_POST['text1']:'';?>">
</form>
#40 28/05/2009 22:10 Виталий
reply
Простите, ошибся. на имейл, а не на пароль высылается код )))
28/05/2009 22:24 admin
попробуйте сделать так: после того как пользователь укажит свои данные в первой форме -> сгенерируйте пароль; занесите данные в базу данных (например в таблицу неподтвержденными записями) и вышлите на ящик пользователя сгенерированый пароль и ссылку на вторую форму -> данные со второй формы обработайте найдите его запись в таблице с неподтвержденными записями и перенесите запись в общую таблицу записей пользователей.
можно также использовать и одну таблицу, тогда создайте в ней поле, где будет инфо про подтверждение пароля
#41 28/05/2009 22:06 Виталий
reply
У меня вот такой вопрос. Есть форма регистрации, при этом после того как пользователь вводит свои данные (имя, имейл, пароль), на указанный пароль высылается случайно сгенерированный набор символов для проверки. Также создаётся новая форма с полем, в которое пользователь должен ввести полученный по почте код и только после того, как код сравнен и признан правильным, данные должны заполняться в базу данных. Но тут передо мной стала проблема - данные, которые я получил (методом POST, если это важно) от первой формы после вызова второй, затираются и соответственно в базу я больше ничего забить не могу. Подскажите, пожалуйста, решение в данной ситуации.
#42 20/05/2009 19:58 Andrew
reply
Суперр. Я самоучка и учусь основываясь на готовых скриптах переделывая с учебниками для себя. Ту я нашел ответ, после долгих поисков и лазания по интернету на постоянно возникающую ошибку, при чем при локальной отладке ее и близко не была за счет, наверно, низкого уровня контроля ошибок. Суть в том что передавая переменные скрипту методом _get, я вообще не имел никакого понятия о нем, и просто на входе скрипта получал переменную в виде $Аля_Моя_Входящая_Переменная и спокойно ее обрабатывал. Все хорошо пока не выложил сайт на платный хостинг и он мне начал выдавать: Notice: Undefined variable: RegAll in Путь_КМоему_Сайту on line 51. Я всю ночьь рыл интернет и днем и только в этой статье я понял в чем суть вопроса! Плюс гдето нарыл функцию проверки типа переменной - gettype($Аля_Моя_Входящая_Переменная) которая мне сказала что нет такой Аля)). А из этой статьи я понял что такое Гет, что такое Пост. Спасибо Автору!)
#43 19/05/2009 13:38 Andrey
reply
Здравствуйте, подскажите как обработать такой GET.
?action=del_phone&smsid=14&phs_id%5B%5D=17&phs_id%5B%5D=22&phs_id%5B%5D=23&phs_id%5B%5D=24&phs_id%5B%5D=26

т.е. когда передается не переменная а массив phs_id
19/05/2009 17:38 admin
с помощью метода GET передать массив у Вас не получится, можно только передавать ?переменная=значение&переменная=значение, причем "phs_id[]" это некорректное название переменной пишите "phs_id_1,phs_id_2,phs_id_3...". А вообще, большинство передают массивы с помощью переменных сессии. Например:
session_start();
$_SESSION['phs_id'] = $phs_id;
потом везде обращаетесь к переменной $_SESSION['phs_id'], которая и будет Вашим массивом
19/05/2009 20:02 admin
вот здесь, в первом примере, показан вариант передачи массива в url и парсинг GET запроса:
http://ua2.php.net/manual/ru/function.parse-str.php
#44 02/04/2009 13:29 Руд
reply
Спасибо
#45 02/04/2009 12:14 Руд
reply
Спасибо. Задам вопрос подробнее. Имеется файл на ajax, который постоянно опрашивает файл php, который читает содержимое директории и выводит их в виде ссылок на файлы, затем при нажатии на ссылку читает содержимое файла и выводит в виде ссылок на разделы, при нажатии на раздел - выводит конкретный раздел. При этом ссылка должна запускать на исполнение файл ajax, а чтение должно происходить в опрашиваемом(чтоб не терять интерактивность) файле php. Но для этого в файл php нужно передать определенные параметры при нажатии на ссылку. Как сделать это в одной ссылке? Или вообще как? спасибо за понимание
02/04/2009 13:16 admin
1. при создании ссылки занесите в нее определенные данные
2. повесьте на ссылку событием onclick функцию, которая будет парсить ссылку и на сервер отсылать два запроса на файл ajax.php и текущий файл php
#46 02/04/2009 07:36 Руд
reply
Здравствуйте, а скажите пожалуйста, можно ли в ссылке передать данные одновременно в два файла, т.е. один файл запустить index.php?var1=1, но при этом отправить переменные в другой файл например в dada.php?
02/04/2009 09:30 admin
запрос на сервер идет один, поэтому в два файла одновременно нельзя отправить, но:
- можно настроить сервер/скрипт, чтобы он передавал полученные данные в другой файл;
- с помощью js отсылать два запроса.
#47 13/01/2009 15:54 Demon
reply
Спасибо! А переменные сессии из одного домена в другой передаваться могут или нет? Сможет ли злоумышленник подделать эту переменную?
28/01/2009 09:23 admin
При использовании сессий вся информация хранится не на стороне клиента, а на стороне сервера, и потому лучше защищена от манипуляций злоумышленников. Все данные автоматически проходят через алгоритмы криптографии модуля PHP. В броузере клиента, хранится уникальный идентификатор номера сессии, либо в форме cookie, либо в виде переменной в адресной строке броузера, какой из двух способов использовать для передачи идентификатора сессии между страницами интерпретатор PHP выбирает сам. Это на 100 безопасно, так как идентификатор сессии уникален и состоит из десятка и более символов и подделать его практически невозможно.
Вот здесь почитай: http://www.getinfo.ru/article250.html
#48 12/01/2009 21:13 Demon
reply
Скажите, пожалуйста, а можно ли передать переменные методом POST из одного домена в другой. Если да, то как от этого защититься (чтоб мой обработчик не принимал переменные из чужого скрипта)?
13/01/2009 09:53 admin
Можно передать, например, используя возможности сокетов. Вот, кстати пример №3, почитайте:
http://forum.vingrad.ru/articles/s/db3d51933e77c16490eec9dbefb90c8e/topic-103996/anchor-entry789720/0.html
Что касается защиты, необходимы средства итендификации запроса, чтобы определить ваш домен послал запрос или он вообще левый. Для этого можете использовать переменные сесии.

Дополнительно

» С чего начать сайт?

» Установка программ

» Пример создания сайта

» Хостинг и домен

» Оптимизация сайта

» Раскрутка сайта

» Заработок web-мастера

» Примеры PHP/Javascript

» Блог и мои записки

Последние новости

Статьи по рейтингу

» Особенности покупки контента 5.0 1
» Выбор хостинга 4.8 5
» Поисковые системы 4.7 9
» Курс молодого web-мастера 4.6 21
» Где взять бесплатные ссылки 4.5 11
» Что такое сниппеты 4.5 6
» Addstudio - SEO модуль 4.5 4
» Отладка js и CSS 4.4 14
» Стратегия дохода на Sape.ru 4.3 3
» Каталоги и биржи статей 4.3 4