Inhaltsverzeichnis
Fehlerbehandlung
Über die globale Variable $debug kann man Statusausgaben steuern:
$debug="test"; test(10); function test($value) { if ($GLOBALS["debug"]==__FUNCTION__) echo ">>".__LINE__.": value = ".$value; ... }
Daten von „Außen“ aus den globalen Variablen $_GET, $_POST, oder $_COOKIE auslesen. Fehlermeldungen mit dem Error Suppression Indicator (@) unterdrücken:
if(@$_REQUEST['id']!="") { ... }
Daten von „Außen“ immer maskieren bzw. abzusichern bevor sie per Query an MySQL übermittelt werden:
$id=mysql_real_escape_string($_REQUEST['id']);
MySQL Fehlermeldungen abfangen und ausgeben. Die Funktion die() kann auch ohne Parameter genutzt werden. Im folgenden Beispiel ist ein Tippfehler (naame anstatt name) enthalten:
$result = mysql_query("SELECT id,name FROM tabelle ORDER BY name;") _ or die("Error: ".mysql_error());
Zählen
function count() { $qry = "SELECT COUNT(*) FROM ... WHERE ..."; $ary = mysql_fetch_row(mysql_query($qry)); return $ary[0]; }
Select mit Prüfung
$qry = "SELECT ..."; $res = mysql_query($qry); ($res === FALSE) ? $cnt = 0 : $cnt = mysql_num_rows($res); if ($cnt) { echo "$ary['id']"; }
Select mit Schleife
$qry = "SELECT ..."; $res = mysql_query($qry); while ($ary = mysql_fetch_assoc($res)) { echo "$ary['id']"; }
Ausgabe
Bei doppelten Anführungszeichen („) wird die Variable interpretiert, bei einfachen (‚) wird alles als Text interpretiert:
$id = 10; print 'id = $id'; // id = $id print "id = $id"; // id = 10
Ist im Gegensatz zu echo ist print() eine Funktion mit Rückgabe und kann bei Entscheidungsoperatoren genutzt werden:
// Erzeugt eine Fehlermeldung: $id == 0 ? echo "id ist 0" : echo "id ist nicht 0"; // OK: $id == 0 ? print "id ist 0" : print "id ist nicht 0";
Skript erneut aufrufen und Zeile aus Tabelle löschen. Einfache Methode um kleine Änderungen auszuführen. Bitte vorher den Benutzer authentisieren, ansonsten kann jeder die Tabelle löschen!
if(@$_REQUEST['action']=="del") { mysql_query("DELETE FROM <table> WHERE id=".round($_REQUEST['id'])); } echo "<a onclick="return confirm('Are your sure?');" _ href=".$_SERVER['PHP_SELF']."?action=del&id=".$row['id'].">Delete</a>
Schreibe einen Kommentar