PHP Problem mit GET
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bestimmt funktioniert code
code
dank
datum
devise
eingabe
folgender fehler
funktionieren
glauben
punkt
setzen
simples problem
string
syntax
trust
variante nutzen
zahl
zahlenwert
zeichen
zeile
-
Hallo !
Ich habe mir hier folgendes Script gebastelt:
<?php include("sql.php"); if($_GET["loeschenid"]){ $sql = 'DELETE FROM emails WHERE id = '$_GET["loeschenid"]'; }
Damit soll ein Datenbankeintrag gelöscht werden. Aufgerufen wird z.B. mailer.php?loeschenid=1
Es kommt folgender Fehler:
Parse error: syntax error, unexpected T_VARIABLE in /home/www/web48/html/Mailer/index.php on line 72
Das ist die Zeile:
$sql = 'DELETE FROM emails WHERE id = '$_GET["loeschenid"]';
Gruß -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Na, auf alle Fälle fehlt da ein ' - Zeichen, und ich dachte auch wenn man Variablen einfügt müßte man Punkte (.) setzen ...
Genau weiß ich's aber nicht,
Aber ich glaub an sich ist das ein so simples Problem, welches Du über Schattenbaum klären könntest ... -
Ja, müsste glaube ich so sein:
$sql = 'DELETE FROM emails WHERE id = "'.$_GET["loeschenid"].'" ';
vlt gehts auch so:
$sql = 'DELETE FROM emails WHERE id = '.$_GET["loeschenid"].' ';
und eine Variante die bestimmt funktioniert:
$sql = "DELETE FROM emails WHERE id = '".$_GET["loeschenid"]."' ";
Beitrag zuletzt geändert: 24.7.2010 13:51:44 von alfr3d -
alfr3d schrieb:
Ja, müsste glaube ich so sein:
$sql = 'DELETE FROM emails WHERE id = "'.$_GET["loeschenid"].'" ';
vlt gehts auch so:
$sql = 'DELETE FROM emails WHERE id = '.$_GET["loeschenid"].' ';
und eine Variante die bestimmt funktioniert:
$sql = "DELETE FROM emails WHERE id = '".$_GET["loeschenid"]."' ";
Danke ! Das hat geklappt -
davy schrieb:
alfr3d schrieb:
Ja, müsste glaube ich so sein:
$sql = 'DELETE FROM emails WHERE id = "'.$_GET["loeschenid"].'" ';
vlt gehts auch so:
$sql = 'DELETE FROM emails WHERE id = '.$_GET["loeschenid"].' ';
und eine Variante die bestimmt funktioniert:
$sql = "DELETE FROM emails WHERE id = '".$_GET["loeschenid"]."' ";
Danke ! Das hat geklappt
Kein Problem, welche von den Varianten hast du genommen? -
Eigentlich sollten alle 3 funktionieren. Ich benutze vorzugsweise immer die 2. Liegt aber auch daran, dass ich Variablen sowieso meistens mit . anhänge, und nicht in die " setze.
-
robbmaster schrieb:
Eigentlich sollten alle 3 funktionieren.
Sollte eigentlich nicht nur die 2. funktionieren, oder sieht das MySQL? nicht so streng? Weil "id" ist ja normalerweise ein Zahlenwert und sollte daher nicht mit " umklammert werden. -
Der Perfomance halber solltest du die 3. Variante nutzen.
-
fabo schrieb:
Der Perfomance halber solltest du die 3. Variante nutzen.
Inwiefern ist die Perfomance denn besser? -
Hallo,
ähm, schonmal von SQL-Injection gehört? Never trust incomming datas heisst die Devise. Deshalb immer mit get_magic_quotes_gpc prüfen, ob die Daten maskiert reinkommen und entsprechend mit stripslashes und mysql_real_escape_string für String arbeiten; für Zahlen bitte auch rictig prüfen, z.B. für Integer $myInput = IntVal($_GET['eingabe']. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage