Ankündigung

Einklappen
Keine Ankündigung bisher.

Gästebuch Problem

Einklappen

Neue Werbung 2019

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

  • Gästebuch Problem

    Also folgendes Problem:

    Ich will ein Gästebuch programmieren, dass es jedoch im Moment nicht so wirklich tut:

    Quelltext der Eingabe:

    <?php
    $aktion = $HTTP_GET_VARS["aktion"];
    IF ( $aktion != "speichern" )
    {
    echo '<form action="buch_eingabe.php?aktion=speichern" method="post">
    <table border=1><tr><td>Name: <input type="text" name="name" size=50></td></tr>
    <tr><td>Mail: <input type="text" name="mail" size=50></td></tr>
    <tr><td>Homepage: <input type="text" name="hp" size=46></td></tr>
    <tr><td>Eintrag: <textarea name="text" cols="40" rows="10"></textarea></td></tr>
    <tr><td><input type="submit" value=Abschicken></td></tr></table>
    </form> ';
    $aktion = $HTTP_GET_VARS["aktion"];
    }

    ELSE
    {
    $name = "$_POST[name]";
    $mail = "$_POST[mail]";
    $hp = "$_POST[hp]";
    $text = "$_POST[text]";
    $x = time();
    $y = getdate($x);
    $t = $y[mday];
    $m = $y[mon];
    $j = $y[year];
    $datum = $t.'.'.$m.'.'.$j;
    $s = $y[hours];
    $m = $y[minutes];
    $uhrzeit = $s.':'.$m;
    mysql_query("INSERT INTO Buch (id,name,mail,hp,datum,uhrzeit,text) VALUES ($name,$mail,$hp,$datum,$uhrzeit,$text)");
    echo '


    <center>Danke für Ihren Eintrag in mein Gästebuch!



    Beiträge anzeigen


    Home </center>';
    };

    Ich hab auch mal einen Screenshot von den Einstellungen der DB gemacht, den bekomme ich nur leider hier nicht rein.

    Ich habe in der DB die Felder id, name, mail, hp, datum, uhrzeit, text wobei die alle auf not null stehen udn neben id ein auto_increment steht. Außerdem liegt über id ein Index.

    Danke für eure Hilfe,
    mfg florian


  • #2
    bitte poste deinen code mal in [php] tags! SIeht dann so aus +

    [php:31cb22c462]
    <?php
    $aktion = $HTTP_GET_VARS["aktion"];
    IF ( $aktion != "speichern" )
    {
    echo '<form action="buch_eingabe.php?aktion=speichern" method="post">
    <table border=1><tr><td>Name: <input type="text" name="name" size=50></td></tr>
    <tr><td>Mail: <input type="text" name="mail" size=50></td></tr>
    <tr><td>Homepage: <input type="text" name="hp" size=46></td></tr>
    <tr><td>Eintrag: <textarea name="text" cols="40" rows="10"></textarea></td></tr>
    <tr><td><input type="submit" value=Abschicken></td></tr></table>
    </form> ';
    $aktion = $HTTP_GET_VARS["aktion"];
    }

    ELSE
    {
    $name = "$_POST[name]";
    $mail = "$_POST[mail]";
    $hp = "$_POST[hp]";
    $text = "$_POST[text]";
    $x = time();
    $y = getdate($x);
    $t = $y[mday];
    $m = $y[mon];
    $j = $y[year];
    $datum = $t.'.'.$m.'.'.$j;
    $s = $y[hours];
    $m = $y[minutes];
    $uhrzeit = $s.':'.$m;
    mysql_query("INSERT INTO Buch (id,name,mail,hp,datum,uhrzeit,text) VALUES ($name,$mail,$hp,$datum,$uhrzeit,$text)");
    echo '


    <center>Danke für Ihren Eintrag in mein Gästebuch!



    Beiträge anzeigen


    Home </center>';
    };
    ?>[/php:31cb22c462]

    hm irgendwie wird das blos in code angezeigt lol? egal .. auf alle fälle fehlt bei deinem code ganz unten ein ?>

    Kommentar


    • #3
      @JohnRambo:
      Das sieht dann so aus:
      PHP-Code:
      <?php
      $aktion 
      $HTTP_GET_VARS["aktion"];
      IF ( 
      $aktion != "speichern" )
      {
      echo 
      '<form action="buch_eingabe.php?aktion=speichern" method="post">
      <table border=1><tr><td>Name: <input type="text" name="name" size=50></td></tr>
      <tr><td>Mail: <input type="text" name="mail" size=50></td></tr>
      <tr><td>Homepage: <input type="text" name="hp" size=46></td></tr>
      <tr><td>Eintrag: <textarea name="text" cols="40" rows="10"></textarea></td></tr>
      <tr><td><input type="submit" value=Abschicken></td></tr></table>
      </form> '
      ;
      $aktion $HTTP_GET_VARS["aktion"];
      }

      ELSE
      {
      $name "$_POST[name]";
      $mail "$_POST[mail]";
      $hp "$_POST[hp]";
      $text "$_POST[text]";
      $x time();
      $y getdate($x);
      $t $y[mday];
      $m $y[mon];
      $j $y[year];
      $datum $t.'.'.$m.'.'.$j;
      $s $y[hours];
      $m $y[minutes];
      $uhrzeit $s.':'.$m;
      mysql_query("INSERT INTO Buch (id,name,mail,hp,datum,uhrzeit,text) VALUES ($name,$mail,$hp,$datum,$uhrzeit,$text)");
      echo 
      '


      <center>Danke für Ihren Eintrag in mein Gästebuch!



      [url="buch_anzeige.php"] Beiträge anzeigen [/url] 


      [url="index_haupt.html"] Home [/url]</center>'
      ;
      };

      ?>

      Kommentar


      • #4
        PHP-Code:
        <?php
        $name 
        "$_POST[name]";
        $mail "$_POST[mail]";
        $hp "$_POST[hp]";
        $text "$_POST[text]"
        ?>
        ====>
        PHP-Code:
        <?php
        $name 
        $_POST['name'];
        // usw...
        ?>

        Kommentar


        • #5
          Habs geändert, klappt aber immer noch nicht...

          Kommentar


          • #6
            Rück erstmal den Käste da richtig ein, dann wirst du vielleicht selber auf den Fehler kommen. Was ist das für ein Fehler? Parse error? Ohne Fehlermeldung können wir dir auch nicht sagen, was nicht stimmt. Papp mal ein error_reporting(E_ALL) an den Anfang deines Scriptes, und benutze $_POST / $_GET statt $HTTP_POST_VARS / $HTTP_GET_VARS ..
            Setze außerdem ein mysql_error() hinter dein MySQL-Query, denn vielleicht will dir MySQL auch was sagen..
            PHP-Code:
            <?php
            mysql_query
            ("...") or die( mysql_error() );
            ?>

            Kommentar


            • #7
              es kommt ja "leider kein Fehler, sondern es passiert einfach gar nichts...

              werde ich gleich machen, muss aber esrt mal essen gehen )

              Kommentar


              • #8
                PHP-Code:
                <?php
                    mysql_query
                (" ... VALUES ($name,$mail,$hp,$datum,$uhrzeit,$text)") or die (mysql_error());
                    
                // Die Inhalte dieser Variablen sind Strings, daher
                   
                mysql_query(" ...  VALUES ('$name', '$mail') ") or die (mysql_error()); // usw.
                ?>

                Kommentar


                • #9
                  so, bei einem mysql_error hinter dem query kommt das heraus:

                  Column count doesn't match value count at row 1

                  Kann mir aber keinen Reim drauf machen...

                  Kommentar


                  • #10
                    Column count doesn't match value count at row 1
                    PHP-Code:
                    <?php
                    mysql_query
                    ("INSERT INTO Buch (id,name,mail,hp,datum,uhrzeit,text) VALUES ($name,$mail,$hp,$datum,$uhrzeit,$text)"); 
                    ?>
                    (id, name, mail, hp, datum, uhrzeit, text)
                    (-> <-$name,$mail,$hp,$datum,$uhrzeit,$text)

                    Fällt dir was auf? Dir fehlt die "id" zum einragen. Ist ID in der Datenbank auf auto_increment, musst du sie im PHPScript nicht mehr eintragen..

                    Kommentar


                    • #11
                      Super, jetzt läuft es...

                      Noch eine allerletzte Frage, wenn ich in dem Formular einen Absatz mache, wird das hinterher so nicht abgespeichert, was ja auch ganz logisch ist, weil das
                      fehlt. Nur wie bekomme ich das hin?

                      Kommentar

                      Lädt...
                      X