kostenloser Webspace werbefrei: lima-city


PHP Problem mit GET

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    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ß
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    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, :smokin:
    Aber ich glaub an sich ist das ein so simples Problem, welches Du über Schattenbaum klären könntest ...
  4. 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
  5. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    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
  6. 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?
  7. 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.
  8. 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.
  9. Der Perfomance halber solltest du die 3. Variante nutzen.
  10. fabo schrieb:
    Der Perfomance halber solltest du die 3. Variante nutzen.


    Inwiefern ist die Perfomance denn besser?
  11. 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'].
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!