tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
13
ZUGRIFFE
1351
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    neopayne neopayne ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    134
    Hallo,

    Frage: Was ist an diesem Code falsch? die Tabelle heisst test und die spalte heisst folder und der wert wird auch in <i>ordner</i> übergeben.

    PHP-Code:
    $newfol "INSERT INTO test (folder) VALUES ('$_POST[ordner]')"
     

  2. #2
    Avatar von Timbonet
    Timbonet Timbonet ist offline Mitglied Brilliant
    Registriert seit
    Jun 2003
    Ort
    Griesheim (Hessen)
    Beiträge
    800
    PHP-Code:
    $newfol "INSERT INTO test  SET (folder) VALUES ('$_POST[ordner]')"
     

  3. #3
    neopayne neopayne ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    134
    es will immer noch nicht! ich kanns mir aber auch nicht erklären
     

  4. #4
    Avatar von bn
    bn bn ist offline Mitglied Brokat
    Registriert seit
    Oct 2002
    Ort
    Berlin
    Beiträge
    395
    Hallo,

    1.) wenn du ein Array mit nicht numerischen Index ansprichst ($_POST), muß der Index in Hochkommas angegeben werden
    PHP-Code:
    //falsch
    $_POST[ordner]
    //richtig
    $_POST['ordner'
    2.)
    PHP-Code:
     $newfol "INSERT INTO test (folder) VALUES ('$_POST[ordner]')"
    Hier wird $_POST[folder] durch die umgebenden " ' " als String behandelt - nicht als Variable. Statt dessen solltest du den gesamten SQL-String an dieser Stelle unterbrechen, die Variable anhängen und anschließend wieder fortführen:
    PHP-Code:
    // habe auch gleich den Index angepasst ;-)
    $newfol "INSERT INTO test  (folder) VALUES ('".$_POST['ordner']."')"
    mfg Bloddy
     

  5. #5
    Avatar von Timbonet
    Timbonet Timbonet ist offline Mitglied Brilliant
    Registriert seit
    Jun 2003
    Ort
    Griesheim (Hessen)
    Beiträge
    800
    Innerhalb von " " funktioniert in der Regel auch $_POST[ordner], sauberer ist aber auf jeden Fall die letzte Lösung.
    Poste doch mal den Code drumherum, nicht nur die Queryzuweisung an eine Variable.
     

  6. #6
    neopayne neopayne ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    134
    sorry bloddy newbie hat so auch nicht funktioniert

    Hier mal ein größerer Teil des Codes:
    PHP-Code:
    if($_POST['action']=="delete")  {
        
    $del mysql_query("DELETE FROM test WHERE folder='$_POST[ordner]'");
        
    rmdir("../gallerys/$_POST[ordner]");
        
    chmod("../gallerys/$_POST[ordner]"0777);
        if(
    $del)  {
            echo 
    "<br><br><br><b><font face=Arial size=3><center>Galerie wurde gelöscht</font></b>";
        } else {
            echo 
    "Fehler";
        }

     

  7. #7
    Avatar von bn
    bn bn ist offline Mitglied Brokat
    Registriert seit
    Oct 2002
    Ort
    Berlin
    Beiträge
    395
    dein Codeschnippsel hat zwar mit dem zuvor geposteten nicht viel zu tun, aber trotzdem sind auch dort alle von mir aufgezeigten Fehlerquellen enthalten. Hast du mal versucht, meine geposteten Hinweise umzusetzen?

    Weiterhin halte ich es sicherheitstechnisch für sehr relevant, vor der blinden Erstellung des per POST übergebenen Ordnernamens, diesen zum Beispiel mittels preg_match auf einen konformen Namen hin zu überprüfen. Weiterhin solltest du im Querry den übergeben String escapen, um SQL-Injections zu vermeiden.

    mfg Bloddy
     

  8. #8
    neopayne neopayne ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    134
    ja ich habe deine Vorschläge alle umgesetzt... nur da es nicht funktioniert hat habe ich wieder den ursprünglischen code gepostet.

    sicherheitstechnisch muss ich keine Bedenken haben da sich diese Seiten in einem passwortgeschützten Beriech befinden werden.

    etwas eigenartig ist das keine Fehlermeldung von MySQL oder von PHP erscheint es kommt die Bestätungsnachricht aber es wird nichts in die Datenbank eingefügt.
     

  9. #9
    Avatar von Timbonet
    Timbonet Timbonet ist offline Mitglied Brilliant
    Registriert seit
    Jun 2003
    Ort
    Griesheim (Hessen)
    Beiträge
    800
    Also in deinem zuletzt geposteten Code wird garantiert nichts in eine Datenbank eingefügt.. Dafür ist "DELETE FROM" einfach nicht geeignet
     

  10. #10
    neopayne neopayne ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    134
    sry da hab ich den falschen Teil kopiert!

    das ist der Richtige:
    PHP-Code:
    if($_POST['action']=="new")  {
        
    $newfol "INSERT INTO test  (folder) VALUES ('".$_POST['ordner']."')"
        
    mkdir("../gallerys/$_POST[newgalerie]");
        
    chmod("../gallerys/$_POST[newgalerie]"0777);
        if(
    $newfol){
            echo 
    "<br><br><br><b><font face=Arial size=3><center>Galerie wurde erstellt</font></b>";
        } else {
            echo 
    "<br><br><br><b><center>Fehler</b>";
        }

     

  11. #11
    Avatar von bn
    bn bn ist offline Mitglied Brokat
    Registriert seit
    Oct 2002
    Ort
    Berlin
    Beiträge
    395
    Vermisst du nicht auch die Auführung des SQL-Kommandos?
    mysql_query() mit entsprechenden Datenbankzeiger solltest du schon noch unterbringen.

    mfg Bloddy
     

  12. #12
    neopayne neopayne ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    134
    nee is klar... is auch drinne... hab ich nur nicht gepostet

    wie gesagt ich hab auch per echo schonmal $_POST['ordner']; ausgegeben.
     

  13. #13
    Avatar von bn
    bn bn ist offline Mitglied Brokat
    Registriert seit
    Oct 2002
    Ort
    Berlin
    Beiträge
    395
    Hellsehen gehörte noch nie zu meinen Stärken *gg*.
    Poste doch ruhig mal etwas mehr Quelltext...
     

  14. #14
    neopayne neopayne ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    134
    puhh habs geschafft... bloody hatte recht der query!

    PHP-Code:
    if($_POST['action']=="new")  {
        
    $datum=strftime("%d.%m.%Y");
        
    $newfol "INSERT INTO galerien  (galerie, datum) VALUES ('$_POST[newgl]','datum')";
        
    $newfol =mysql_query($newfol);
        
    mkdir("../gallerys/$_POST[newgl]");
        
    chmod("../gallerys/$_POST[newgl]"0777);
        if(
    $newfol){
            echo 
    "<br><br><br><b><font face=Arial size=3><center>Galerie wurde erstellt</font></b>";
        } else {
            echo 
    "<br><br><br><b><center>Fehler</b>";
        }

    Vielen Dank für die Hilfe
    Geändert von neopayne (29.12.04 um 21:28 Uhr)
     

Ähnliche Themen

  1. PDO insert Problem
    Von luchs3 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 21.02.07, 10:19
  2. SQL Problem (insert)
    Von dadom110 im Forum Java
    Antworten: 3
    Letzter Beitrag: 24.02.06, 14:52
  3. INSERT Problem
    Von kesnw im Forum PHP
    Antworten: 4
    Letzter Beitrag: 09.06.05, 13:39
  4. Problem mit INSERT INTO
    Von proloser im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 30.08.04, 12:54
  5. INSERT problem ...
    Von bspainkf36 im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 06.12.03, 11:58