Авторизируйтесь,
чтобы продолжить
Некоторые функции доступны только зарегистрированным пользователям
Неправильный логин или пароль

Внимание! Теперь для входа на форум необходимо вводить единый пароль регистрации сервисов sibnet.ru!

Здравствуйте, гость ( Вход | Регистрация )



 
Ответить в эту темуОткрыть новую тему
> Php, запись в перемнную парамеров адресной строки
77z
сообщение 12.5.2016, 20:01
Сообщение #1


Молчун
Group Icon


Группа: Пользователи
Сообщений: 88
Регистрация: 16.11.2012
Пользователь №: 462 845



Репутация:   7  


Здравствуйте, гуру PHP! Помогите, если не трудно. Скажите, пожалуйста, каким образом можно получить текущее значение start из адресной строки. Почему-то оно всегда равно NULL.
Код
  if ($count > $start + 10) $count = $start + 10;
  if ($start != 0)
  {
    print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
  }

И какой запрос при этом лучше использовать, POST или GET? Спасибо.
Так,
Код
$x = $POST[start];
почему-то ничего не получается.
Слава Богу, разобрался. Параметры адресной строки почему-то передаются только GET запросом.
Код
$x = $_GET[start];
присваивает переменной $x адекватное значение.

Сообщение отредактировал 77z - 12.5.2016, 20:14
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
77z
сообщение 13.5.2016, 16:57
Сообщение #2


Молчун
Group Icon


Группа: Пользователи
Сообщений: 88
Регистрация: 16.11.2012
Пользователь №: 462 845



Репутация:   7  


Всё таки без гуру PHP, думаю мне не разобраться. Изменил глобальную переменную $_POST на $HTTP_POST_VARS. Теперь скрипты вообще не работают. С чем сие связано? И есть ли смысл менять обратно или же каким-то образом можно сбросить настройки PHP машины сервера. Если можно, подскажите, пожалуйста, каким образом? Спасибо.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jek
сообщение 13.5.2016, 18:03
Сообщение #3


     
Group Icon


Группа: Супермодераторы
Сообщений: 14 664
Регистрация: 27.9.2007
Из: Кемерово >>> Южный WEB: http://irc.k-42.ru IRC: irc.sibnet.ru #iclub
Пользователь №: 6 588



Репутация:   1746  


Цитата(77z @ 13.5.2016, 16:57) *
Изменил глобальную переменную $_POST на $HTTP_POST_VARS.

По какой причине?

Цитата(77z @ 13.5.2016, 16:57) *
Теперь скрипты вообще не работают.

Вообще - это как? smile.gif

Цитата(77z @ 13.5.2016, 16:57) *
С чем сие связано?

Надо полагать, что с версией PHP. $HTTP_POST_VARS ещё в четвертом PHP устаревшим объявили. Ну а так для полноты картины можно посмотреть логи PHP или хотя бы сделать var_dump($HTTP_POST_VARS).
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
77z
сообщение 13.5.2016, 18:24
Сообщение #4


Молчун
Group Icon


Группа: Пользователи
Сообщений: 88
Регистрация: 16.11.2012
Пользователь №: 462 845



Репутация:   7  


Цитата(Jek @ 13.5.2016, 17:03) *

Вообще - это как? smile.gif

Например, строка
Код
      if (($_POST['fio']==" ") | ($_POST['mess']==" "))
      {
       echo "<center><font color=red size=5>Ошибка! Необходимо ввести Ф.И.О. и сообщение!</font></center>";
      }

Раньше обрабатывалась адекватно, теперь сообщение об ошибке при пустых полях не выводится и происходит пере направление на страницу с сообщениями.

Цитата(Jek @ 13.5.2016, 17:03) *

Ну а так для полноты картины можно посмотреть логи PHP или хотя бы сделать var_dump($HTTP_POST_VARS).

Коим образом, если не секрет?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jek
сообщение 13.5.2016, 18:29
Сообщение #5


     
Group Icon


Группа: Супермодераторы
Сообщений: 14 664
Регистрация: 27.9.2007
Из: Кемерово >>> Южный WEB: http://irc.k-42.ru IRC: irc.sibnet.ru #iclub
Пользователь №: 6 588



Репутация:   1746  


Цитата(77z @ 13.5.2016, 18:18) *
Код
      if (($_POST['fio']==" ") | ($_POST['mess']==" "))

У тебя тут явно ошибка, как минимум одна. Если ты хочешь логическое ИЛИ - то трубопровода должно быть два, т.е. ||. И почему сравнивается с пробелом? Ты в поля ввода сам пробелы добавляешь? Или они всё-таки пустые?

Цитата(77z @ 13.5.2016, 18:24) *
Коим образом, если не секрет?

Логи-то? Зависит от того, как настроен PHP (в частности параметры конфигурации display_errors, log_errors). Если сделать display_errors = On - ошибки будут вылетать прямо в окно браузера. Можно прописать в php.conf вот такое:

display_errors = Off
log_errors = On
error_log = /var/log/php.log

Тогда можно все ошибки, предупреждения и пр. увидеть в указанном файле.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
77z
сообщение 13.5.2016, 18:37
Сообщение #6


Молчун
Group Icon


Группа: Пользователи
Сообщений: 88
Регистрация: 16.11.2012
Пользователь №: 462 845



Репутация:   7  


Поменял обратно на $_POST - ничего не изменилось.


С двойным символом или, вообще не работает! biggrin.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
77z
сообщение 13.5.2016, 18:58
Сообщение #7


Молчун
Group Icon


Группа: Пользователи
Сообщений: 88
Регистрация: 16.11.2012
Пользователь №: 462 845



Репутация:   7  


Код
      if (($_POST['fio']=="")||($_POST['mess']==""))
           {
             echo "<center><font color=red size=5>Ошибка! Необходимо ввести Ф.И.О. и сообщение!</font></center>";
           }
Работает, однако второе условие,
Код
($_POST['mess']=="")
почему-то не выполняется?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jek
сообщение 13.5.2016, 19:27
Сообщение #8


     
Group Icon


Группа: Супермодераторы
Сообщений: 14 664
Регистрация: 27.9.2007
Из: Кемерово >>> Южный WEB: http://irc.k-42.ru IRC: irc.sibnet.ru #iclub
Пользователь №: 6 588



Репутация:   1746  


Посмотри вывод var_dump($_POST). Может, там не то, что ты ожидаешь увидеть smile.gif.


» Спасибо сказали: «
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
77z
сообщение 13.5.2016, 22:11
Сообщение #9


Молчун
Group Icon


Группа: Пользователи
Сообщений: 88
Регистрация: 16.11.2012
Пользователь №: 462 845



Репутация:   7  


Оказывается, нужно было всего лишь записать элементы массива каждый в отдельную переменную с удалением пробелов и оператором условия IF, работать с этими переменными. Спасибо всем, кто пытался помочь! super.gif
Код
    $id = "";
     $m = "";
     $id =  trim($_POST['fio']);
     $m = trim($_POST['mess']);
      if (($id == "") | ($m == ""))
      {
        print "<center><font color=red size=5>Ошибка! Необходимо ввести Ф.И.О. и сообщение!</font></center>";
      }


Даже с одиночным оператором работает и с двойным тоже, однако в последнем случае, меньше нагружет процессор, хотя совсем он этой нагрузки не чувствует! biggrin.gif biggrin.gif biggrin.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. просматривают этот форум (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 17.7.2019, 3:44
Редакция: (383) 347-86-84

Техподдержка: (383) 347-22-44
help.sibnet.ru
Размещение рекламы:
тел: (383) 347-06-78, 347-10-50

Правила использования материалов