PHP: Was bedeutet das @-Symbol vor Funktionsaufrufen?
Frage von Compi | 28.06.2012 um 18:54
In einigen PHP Skripten ist mir das @-Zeichen vor diversen Aufrufen von Funktionen aufgefallen. Also zum Beispiel so etwas wie:
@mysql_db_query($db, $query, $verb);
Ich kenne mysql_db_query normalerweise nur ohne das @ vor dem Aufruf und habe den Code mal mit und mal ohne @ ausgetestet. Offenbar hat sich aber nichts getan und der Code kommt jedes mal zum gleichen Ergebnis.
Was also ist das Geheimnis hinter dem mysteriösen @-Symbol?
Ähnliche Themen
Lazarus: Programm ohne GUI - Viele WSRegister Fehler
Frage | 2 Antworten
Smartphone: Liste der Statusleisten Symbole
Info | 4 Kommentare
HTML Formular: Weiterleitung abhängig von Radiobutton oder Checkbox
Tutorial | 0 Kommentare
PHP: Aktuelles Datum und Zeit ermitteln
Tutorial | 0 Kommentare
HTACCESS: URL vereinfachen
Tutorial | 0 Kommentare
jQuery: HTML5 Canvas mit Ajax an Server senden
Tutorial | 0 Kommentare
PHP: Formular-Eingaben als Array an PHP Skript schicken
Tipp | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Das @-Symbol in PHP dient der Fehlerkontrolle. Steht das @-Zeichen zum Beispiel vor Funktionsaufrufen, vor Variablen oder vor einem include, werden alle dadurch erzeugten Fehlermeldungen ignoriert.
In deinem Beispiel steht das @ vor dem Aufruf von mysql_db_query. Falls diese Funktion einen Fehler erzeugen würde, würde dieser nicht ausgegeben werden und bleibt im Browser unsichtbar.
Die Verwendung von @ hat den Vorteil, das diverse Informationen nicht im Browser angezeigt werden. Benutzt man zum Beispiel ein include einer Datei, die nicht existiert, würde ein typischer PHP Fehler den Pfad der nicht gefundenen Datei anzeigen. Den können unter Umständen Angreifer verwenden, um auf die Verzeichnisstruktur verborgener Dateien deiner Homepage schließen zu können.
Problematisch ist die Verwendung vom @-Operator vor allem in der Entwicklungsphase einer Website. Unter Umständen kann es zum Beispiel passieren, dass ein Skript an einer Fehlerstelle abgebrochen wird und man darüber keine Nachricht erhält, weil diese vom @ unterdrückt wurde. Dadurch kann es zur Entwicklungszeit schwierig werden, schnell Fehler zu finden, wenn man sofort das @ verwendet.
29.06.2012 um 12:39