Guestbook :(

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

  • Guestbook :(

    hmm bin voll verzweifelt hänge hier scho ewig dran....
    Ich krieg das irgendwie nicht hin, dass ich auf nen Button klicke, und der dann die Daten quasi ausliest und ins GB speichert....
    jetzt ist das so wenn die hp aufgerufen wird, dann macht der nen leeren eintrag in die DB.... weiß einfach nimmer weiter...

    <?
    include("db_connect.php");

    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    </head>

    <body>
    <form name="guestbook" method="POST" action="guestbook.php" >
    </form>
    <table width="58%" height="176" border="0" align="center">
    <tr>
    <td width="41%" height="27">Name:</td>
    <td width="59%"><input type="text" name="name"></td>
    </tr>
    <tr>
    <td height="24">Email:</td>
    <td><input type="text" name="email"></td>
    </tr>
    <tr>
    <td height="24">Homepage:</td>
    <td><input type="text" name="homepage"></td>
    </tr>
    <tr>
    <td height="24">Ort:</td>
    <td><input type="text" name="ort"></td>
    </tr>
    <tr>
    <td>Text:</td>
    <td rowspan="2"><textarea name="text" cols="30" rows="10"></textarea> </td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width="41%" height="27">&nbsp;</td>
    <td width="59%"><form name="submit" method="post" action="" >
    <input type="submit" name="submit" value="Abschicken" >
    </form></td>
    </tr>

    </table>
    <?
    // Daten in Variablen speichern
    $name = $HTTP_POST_VARS["name"];
    $email = $HTTP_POST_VARS["email"];
    $homepage = $HTTP_POST_VARS["homepage"];
    $text = $HTTP_POST_VARS["text"];
    $ort = $HTTP_POST_VARS["ort"];


    // Daten in Tabelle speichern
    $eintrag ="INSERT INTO Gaestebuch (Name, Email, Homepage, Ort, Text) VALUES ('$name', '$email', '$homepage', '$ort', '$text')";

    // Tabelle in DB eintragen

    $eintragen = mysql_query($eintrag);

    ?>

    <p>&nbsp;</p>
    </body>
    </html>

  • #2
    1. $HTTP_POST_VARS ist veraltet, schreibe $_POST
    2. Du musst mit isset prüfen, ob die Variablen überhaupt vorhanden sind
    3. Schreibe error_reporting(E_ALL); an den Anfang des Scriptes, vielleicht informiert dich PHP dann über weitere Probleme

    Gruß
    Uwe

    Kommentar


    • #3
      Jo thx erstmal habe das nun umgeändert und der gibt mir nun aus
      // Daten in Variablen speichern
      $name = $_POST["name"];
      $email = $_POST["email"];
      $homepage = $_POST["homepage"];
      $text = $_POST["text"];
      $ort = $_POST["ort"];


      Notice: Undefinied index: name in /ordner/guestbook.php
      Notice: Undefinied index: email in /ordner/guestbook.php
      Notice: Undefinied index: homepage in /ordner/guestbook.php
      Notice: Undefinied index: text in /ordner/guestbook.php
      Notice: Undefinied index: ort in /ordner/guestbook.php

      heißt das nun dass er hieraus
      <tr>
      <td height="24">Homepage:</td>
      <td><input type="text" name="homepage"></td>
      </tr>

      jetzt z.B. nicht schließen kann, dass der den kram aus dem Feld mit dem Namen "name" lesen soll?

      Kommentar


      • #4
        jetzt z.B. nicht schließen kann, dass der den kram aus dem Feld mit dem Namen "name" lesen soll?
        nein, daß heißt lediglich das, was dort steht.

        du greifst auf einen index zu, der nicht existiert ...
        Du musst mit isset prüfen, ob die Variablen überhaupt vorhanden sind
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Lass dir die übergebenen Daten mal per print_r($_POST); ausgeben.

          Stimmt die Groß-/Kleinschreibung in deinem Query mit den Namen inder Datenbank überein?
          mfg - sagg

          Kommentar


          • #6
            if (isset ($name) == true)
            printf("variable name vorhanden");
            else
            printf("variable nicht vorhanden");
            habsch ma eingebaut und der sagt variable nicht vorhanden, wie ändere ich das?

            mit diesem post dingen kam dann noch

            Array ( [PHPSESSID] => 26f65f296718561d1e8d4817c5094081 [submit] => Abschicken )

            variable nicht vorhanden

            Zuletzt geändert von Magier; 12.02.2006, 16:09.

            Kommentar


            • #7
              Hi,

              PHP-Code:
              <body>
              <form name="guestbook" method="POST" action="guestbook.php">
              <table width="58%" height="176" border="0" align="center">
              <tr> 
              <td width="41%" height="27">Name:</td>
              <td width="59%"><input type="text" name="name" /></td>
              </tr>
              <tr> 
              <td height="24">Email:</td>
              <td><input type="text" name="email" /></td>
              </tr>
              <tr> 
              <td height="24">Homepage:</td>
              <td><input type="text" name="homepage" /></td>
              </tr>
              <tr> 
              <td height="24">Ort:</td>
              <td><input type="text" name="ort" /></td>
              </tr>
              <tr> 
              <td>Text:</td>
              <td rowspan="2"><textarea name="text" cols="30" rows="10"></textarea></td>
              </tr>
              <tr> 
              <td> </td>
              </tr>
              <tr> 
              <td width="41%" height="27"> </td>
              <td width="59%">
              <input type="submit" name="submit" value="Abschicken" />
              </form></td>
              </tr>
              </table>
              <? 
              // Daten in Variablen speichern
              $name = $_POST['name'];
              $email = $_POST['email'];
              $homepage = $_POST['homepage'];
              $text = $_POST['text'];
              $ort = $_POST['ort'];


              // Daten in Tabelle speichern
              $eintrag ="INSERT INTO Gaestebuch (Name, Email, Homepage, Ort, Text) VALUES ('".$name."', '".$email."', '".$homepage."', '".$ort."', '".$text."')";

              // Tabelle in DB eintragen

              $eintragen = mysql_query($eintrag);

              ?>
              <p> </p>
              </body>
              Habe mal ein paar Fehler korrigiert.

              Gruß Thomas

              Kommentar


              • #8
                Also ich hab jetzt mal ein wenig rumprobiert, wenn ich
                $eintrag ="INSERT INTO Gaestebuch (Name, Email, Homepage, Ort, Text) VALUES ('hoi', 'hoi', 'hoi', 'hoi', 'hoi')";
                das nehme, habe ich den Eintrag in der DB...

                Wenn ich nun
                $name = "depp";
                $email = $_POST['email'];
                $homepage = $_POST['homepage'];
                $text = $_POST['text'];
                $ort = $_POST['ort'];
                print_r($_POST);

                sowie
                $eintrag ="INSERT INTO Gaestebuch (Name, Email, Homepage, Ort, Text) VALUES ('".$name."', '".$email."', '".$homepage."', '".$ort."', '".$text."')";

                hab ich auch den depp in meiner DB stehen. Es liegt also irgendwie an der Übergabe von dem Formular in die Variablen....muss ich da bei "action" oder evtl "onsubmit" oder sonstwas machen damit der die irgendwie übernimmt....

                ich dachte der liest die dinger dann hier von aus :
                <td height="24">Ort:</td>
                <td><input type="text" name="ort"></td>
                also das dieses "ort" dann hier stehen muss: $ort = $_POST['ort'];

                Kommentar


                • #9
                  Ohje, wie wär's denn mal mit Grundlagen lernen???
                  PHP-Code:
                  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                  <html>
                  <head>
                  </head>
                  <body>
                  <form name="guestbook" method="POST" action="guestbook.php" >
                  </form>
                  <table width="58%" height="176" border="0" align="center">
                  <tr> 
                  <td width="41%" height="27">Name:</td>
                  <td width="59%"><input type="text" name="name"></td>
                  </tr>
                  <tr> 
                  <td height="24">Email:</td>
                  <td><input type="text" name="email"></td>
                  </tr>
                  <tr> 
                  <td height="24">Homepage:</td>
                  <td><input type="text" name="homepage"></td>
                  </tr>
                  <tr> 
                  <td height="24">Ort:</td>
                  <td><input type="text" name="ort"></td>
                  </tr>
                  <tr> 
                  <td>Text:</td>
                  <td rowspan="2"><textarea name="text" cols="30" rows="10"></textarea> </td>
                  </tr>
                  <tr> 
                  <td> </td>
                  </tr>
                  <tr> 
                  <td width="41%" height="27"> </td>
                  <td width="59%"><form name="submit" method="post" action="" >
                  <input type="submit" name="submit" value="Abschicken" >
                  </form></td>
                  </tr>

                  </table>
                  <?
                  if (isset($_POST['name']))

                     // Daten in Variablen speichern

                     //Diese Umschreiben ist eigentlich Quatsch!!!!!!!!!!!
                     $name     = $_POST["name"];
                     $email    = $_POST["email"];
                     $homepage = $_POST["homepage"];
                     $text     = $_POST["text"];
                     $ort      = $_POST["ort"];

                     // Daten in Tabelle speichern
                     $eintrag ="INSERT INTO Gaestebuch (Name, Email, Homepage, Ort, Text) VALUES ('$name', '$email', '$homepage', '$ort', '$text')";

                     // Tabelle in DB eintragen
                     $eintragen = mysql_query($eintrag) or die ("MySQL-Fehler: " . mysql_error());
                     
                     echo "Datensatz eingetragen";
                  }
                  ?>
                  </body>
                  </html>
                  Gruß
                  Uwe

                  Kommentar


                  • #10
                    Hast du auch meinen HTML Teil übernommen? Du hast nämlich mehr als ein <form> drinnen gehabt. Ich habe die Vermutung, dass das zu einem Fehler führt, obwohl ich selber noch nie mehr als ein form benutzt habe und es deswegen wirklich nur eine Vermutung ist.

                    Kommentar


                    • #11
                      hab jetzt ma deines komplett übernommen, trägt aber nu nix mehr in die db ein und ich hab diesen index fehler....
                      also das von uwe funzt net...das von Alrik auch nicht, ne Kombination daraus auch net....ich weiß uch net weiter....trotzdem thx
                      Zuletzt geändert von Magier; 12.02.2006, 17:35.

                      Kommentar


                      • #12
                        Also, wenn du das Fomular gleich wieder schliesst...
                        <form name="guestbook" method="POST" action="guestbook.php" >
                        </form>
                        ... dann wird er auch nichts übergeben.
                        Es ist zwar möglich mehrere Forms zu verbinden über den Form Name, aber wenn du...

                        <form name="submit" method="post" action="" >
                        <input type="submit" name="submit" value="Abschicken" >
                        </form>
                        ...das Form, dass den Abschicken Button enthält anders nennst... !?
                        Ausserdem stehen deine Felder nicht innerhalb eines definierten Form, also kommen deine Variablen auch nicht bei deinem Script an, somit ist "name" immer lehr und es kommt auch nichts in die Datenbank, am query ist nix auszusetzen. Viel Glück.

                        Ach ja, trotzdem immer die Grundlagen studueren!
                        Der Mensch ist ein Tier das zuviel denkt!

                        Kommentar

                        Lädt...
                        X