За последние 24 часа нас посетили 106082 программиста и 3019 роботов. Сейчас ищут 1340 программистов ...

надоели нотисы

Тема в разделе "PHP для новичков", создана пользователем bFree, 15 дек 2008.

  1. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    Когда пишу любой скрипт и хочу, например, сибмитить данные из формы, то бесят нотисы.
    Конкретнее: в форме есть hidden-поле. если в $_POST['hidden_name'] есть значение, то я выполняю обработку формы, НО при проверке
    Код (Text):
    1. if($_POST['hidden_name'] == "go") {
    2. ...
    3. }
    вылазит нотис, что индекс не определен (в случае, когда мы просто открываем страницу с формой). Мб я что-то не то правильно делаю?
    Объясните пожалуйста, что надо делать с гадкими переменными, чтобы не получать нотисы без конца и края))

    ЗЫ и является ли выходом
    Error_Reporting(E_ALL & ~E_NOTICE);
     
  2. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Объявлять заранее переменные.
    Или выставить error_reporting..

    http://php.ru/manual/function.error-reporting.html
     
  3. является костылем.

    $hidden = isset($_POST['hidden_name'])?$_POST['hidden_name']:'';

    if () .....
     
  4. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    флоппик
    т.е такой геморой со всеми переменными?
     
  5. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    admyx
    я писал про репортинг \=
     
  6. Ты можешь функцию написать несложную для этого действа.
     
  7. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Все уже давно свои функции написали, чтобы пост и гет переменные ловить.
     
  8. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Hight
    неть, не все :):):) поделитесь
     
  9. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    можно ещё в очивидных местах собаками давить ... (на провах быдлокодерства)
     
  10. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    Чесно говря вообще не понял, что должна быть за функция...
    просто пройтись по массиву $_POST/GET foreach? и так в начале каждого скрипта?
     
  11. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    PHP:
    1.  
    2. <?php
    3. function if_isset($array, $key, $value)
    4. {
    5.     if(isset($array[$key]))
    6.     {
    7.         if ($array[$key]==$value)
    8.             return true;
    9.         else
    10.             return false;
    11.     } else return 0;
    12. }
    13.  
    Думаю что-то типа того :)
     
  12. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    Написал такую функцию для парсинга массивов. То ли я дурак, то ли глюк какойто, но не работает. есть $_POST['name']. но после обработки, переменной $name нету \=
    PHP:
    1.  
    2. <?php
    3. function no_notice($arr) {
    4.     if(isset($arr)) {
    5.         foreach($arr as $key => $value) {
    6.             $$key = $value;
    7.             global $$key;
    8.         }
    9.         return true;
    10.     } else {
    11.         return false;
    12.     }
    13. }
    14. ?>
    15.  
     
  13. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    bFree, омг... а что она должна была делать??? просто побудь немного этой функцией и поанализируй...
     
  14. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    должна была переводить все $_POST['name'] в $name, эмулируя register_globals 1.
    Мне разве не это нужно?
    если запускать foreach без функции, то все работает...
    объясните дураку :)
     
  15. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    а чем isset не подходит? :)
     
  16. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    для каждой переменной из $_POST/GET надо isset писать?
    я думал так проще будет ) мб я не догоняю до чего-то?
     
  17. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Модифицированный вариант :)
    PHP:
    1.  
    2. <?php
    3. //Должна быть очень полезная функция :)
    4. //если в массиве нет ключа - возвращает ложь, если ключ есть, то если значение совпадает с $value, возвращаем Истину, в противном случае, значение этого элемента
    5. function if_isset($array, $key, $value=false) {
    6.     if(isset($array[$key])) {
    7.         if ($array[$key]==$value)
    8.             return true;
    9.         else
    10.             return $value;
    11.     } else return false;
    12. }
    13.  
     
  18. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    ShamahN
    PHP:
    1. <?php
    2. // $_POST
    3. function post($name = NULL)
    4. {
    5.     if($name == NULL) trigger_error('Error. Function: post(). Undefined argument "name".', E_USER_ERROR);
    6.  
    7.     if(isset($_POST[$name]))
    8.     {
    9.         if(strlen($_POST[$name]) == 0) return NULL;
    10.  
    11.         if(get_magic_quotes_gpc())
    12.         {
    13.             $post = stripslashes($_POST[$name]);
    14.         }
    15.         else
    16.         {
    17.             $post = $_POST[$name];
    18.         }
    19.     }
    20.     else
    21.     {
    22.         $post = false;
    23.     }
    24.  
    25.     return $post;
    26. }
    27.  
    28.  
    29. // $_GET
    30. function get($name = NULL)
    31. {
    32.     if($name == NULL) trigger_error('Error. Function: get(). Undefined argument "name".', E_USER_ERROR);
    33.  
    34.     if(isset($_GET[$name]))
    35.     {
    36.         if(strlen($_GET[$name]) == 0) return NULL;
    37.  
    38.         if(get_magic_quotes_gpc())
    39.         {
    40.             $get = stripslashes($_GET[$name]);
    41.         }
    42.         else
    43.         {
    44.             $get = $_GET[$name];
    45.         }
    46.     }
    47.     else
    48.     {
    49.         $get = false;
    50.     }
    51.  
    52.     return $get;
    53. }
    54.  
     
  19. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Hight
    кайф. а что бы не $_REQUEST просто? :)
     
  20. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Дело вкуса, мне вот нравится когда всё чётко ;)
     
  21. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    нафик такое? А не работает, потому что надо $GLOBALS[$key] = $value;
     
  22. free-bits

    free-bits Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    PHP:
    1.  
    2. <?
    3. function get_val($arr, $key, $default = 0) {
    4.     return (isset($arr[$key])) ?  $arr[$key] : $default;
    5. }
    6. $login = get_val($_COOKIE, 'login', 'user');
    7.  
     
  23. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    ini_set('display_errors',0);

    и в путь
     
  24. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. <?php
    2. $login = $request->getGet('login');
     
  25. Мда. Сереге +5, остальным двойки.