kostenloser Webspace werbefrei: lima-city


Daten in Datenbank schreiben geht nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    the-eden-projekt

    the-eden-projekt hat kostenlosen Webspace.

    Hi
    ich habe volgendes Problem,
    undzwar will ich daten in meine datenbank schreiben
    habe das script von meinem PN-System kopiert und so zurechtgemacht das es jetzt für mein Gb eigendlich gehen sollte
    also nur Betreff raus und namen der Datenbank geändert.
    Aber er schreibt die daten nicht in die DB
    Seht ihr warum es nicht geht?
    Hier mal der Code
    <?
    include \"config.php\";
    $from_id = $_SESSION[id];
    $from_user = $_GET[from_user];
    $to_id = $_GET[to_id];
    $to_user = $_GET[to_user];
    $text = $_GET[text];
    $timestamp = $_GET[datum];
    
    $eintrag = \"INSERT INTO gbuch (from_id, from_user, to_id, to_user, text, timestamp) VALUES (\'$from_id\', \'$from_user\', \'$to_id\', \'$to_user\', \'$text\', \'$timestamp\')\";
    $eintragen = mysql_query($eintrag);
    ?>
    <a href=\"userlist.php\">Zurück zur Memberliste.</a>


    MfG
    The-Eden

    EDIT:
    er gibt kein fehler aus
    sondern es kommt halt nur \"Zurück zur Memberliste\" und das wars.


    Beitrag geändert: 29.2.2008 19:45:49 von the-eden-projekt
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Gefährlich, du übernimmst Nutzereingaben direkt in den Query, das ist eine GROßE Sichterheitslücke: http://de.wikipedia.org/wiki/SQL_Injection

    Ersetze z.b.

    $from_user = $_GET[from_user];

    durch
    $from_user = mysql_real_escape_string($_GET[\'from_user\']);

    Edit: Zu deinem Problem, rufe nach mysql_query noch folgendes auf:

    echo mysql_error();

    Wenn das etwas ausgibt, siehst du meistens deinen Fehler.

    Beitrag geändert: 29.2.2008 19:49:34 von xhochy
  4. Autor dieses Themas

    the-eden-projekt

    the-eden-projekt hat kostenlosen Webspace.

    hab noch ne if anweisung vor
    also nur user wo die session mit der from übereinstimmt können da was eintragen
    oder was meinst du damit ???
  5. Damit meint er, dass man, wenn man bei den Eingaben die richtigen Zeichen verwendet, man SQL Befehle in den Query schmuggeln und so z.B. die Datenbank manipulieren oder auslesen kann.
  6. Ja, es ist egal wer eintragen kann, solange es nicht du selbst bist können die deinen Query mutwillig verändern, so dass sie z.B. die ganze Tabelle löschen, les dir mal die Wikipedia-Seite durch, solltest wissen, was es ist, ist eine Sache die sehr häufig falsch gemacht wird und sehr viele Sicherheitslücken hervorruft.
  7. Autor dieses Themas

    the-eden-projekt

    the-eden-projekt hat kostenlosen Webspace.

    axo
    ja hab eben den link erst gesehen und mal angefangen zu lesen ;(
    ist ja echt ne blöde sache

    also muss ich jetzt um dei lücke zu schließen dort überall dieses real once zumachen
    hab ich das richtig verstanden ???
  8. Autor dieses Themas

    the-eden-projekt

    the-eden-projekt hat kostenlosen Webspace.

    ja geht noch
    nur er schreibt die immernoch nicht in die DB ;(
  9. Was sagt denn

    echo $eintrag;
    var_dump($eintragen);

    ?
  10. Autor dieses Themas

    the-eden-projekt

    the-eden-projekt hat kostenlosen Webspace.

    er sagt garnix auf
    echo $eintrag;
    var_dump($eintragen);

    kommt nichts ;(
  11. Wo hast du diese Zeile eingefügt, poste vllt mal dein Script inkl diser Zeilen (sie sollten nach dem Aufruf von mysql_query kommen..)
  12. Autor dieses Themas

    the-eden-projekt

    the-eden-projekt hat kostenlosen Webspace.

    <?
    include \"config.php\";
    include \"session.php\";
    $subject = mysql_real_escape_string($_GET[\"subject\"]);
    $from_id = mysql_real_escape_string($_SESSION[\"id\"]);
    $from_user = mysql_real_escape_string($_GET[\"from_user\"]);
    $to_id = mysql_real_escape_string($_GET[\"to_id\"]);
    $to_user = mysql_real_escape_string($_GET[\"to_user\"]);
    $text = mysql_real_escape_string($_GET[\"text\"]);
    $timestamp = mysql_real_escape_string($datum);
    
    $eintrag = \"INSERT INTO pns (subject, from_id, from_user, to_id, to_user, text, timestamp) VALUES (\'$subject\', \'$from_id\', \'$from_user\', \'$to_id\', \'$to_user\', \'$text\', \'$timestamp\')\";
    $eintragen = mysql_query($eintrag);
    echo $eintrag;
    var_dump($eintragen);
    
    ?>
    <a href=\"mail_in.php\">Weiter</a>


    das ist er also direkt nach dem query aber kommt nix ;(
  13. Also wenn nichts kommt, heißt das, dass der Code überhaupt nicht aufgerufen wird...
  14. Autor dieses Themas

    the-eden-projekt

    the-eden-projekt hat kostenlosen Webspace.

    ah jetzt doch

    INSERT INTO gbuch (from_id, from_user, to_id, to_user, text, timestamp) VALUES (\'1\', \'Atze\', \'1\', \'Atze\', \'rrrr\', \'\')bool(false)

    hatte vvergessen zu speichern -.-

    Beitrag geändert: 29.2.2008 22:40:45 von the-eden-projekt
  15. Ist das dein gesamter Code, oder hast du zuvor noch eine if-Abfrage?

    Nutze mal \'<?php\' statt \'<?\'

    EDIT: Na, dann ist gut^^

    Beitrag geändert: 29.2.2008 22:42:31 von xhochy
  16. Autor dieses Themas

    the-eden-projekt

    the-eden-projekt hat kostenlosen Webspace.

    ja habe davor ne if abfrage
    also frage ob der user eingelogt ist also ob die session da ist
  17. Autor dieses Themas

    the-eden-projekt

    the-eden-projekt hat kostenlosen Webspace.

    ne mit <?php gehts auchnicht


  18. the-eden-projekt schrieb:

    INSERT INTO gbuch (from_id, from_user, to_id, to_user, text, timestamp) VALUES (\\\'1\\\', \\\'Atze\\\', \\\'1\\\', \\\'Atze\\\', \\\'rrrr\\\', \\\'\\\')bool(false)


    Das bool(false) am sagt schon mal das die Anfrage daneben geht.

    Häng einfach noch ma ein var_dump(mysql_error()) dran...
  19. Autor dieses Themas

    the-eden-projekt

    the-eden-projekt hat kostenlosen Webspace.

    INSERT INTO gbuch (from_id, from_user, to_id, to_user, text, timestamp) VALUES (\'1\', \'Atze\', \'1\', \'Atze\', \'test\', \'\')bool(false) string(42) \"Unknown column \'timestamp\' in \'field list\'\"


    hmpf so wie ich das jetzt sehe denke ich mal das timestamp falsch ist ;( werde das mal rausnehmen und guggen was er dann macht ;/
  20. Es sieht so aus, als hätte deine Tabelle einfach keine Spalte timestamp, füg die einfach per PHPMyAdmin hinzu, dann gehts auch mit Timestamp.
  21. 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!