33 Stimmen

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?

AntwortenPositivNegativ
3Beste Antwort3 Stimmen

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

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

HTACCESS: URL vereinfachen

Tutorial | 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.