gb - kein eintragen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • gb - kein eintragen

    Hi Leute

    Mein Problem: Meine GB-Site wird aufgerufen, jedoch wird beim Eintragen von einem Post nichts in die Mysql-Datenbank geschrieben.
    Es werden auch keine Fehlermeldungen ausgegeben. Es wird auch automatisch auf die index.php umgeleitet nach dem abschicken der Daten.

    GB.PHP
    PHP-Code:
    <br><b>Guestbook</b><br><br><? 
    include("connect.php");
    $abfrage    =    "SELECT * FROM gb ORDER BY id DESC";
    $ergebnis    =    mysql_query($abfrage, $verbindung);
    error_reporting(E_ALL);
    while($gb = mysql_fetch_object($ergebnis))
     {
     echo    "<b>",
             $gb->name,
            "</a></b> - <u>",
            $gb->titel,
             "</u><br>",
             nl2br($gb->text),
            "<br><br>";    
    }
    ?><br>
    <hr><?php
     
    if (isset($_GET['send'])) {
        include(
    "connect.php");
        
    $submit "INSERT INTO gb (titel, text, name) VALUES ('{$_REQUEST[titel]}', '{$_REQUEST[text]}', '{$_REQUEST[name]}')";
        
    $ergebnis mysql_query($submit);
        echo 
    "Erfolgreich eingetragen!<br><br>";
        echo 
    "<a href='index.php?s=gb'><b>Zurück</b></a>";
    } else {
        
    ?><br><form>
        Name:<br>
        <input name="name" size="50" type="text" value=""><br>
        Titel:<br>
        <input name="titel" size="50" type="text" value=""><br>
        Text: <br>
        <textarea id="textarea" cols="38" name="text" rows="8"></textarea><br>
        <input name="send" type="submit" value="erstellen"><br></form></center><br>
    <?php ?>
    INDEX.PHP
    PHP-Code:
    <? error_reporting(E_ALL);
    if(isset($_GET['s'])) {
    switch($_GET['s']) {
    case 'news': include("news.php"); 
    break;
    case 'crew': include("crew.php");
    break;
    case 'img': include("images.php");
    break;
    case 'gb': include("gb.php");
    break;
    case 'dl': include("dl.php");
    break;
    case 'links': include("links.php");
    break;
    case 'impressum': include("impressum.php");
    break;
    }
    }
    else {?>
    <br><b>News</b><br><br> <?
    include("connect.php");
    $abfrage    =    "SELECT * FROM test ORDER BY id DESC";
    $ergebnis    =    mysql_query($abfrage, $verbindung);

    while($news = mysql_fetch_object($ergebnis))
     {
     echo    "<b>",
             $news->titel,
             "</b><br>",
             nl2br($news->text),
            "<br><br>";
            
    }
    }
    mysql_error();
    ?>
    wo liegt denn das problem? Ich hab gestern den ganzen nachmittag dran rumgetüftelt und getan...

  • #2
    Ich vermisse mysql_error() bei dir....
    Schreib das mal direkt unter diese Query:


    $submit = "INSERT INTO gb (titel, text, name) VALUES ('{$_REQUEST[titel]}', '{$_REQUEST[text]}', '{$_REQUEST[name]}')";

    $ergebnis = mysql_query($submit);

    print mysql_error();


    Gruß

    David
    Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

    Kommentar


    • #3
      Der Code da oben bewirkt keinesfalls eine automatische Weiterleitung auf index.php! Kann es sein, dass du das früher mal drin hattest und dir seitdem die Seiten aus deinem Browsercache anschaust? Oder ist das nicht der ganze Code, passiert die Weiterleitung vielleicht davor schon per header()?

      Du solltest dich mal über register_globals und die Verwendung von $_POST und $_GET informieren sowie über SQL-Injection und deren Vorbeugung mit mysql_real_escape_string().

      Kommentar


      • #4
        Also mysql_error gibt mir auch nix aus...

        und das mit $_POST/$_GET seh ich aus diesem link auch net heraus. is ja nur beschrieben wie sich register_globals off/on verhält ://

        was is denn am code oben net richtig? :C

        Kommentar


        • #5
          Es ist so:

          1. index.php?s=gb wird aufgerufen
          2. wegen s=gb wird gb.php included
          3. Form-Tag in gb.php enthält keinen action-Parameter, Form wird an index.php gesandt
          4. $_GET['s'] ist jetzt nicht gesetzt, also wird gb.php nicht includiert

          Folglich wird auch die INSERT-Query nicht ausgeführt.

          Lösung: in der gb.php
          PHP-Code:
          <form action="<?php echo $_SERVER['PHP_SELF']; ?>?s=gb">
          Aber schick ist das auch nicht.

          Kommentar


          • #6
            es wird dennoch an index.php weitergeleitet.

            so sieht das dann in der adressleiste aus:

            http://localhost/purple/index.php?na...send=erstellen

            es geht also in's else von der index.php und hängt vom formular einfach die tags an ://

            nur hat das mein problem ja nicht gelöst.. auch die "glaskugel" hilft mir net weiter :/

            Kommentar


            • #7
              Wenn das in der Adressleiste so aussieht, dann hast du immernoch nur <form> in der gb.php stehen oder keinen Reload gemacht. Sonst wäre in der Adresse auch s=gb und damit würde die index.php wieder die gb.php includen und dort würde das INSERT ausgeführt.

              (Ich habe irgendwie den Verdacht, du hast nicht die leiseste Ahnung, was diese Scripte machen. )

              Kommentar


              • #8
                und ich hab den verdacht, dass du dich irrst...

                ich hab die page gereloaded, hab nen anderen browser gebraucht und es is immer das gleiche... es zeigt s=gb net an... :/

                Kommentar


                • #9
                  Reload gemacht, fein. Aber hast du auch die gb.php geändert?

                  Kommentar


                  • #10
                    Hallo zusammen.

                    Aber der Link http://localhost.... ist lokal.
                    Das kann gar nicht gehen!

                    Das müsste lauten: http://www.deinedomain.de/...

                    Kommentar


                    • #11
                      klar... wieso sollte ich dich dann dumm anmachen von wegen "du irrst dich"?

                      ich habs schon lange geändert!

                      Kommentar


                      • #12
                        pety, stfu ;( -> rastamate is einer aus meinem geschäft der meint er hätte ahnung ://

                        Kommentar


                        • #13
                          Probiers so:
                          PHP-Code:
                          <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
                          <input type="hidden" name="s" value="gb" />
                          ...
                          </form>

                          Kommentar


                          • #14
                            das kann gar net funktioniere, weil es dann ja nur gb reinschreibt, und net s=gb...

                            und auch wenn es s=gb reinschreiben würde, wäre dann net einfach der text in der adressleiste und würde auch nix ändern?.. :/

                            getestet: localhost/purple/index.php?=gb&.....

                            Kommentar


                            • #15
                              Original geschrieben von wkd-
                              das kann gar net funktioniere
                              Woher hast du diese Weisheit?!?
                              Original geschrieben von wkd-
                              auch wenn es s=gb reinschreiben würde, wäre dann net einfach der text in der adressleiste und würde auch nix ändern?
                              Du hast es immernoch nicht verstanden. Wenn s=gb in der Adressleiste auftaucht, hat $_GET['s'] in der index.php den Wert 'gb' und dadurch wird gb.php included. Sonst nicht.

                              Nichts für ungut, aber deine Tests schreibst du doch mit der Hand in die Adresszeile, kann das sein? Wenn ich den Code von dir mit den vorgschlagenen Änderungen ausführe, macht er genau das was er soll.
                              Also erzähl hier nix vom Wald!

                              Kommentar

                              Lädt...
                              X