kostenloser Webspace werbefrei: lima-city


Daten werden nicht in Datenbank gespeichert

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hallo !

    Habe für meine Seite ein Script programmiert, womit man eingegebene Daten in meine Datenbanktabelle speichert.
    Irgendwie ist da noch ein Fehler drin, ich finde keinen Fehler.

    Wenn man das Formular abschickt, und alle Pflichtfelder und den Sicherheitscode ausgefüllt hat, kommt nur eine weiße Seite. Es wird auch nichts in die DB eingetragen.

    Wenn ich ein Pflichtfeld nicht ausfülle, kommt ein Fehler. Also da klappt alles, nur das Speichern klappt nicht.

    Hier das Script:

    <?php 
    
    if(isset($_POST['submit'])) {
    
    require('../admin/sql.php');
    
    session_start(); 
    function encrypt($string, $key) { 
    $result = ''; 
    for($i=0; $i<strlen($string); $i++) { 
       $char = substr($string, $i, 1); 
       $keychar = substr($key, ($i % strlen($key))-1, 1); 
       $char = chr(ord($char)+ord($keychar)); 
       $result.=$char; 
    } 
    return base64_encode($result); 
    } 
    $sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "29jfkd921"); 
    $sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe); 
    if(isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){ 
    unset($_SESSION['rechen_captcha_spam']);
    
    $rezeptname = mysql_real_escape_string($_POST['rezeptname']); 
    $zutaten = mysql_real_escape_string($_POST['zutaten']); 
    $zubereitung = mysql_real_escape_string($_POST['zubereitung']); 
    $kategorie = mysql_real_escape_string($_POST['kategorie']); 
    $bild = mysql_real_escape_string($_POST['bild']); 
    $infos = mysql_real_escape_string($_POST['infos']); 
    
    
    $fehler = false;
       if(trim($zutaten) == "") { 
       echo "<b><font color=\"red\">Bitte geben Sie die Zutaten an.</font></b><br>";
       $fehler = true; 
       }
       if(trim($zubereitung) == "") { 
       echo "<b><font color=\"red\">Bitte geben Sie eine Zubereitung ein.</font></b><br>";
       $fehler = true; 
       }
       if(trim($rezeptname) == "") { 
       echo "<b><font color=\"red\">Bitte geben Sie einen Rezeptnamen ein.</font></b><br>";
       $fehler = true; 
       }
       if(trim($kategorie) == "") { 
       echo "<b><font color=\"red\">Bitte geben Sie eine Kategorie an.</font></b><br>";
       $fehler = true;
       if (!$fehler) {
    $eintrag = "insert into rezeptvorschlaege (rezeptname, zutaten, zubereitung, kategorie, bild, infos) values ('".$_POST['rezeptname']."', '".$_POST['zutaten']."', '".$_POST['zubereitung']."', '".$_POST['kategorie']."', '".$_POST['bild']."', '".$_POST['infos']."')"; 
    $eintragen = mysql_query($eintrag); 
    }
    
    if($eintragen == true) 
       { 
    
    echo "
    
    <p><b><font face='Arial' color='#008000' size='4'>Vielen Dank für Ihren 
    Rezepteintrag !</font></b></p>
    <p><font face='Arial' color='#008000'>Nach einer kurzen Überprüfung erscheint 
    Ihr Rezept in der Rezeptübersicht.</font></p>
    <p>&nbsp;</p>
    <p><font face='Arial' size='4'><a href='rezept_eintragen.php'>Noch ein Rezept eintragen</a></font></p>
    <p>&nbsp;</p>
    <p><font face='Arial' size='4'><a href='index.php'>Zurück zu den Rezepten</a></font></p>
    
    ";
     
       } }
    
    } else {
    
    echo '<b><font color=\"red\">Der Sicherheitscode ist leider falsch. Bitte versuche es erneut !</font></b><br>';
    
    } }
    ?>


    Könnt Ihr da vielleicht mal drüberschauen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. ole-reglitzki

    Kostenloser Webspace von ole-reglitzki

    ole-reglitzki hat kostenlosen Webspace.

    hinter
    if(trim($kategorie) == "") { 
       ...
       $fehler = true;
    fehlt eine }, welche du hinter
    if($eintragen == true) { ... }
    gesetzt hast.
    Zudem würde ich dir von der Zeile
    $eintrag = "insert into rezeptvorschlaege (rezeptname, zutaten, zubereitung, kategorie, bild, infos) values ('".$_POST['rezeptname']."', '".$_POST['zutaten']."', '".$_POST['zubereitung']."', '".$_POST['kategorie']."', '".$_POST['bild']."', '".$_POST['infos']."')";
    abraten, da böse User da einiges anstellen könnten.

    lg Ole

    Beitrag zuletzt geändert: 7.8.2011 19:00:28 von ole-reglitzki
  4. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    ole-reglitzki schrieb:
    hinter
    $fehler = true;
    fehlt eine }, welche du hinter
    if($eintragen == true) { ... }
    gesetzt hast.
    Zudem würde ich dir von der Zeile
    $eintrag = "insert into rezeptvorschlaege (rezeptname, zutaten, zubereitung, kategorie, bild, infos) values ('".$_POST['rezeptname']."', '".$_POST['zutaten']."', '".$_POST['zubereitung']."', '".$_POST['kategorie']."', '".$_POST['bild']."', '".$_POST['infos']."')";
    abraten, da böse User da einiges anstellen könnten.

    lg Ole


    Erstmal danke für deine Antwort !
    Wie könnte ich die Zeile denn sicherer machen?
  5. ole-reglitzki

    Kostenloser Webspace von ole-reglitzki

    ole-reglitzki hat kostenlosen Webspace.

    Mit mysql in php an sich kenne ich mich nicht aus, ich könnte dir höchstens sagen, wie es mit PDO aussehen würde (wenn du noch Einsteiger bist, steige bitte auf PDO um, könnte dir später das lernen eines anderen Datenbank-Typen ersparen).
    EDIT: Zu PDO kannst du es hier sehen ;-)

    Beitrag zuletzt geändert: 7.8.2011 19:04:49 von ole-reglitzki
  6. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    ole-reglitzki schrieb:
    Mit mysql in php an sich kenne ich mich nicht aus, ich könnte dir höchstens sagen, wie es mit PDO aussehen würde (wenn du noch Einsteiger bist, steige bitte auf PDO um, könnte dir später das lernen eines anderen Datenbank-Typen ersparen).
    EDIT: Zu PDO kannst du es hier sehen ;-)


    Habe mein Script so geändert:

    <?php 
    
    if(isset($_POST['submit'])) {
    
    require('../admin/sql.php');
    
    session_start(); 
    function encrypt($string, $key) { 
    $result = ''; 
    for($i=0; $i<strlen($string); $i++) { 
       $char = substr($string, $i, 1); 
       $keychar = substr($key, ($i % strlen($key))-1, 1); 
       $char = chr(ord($char)+ord($keychar)); 
       $result.=$char; 
    } 
    return base64_encode($result); 
    } 
    $sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "29jfkd921"); 
    $sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe); 
    if(isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){ 
    unset($_SESSION['rechen_captcha_spam']);
    
    $rezeptname = mysql_real_escape_string($_POST['rezeptname']); 
    $zutaten = mysql_real_escape_string($_POST['zutaten']); 
    $zubereitung = mysql_real_escape_string($_POST['zubereitung']); 
    $kategorie = mysql_real_escape_string($_POST['kategorie']); 
    $bild = mysql_real_escape_string($_POST['bild']); 
    $infos = mysql_real_escape_string($_POST['infos']); 
    
    
    $fehler = false;
       if(trim($zutaten) == "") { 
       echo "<b><font color=\"red\">Bitte geben Sie die Zutaten an.</font></b><br>";
       $fehler = true; 
       }
       if(trim($zubereitung) == "") { 
       echo "<b><font color=\"red\">Bitte geben Sie eine Zubereitung ein.</font></b><br>";
       $fehler = true; 
       }
       if(trim($rezeptname) == "") { 
       echo "<b><font color=\"red\">Bitte geben Sie einen Rezeptnamen ein.</font></b><br>";
       $fehler = true; 
       }
       if(trim($kategorie) == "") { 
       echo "<b><font color=\"red\">Bitte geben Sie eine Kategorie an.</font></b><br>";
       }
       $fehler = true;
       if (!$fehler) {
    $eintrag = "insert into rezeptvorschlaege (rezeptname, zutaten, zubereitung, kategorie, bild, infos) values ('".$_POST['rezeptname']."', '".$_POST['zutaten']."', '".$_POST['zubereitung']."', '".$_POST['kategorie']."', '".$_POST['bild']."', '".$_POST['infos']."')"; 
    $eintragen = mysql_query($eintrag); 
    }
    
    if($eintragen == true) 
       { 
    
    echo "
    
    <p><b><font face='Arial' color='#008000' size='4'>Vielen Dank für Ihren 
    Rezepteintrag !</font></b></p>
    <p><font face='Arial' color='#008000'>Nach einer kurzen Überprüfung erscheint 
    Ihr Rezept in der Rezeptübersicht.</font></p>
    <p>&nbsp;</p>
    <p><font face='Arial' size='4'><a href='rezept_eintragen.php'>Noch ein Rezept eintragen</a></font></p>
    <p>&nbsp;</p>
    <p><font face='Arial' size='4'><a href='index.php'>Zurück zu den Rezepten</a></font></p>
    
    ";
     
       } }
    
    } else {
    
    echo '<b><font color=\"red\">Der Sicherheitscode ist leider falsch. Bitte versuche es erneut !</font></b><br>';
    
    }
    ?>


    Aber es klappt immernoch nicht. Ist da noch ein Fehler drin?
  7. ole-reglitzki

    Kostenloser Webspace von ole-reglitzki

    ole-reglitzki hat kostenlosen Webspace.

    Ich weiß nicht, ob php funktionen in einer IF-Abfrage zulässt, bezweifle ich aber.
    Das könnte eine mögliche Fehlerursache sein ;-)
  8. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Kann noch jemand den Code durchschauen, ob da irgendwo noch ein Fehler drin ist?
  9. ole-reglitzki

    Kostenloser Webspace von ole-reglitzki

    ole-reglitzki hat kostenlosen Webspace.

    hab noch einmal nachgeguckt...
    du hast die Klammer eine Zeile zu früh gesetzt.
    Wenn
    $fehler = true;
       if (!$fehler) {
    dort steht, ist es klar, dass er dort nie greift.

    lg
  10. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    ole-reglitzki schrieb:
    hab noch einmal nachgeguckt...
    du hast die Klammer eine Zeile zu früh gesetzt.
    Wenn
    $fehler = true;
       if (!$fehler) {
    dort steht, ist es klar, dass er dort nie greift.

    lg


    Also wie soll der Code genau da aussehen?
    Wo soll die Klammer hin?

    EDIT: Habs schon selber hinbekommen! Vielen Dank für deine Hilfe ;)

    Beitrag zuletzt geändert: 7.8.2011 20:50:26 von davy
  11. 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!