За последние 24 часа нас посетили 222564 программиста и 2183 робота. Сейчас ищет 1681 программист ...

Что означает @ в @$_POST['email']?

Тема в разделе "PHP для новичков", создана пользователем vovan1409, 14 мар 2012.

  1. vovan1409

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

    С нами с:
    14 мар 2012
    Сообщения:
    33
    Симпатии:
    0
    Столкнулся с проблемой, никак не могу найти, что значит символ @ например в выражении
    Код (Text):
    1. $email = @$_POST['email'];
     
  2. Willer

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

    С нами с:
    14 мар 2012
    Сообщения:
    4
    Симпатии:
    0
    Возможно я ошибаюсь, но вроде это ссылка на адресс переменной в памяти, а не сама переменная.
     
  3. iStory

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

    С нами с:
    11 мар 2012
    Сообщения:
    4
    Симпатии:
    0
    Иногда бывает желательно игнорировать фатальные ошибки, о которых могут сообщать специфические функции PHP. Например, Вы хотите игнорировать ошибку вызова mail() и при этом проверить возвращаемое значение. Причем, так, чтобы сообщение об ошибке появилось в браузере.

    Например,
    Код (PHP):
    1. $err_code = @mail(); 
    Операция подавления ошибки(сообщений) @ может использоваться перед любым выражением, любой записью, которая генерирует значение, возвращает значение или имеет значение.
    Например,
    Код (PHP):
    1. $а = @(4999/0); 
    Без символа операции @ эта строка вызовет предупреждение о делении на нуль. Если же использовать операцию @, то вывод сообщения об ошибке подавляется.

    При таком подавлении сообщений об ошибках необходимо иметь ввиду, что при отладке это может создать некоторые проблемы.. и нужно создать код, где будет происходить обработка ошибок, чтобы можно было их проверить.
    Если РНР установлен с активизированной функцией track_errors, сообщение об ошибке будет сохраняться в глобальной переменой
    Код (PHP):
    1. $php_errormsg ($phperrmsg). 
    Порой более правильно все-таки непосредственно проверять значения.
    Например,
    Код (PHP):
    1. if ( isset($_GET['q']) ) {
    2. $searchKeywords = $_GET['q'] ;
    3. } 
    P.S 21 век на дворе а Google пользоваться не умеете, но уже полезли в php.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вот ты ворчун
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    "Фатальные" игнорировать нежелательно :) И проигнорировать их невозможно, работа скрипта всё равно будет "аварийно остановлена" :) Подавление ошибок - это, скорее, для нотисов, варнингов всяких.

    И да, подавление ошибок - это плохо :) Последнее - ИМХО.
     
  6. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    sobachnik
    Например, скрипт возвращает xml по ajax запросу. Нужно, чтобы он выдал не html с описанием ошибок и предупреждений, а тот же xml, нужный для JavaScript-а.
    Код (PHP):
    1. @$result=$mysqli->query("SELECT users.id, users.login, users.color FROM users, online WHERE users.id=online.user");
    2. if($mysqli->errno){
    3.   $errMsg[]=$mysqli->error;
    4.   $status=3;//ошибка в скрипте
    5. }  
     
  7. artem-Kuzmin

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

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    А смысл @$result..
    Ошибки и так не выводит разве, чтобы не создан объект $mysqli
    Но опять таки mysqli_connect_errno и не нужны @
     
  8. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Ошибки всякие бывают и запросы тоже.
     
  9. artem-Kuzmin

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

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Это понятно но от какого рода ошибок @$result= именно в этой строке
     
  10. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Я сейчас не помню, но были ошибки. Просто автоматом ставлю проверку после каждого запроса, т.к. мне ни в коем случае не хочется аварийно прерывать работу скрипта или нарушать связь php-xml-js.
     
  11. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    например: PHP Warning: mysql_query(): Access denied for user 'user'@'localhost' (using password: NO)
     
  12. artem-Kuzmin

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

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    Так я выше написал
    А смысл @$result..
    Ошибки и так не выводит разве, чтобы не создан объект $mysqli
    Но опять таки mysqli_connect_errno и не нужны @
    Это от этого сспасает