Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с отправкой данных через $_GET

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Coder1994
Отправлено: 15 Июня, 2011 - 18:06:46
Post Id


Частый гость


Покинул форум
Сообщений всего: 213
Дата рег-ции: Май 2010  
Откуда: Россия, Ростов-на-Дону


Помог: 3 раз(а)




Я хочу реализовать поиск пользователей по сайту.
Вот пример формы:
PHP:
скопировать код в буфер обмена
  1. case 'search':
  2. if (count($_GET) == 1)
  3.                 {
  4.                 echo "<form action=\"/users.php?act=search\" method=\"get\">\n";
  5.                 echo "Страна (max. 24):<br />\n<input type=\"text\" name=\"country\" value=\"\" /><br />\n";
  6.                 echo "Регион (область) (max. 24):<br />\n<input type=\"text\" name=\"region\" value=\"\" /><br />\n";
  7.                 echo "Город (max. 24):<br />\n<input type=\"text\" name=\"city\" value=\"\" /><br />\n";
  8.                 echo "Имя:<br />\n<input type=\"text\" name=\"first_name\" value=\"\" /><br />\n";
  9.                 echo "Фамилия:<br />\n<input type=\"text\" name=\"primary_name\" value=\"\" /><br />\n";
  10.                 echo "<input type=\"submit\" value=\"Искать\" /><br />\n";
  11.                 echo "</form>\n";
  12.                 echo "&raquo; <a href=\"/users.php\">Пользователи</a><br />\n";
  13.                 }
  14. else
  15.                 {
  16.                 if ($_GET['country'])
  17.                         {
  18.                         $country = htmlspecialchars($db->safesql($_GET['country']));
  19.                         if (mb_strlen($country) < 4) $error.= 'Слишком маленькая длина страны.<br />';
  20.                         if (mb_strlen($country) > 24) $error.= 'Слишком большая длина страны.<br />';
  21.                         }
  22.  
  23.                 if ($_GET['region'])
  24.                         {
  25.                         $region = htmlspecialchars($db->safesql($_GET['region']));
  26.                         if (mb_strlen($region) < 4) $error.= 'Слишком маленькая длина региона (области).<br />';
  27.                         if (mb_strlen($region) > 24) $error.= 'Слишком большая длина региона (области).<br />';
  28.                         }
  29.  
  30.                 if ($_GET['city'])
  31.                         {
  32.                         $city = htmlspecialchars($db->safesql($_GET['city']));
  33.                         if (mb_strlen($city) < 3) $error.= 'Слишком маленькая длина города.<br />';
  34.                         if (mb_strlen($city) > 24) $error.= 'Слишком большая длина города.<br />';
  35.                         }

и так далее... т.е.нужно чтобы строка адреса выглядела так - ?act=search&amp;country=Россия , и т.д., а выходит ?country=Россия, как можно исправить?
 
 Top
Slavenin
Отправлено: 15 Июня, 2011 - 18:23:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




необходима строка, где формируется сам адрес, но первая ошибка уже есть:
откуда в адресной строке берется символ ";" ? о_О переменные должны разделяться символом "&" никаких точек с запятой там быть не может. если необходимо использовать спецсимволы их нужно заменить на их коды. браузер когда выводит код на страницу символы эскейп-последовательностей игнорирует. они имеют значение только при просмотре исходного кода страницы.

да и возможно так будет лучше?
PHP:
скопировать код в буфер обмена
  1. <?PHP if (count($_GET) == 1)
  2. {
  3. ?>
  4.  
    CODE (html):
    скопировать код в буфер обмена
    1.  <form action="/users.php?act=search" method="get"><br/>
    2.         Страна (max. 24):<br /><input type="text" name="country" value=""/>     Регион (область) (max. 24):<br /><input type="text" name="region" value="" />   Город (max. 24):<br /><input type="text" name="city" value="" />        Имя:<br /><input type="text" name="first_name" value="" />      Фамилия:<br /><input type="text" name="primary_name" value="" />        <input type="submit" value="Искать" />  </form>
  •  <?
  •  
  • echo "&raquo; <a href=\"/users.php\">Пользователи</a><br />\n";
  • }
  • ?>
  • (Отредактировано автором: 15 Июня, 2011 - 18:39:37)

     
     Top
    Coder1994
    Отправлено: 15 Июня, 2011 - 19:03:48
    Post Id


    Частый гость


    Покинул форум
    Сообщений всего: 213
    Дата рег-ции: Май 2010  
    Откуда: Россия, Ростов-на-Дону


    Помог: 3 раз(а)




    Slavenin пишет:
    необходима строка, где формируется сам адрес, но первая ошибка уже есть:
    откуда в адресной строке берется символ ";" ? о_О переменные должны разделяться символом "&" никаких точек с запятой там быть не может. если необходимо использовать спецсимволы их нужно заменить на их коды. браузер когда выводит код на страницу символы эскейп-последовательностей игнорирует. они имеют значение только при просмотре исходного кода страницы.

    да и возможно так будет лучше?
    PHP:
    скопировать код в буфер обмена
    1. <?PHP if (count($_GET) == 1)
    2. {
    3. ?>
    4.  
      CODE (html):
      скопировать код в буфер обмена
      1.  <form action="/users.php?act=search" method="get"><br/>
      2.         Страна (max. 24):<br /><input type="text" name="country" value=""/>     Регион (область) (max. 24):<br /><input type="text" name="region" value="" />   Город (max. 24):<br /><input type="text" name="city" value="" />        Имя:<br /><input type="text" name="first_name" value="" />      Фамилия:<br /><input type="text" name="primary_name" value="" />        <input type="submit" value="Искать" />  </form>
  •  <?
  •  
  • echo "&raquo; <a href=\"/users.php\">Пользователи</a><br />\n";
  • }
  • ?>

  • Лучше,а не могли бы вы написать строку для формирования адреса, ибо с GET-ом я не работал.
     
     Top
    Slavenin
    Отправлено: 15 Июня, 2011 - 19:25:31
    Post Id



    Посетитель


    Покинул форум
    Сообщений всего: 285
    Дата рег-ции: Май 2010  
    Откуда: Тверь


    Помог: 4 раз(а)




    про строку с адресом это я чего-то погорячился Закатив глазки гет запрос и так предает все поля формы в адресной строке. несколько не ясен смысл (count($_GET) == 1) , что именно проверяется в этом условии, количество значений в массиве гет?

    наверно лучше будет так:

    и почему бы не слать значения методом пост?
     
     Top
    maragon
    Отправлено: 15 Июня, 2011 - 19:33:09
    Post Id



    Посетитель


    Покинул форум
    Сообщений всего: 340
    Дата рег-ции: Февр. 2011  


    Помог: 2 раз(а)




    Регион (область) (max. 24): ? задайте максимум в форме input.
    [quote=Slavenin][/quote]
    А зачем пост форма при поиске? ИМХО, get rullez Радость


    -----
    https://vk[dot]com/tvoycase_ru - Твой чехол со своим дизайном
     
     Top
    Slavenin
    Отправлено: 15 Июня, 2011 - 19:40:14
    Post Id



    Посетитель


    Покинул форум
    Сообщений всего: 285
    Дата рег-ции: Май 2010  
    Откуда: Тверь


    Помог: 4 раз(а)




    maragon пишет:
    А зачем пост форма при поиске? ИМХО, get rullez

    ага, особенно при использовании стопятисот значений для поиска
     
     Top
    Coder1994
    Отправлено: 16 Июня, 2011 - 16:22:21
    Post Id


    Частый гость


    Покинул форум
    Сообщений всего: 213
    Дата рег-ции: Май 2010  
    Откуда: Россия, Ростов-на-Дону


    Помог: 3 раз(а)




    Slavenin пишет:
    maragon пишет:
    А зачем пост форма при поиске? ИМХО, get rullez

    ага, особенно при использовании стопятисот значений для поиска

    У меня постр. навигация, а пост постоянно отсылать это бред, мне нужен гет.
    Да, я проверяю кол-во запросов гет.
     
     Top
    Slavenin
    Отправлено: 16 Июня, 2011 - 16:35:10
    Post Id



    Посетитель


    Покинул форум
    Сообщений всего: 285
    Дата рег-ции: Май 2010  
    Откуда: Тверь


    Помог: 4 раз(а)




    Coder1994 пишет:
    У меня постр. навигация, а пост постоянно отсылать это бред, мне нужен гет.

    не вижу связи...

    сделай в скрипте
    и посмотри что он у тебя выведет
     
     Top
    Coder1994
    Отправлено: 16 Июня, 2011 - 17:13:56
    Post Id


    Частый гость


    Покинул форум
    Сообщений всего: 213
    Дата рег-ции: Май 2010  
    Откуда: Россия, Ростов-на-Дону


    Помог: 3 раз(а)




    Slavenin пишет:
    Coder1994 пишет:
    У меня постр. навигация, а пост постоянно отсылать это бред, мне нужен гет.

    не вижу связи...

    сделай в скрипте
    и посмотри что он у тебя выведет

    Ничего не вывело
     
     Top
    Страниц (1): [1]
    Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
    « HTTP и PHP »


    Все гости форума могут просматривать этот раздел.
    Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
    Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
     



    Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

     
    Powered by ExBB FM 1.0 RC1. InvisionExBB