Gästebuch - total auf dem Schlauch

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

  • Gästebuch - total auf dem Schlauch

    Hallo, ich stehe gerade irgendwie total auf dem Schlauch.
    Möchte nur ein kleines GB script schreiben, aber die Einträge sind jeweils immer 2x drin. Wo liegt hier der Fehler, den ich patu nicht finden möchte??
    Habe diesen Code hier:
    PHP-Code:
    <?php
    require ('include/connect.php');
    require (
    'include/global.php');
    if(
    $do==add)
    {
        
    $abfrage="INSERT INTO ".$prefix."_fl_guestbook SET timestamp='$stamp', datum='$datum', name='$name', 
    email='
    $email', icq='$icq', hp='$hp', kommentar='$kommentar'";      
           
    mysql_query($abfrage);
              echo
    "<script>alert('Danke für den Eintrag in unser Gästebuch!');
     location.href = \"index.php?area=guestbook\"; </script>"
    ;
      }
    else
    {
    ?>
    <form action="index.php" method="get">
    <input type="hidden" name="area" value="guestbook">
    <input type="hidden" name="do" value="add">
    <table border="0" cellpadding="0" cellspacing="2" width="449" class="gt2">
      <tr>
        <td width="69">Name:</td>
        <td width="151"><input type="text" size="25" name="name" class="feld"></td>
        <td width="221" rowspan="4">&nbsp;<textarea rows="6" name="kommentar" cols="30" class="feld"></textarea></td>
      </tr>
      <tr>
        <td width="69">eMail:</td>
        <td width="151"><input type="text" size="25" name="email" class="feld"></td>
      </tr>
      <tr>
        <td width="69">icq#:</td>
        <td width="151"><input type="text" size="25" name="icq" class="feld"></td>
      </tr>
      <tr>
        <td width="69">Homepage:</td>
        <td width="151"><input type="text" size="25" name="hp" value="http://" class="feld"></td>
      </tr>
      <tr>
        <td colspan="3">
        <p align="center"><br>
        <input class="button" type="submit" value="eintragen">&nbsp;&nbsp;
        <input class="button" type="reset" value="reset"></td>
      </tr>
    </table>
    </form>

    <?php
    }
    ?>
    Danke euch für die baldige Hilfe!
    Grüße,
    akrab
    Zuletzt geändert von akrab; 02.02.2006, 18:15.

  • #2
    Was sagt das error_reporting ?
    PHP-Code:
    if($do==add)
    //ich denke du meinst dies
    if($do=='add'
    Mich wundert es ehrlich gesagt, dass du überhaupt einen Eintrag hast

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Also da IF keine Schleife ist, kann es an dem von dir geposteten Code nicht liegen.

      Würde ich mal schlicht und einfach behaupten...


      Imho solltest du das "add" in der Abfrage in Anführungszeichen setzen.
      Und die beiden require kannst du auch mit in die IF-Abfrage packen, da diese bei dem HTMl-Code ja nicht benötigt werden, oder?
      mfg - sagg

      Kommentar


      • #4
        Moin,

        ist add eine Konstante oder ein String? Ich vermute mal ein String, also schnell die Hochkommata setzen.
        Warum die Einträge zwei mal erzeugt werden kann ich an dem Code nicht erkennen.

        Gruß Thomas

        Kommentar


        • #5
          code umbrechen, bitte.

          Kommentar


          • #6
            habe den code umgebrochen und in add in 'add' gewandelt. Die Einträge sind immernoch doppelt, wenn sie abgeschickt werden.

            Ich versteh einfach nicht, dass diese Einträge doppelt kommen...

            Kommentar


            • #7
              Mach mal folgendes:

              Ausschnitt:
              PHP-Code:
              if($do=='add')
              {
                   unset(
              $do);
               ...
               ...
               ... 

              Kommentar


              • #8
                Hm, wie schon gesagt, eine IF-Abfrage ist keine Schleife, deswegen schätze ich mal, dass das unset nichts bewirkt, zumindest nicht an dieser Stelle.

                Was steht denn in den beiden includeten Dateien?
                Wäre es möglich das du den selben Query in einer der beiden anderen Dateien schon mit drinne hast?
                Was passiert, wenn du den Query komplett auskommentierst?
                Wenn dann gar nichts passiert, findet irgendwo ein reload der Seite statt, wenn was passiert, hast du ihn doppelt.


                *edit*
                Wieso wechselt mein PC ständig zum englischen Tastaturlayout. *nerv*
                Gleich ma löschen..
                mfg - sagg

                Kommentar


                • #9
                  Das Unset war ein Vorschlag gegen eine eventuell vorhandene Schleife irgendwo die uns vorenthalten wird.

                  Ich vermute, der Fehler liegt in den include Dateien.

                  Kommentar


                  • #10
                    Hallo, hab die global.php auskommentiert, ist für dieses skript nicht so relevant.
                    Sieht nun so aus
                    PHP-Code:
                    <?php
                    require ('include/connect.php');
                    //require ('include/global.php');
                    if($do=='add')
                    {
                        
                    $abfrage="INSERT INTO ".$prefix."_fl_guestbook SET timestamp='$stamp', datum='$datum', 
                    name='
                    $name', email='$email', icq='$icq', hp='$hp', kommentar='$kommentar'";      
                           
                    mysql_query($abfrage);
                              echo
                    "<script>alert('Danke für den Eintrag in unser Gästebuch!'); 
                    location.href = \"index.php?area=guestbook\"; </script>"
                    ;
                      }
                    else
                    {
                    ?>
                    <form action="index.php" method="get">
                    <input type="hidden" name="area" value="guestbook">
                    <input type="hidden" name="do" value="add">
                    <table border="0" cellpadding="0" cellspacing="2" width="449" class="gt2">
                      <tr>
                        <td width="69">Name:</td>
                        <td width="151"><input type="text" size="25" name="name" class="feld"></td>
                        <td width="221" rowspan="4">&nbsp;<textarea rows="6" name="kommentar" cols="30" class="feld"></textarea></td>
                      </tr>
                      <tr>
                        <td width="69">eMail:</td>
                        <td width="151"><input type="text" size="25" name="email" class="feld"></td>
                      </tr>
                      <tr>
                        <td width="69">icq#:</td>
                        <td width="151"><input type="text" size="25" name="icq" class="feld"></td>
                      </tr>
                      <tr>
                        <td width="69">Homepage:</td>
                        <td width="151"><input type="text" size="25" name="hp" value="http://" class="feld"></td>
                      </tr>
                      <tr>
                        <td colspan="3">
                        <p align="center"><br>
                        <input class="button" type="submit" value="eintragen">&nbsp;&nbsp;
                        <input class="button" type="reset" value="reset"></td>
                      </tr>
                    </table>
                    </form>

                    <?php
                    }
                    ?>
                    Das ist die komplette datei!

                    Hier noch der Inhalt der include.php:

                    PHP-Code:
                    <?php
                    $dbHost 
                    "localhost";
                    $dbUser "root";
                    $dbPass "*****";
                    $dbName "******";
                    $prefix "2";
                    ?>
                    Da wird ja nichts doppelt ausgeführt und einen reload sehen ich auch nicht.

                    Kann es an der mysql tabelle liegen??

                    grüße,
                    akrab

                    Kommentar


                    • #11
                      Original geschrieben von Alrik
                      Das Unset war ein Vorschlag gegen eine eventuell vorhandene Schleife irgendwo die uns vorenthalten wird.
                      Also ich gehe mal stark davon aus, dass das der gesamte Code ist, und nicht irgendeine gekürzte Version.
                      Würde das sonst nicht an Sinnlosigkeit grenzen?

                      Wobei ich auch denke, das es an einer der anderen beiden liegen muss, so wie der Code hier steht ist er ja "sauber".
                      Werden wir ja hoffentich bald sehen.
                      mfg - sagg

                      Kommentar


                      • #12
                        Ja, der Code ist so schon komplett. Alles, was in meinem letzten Post steht.

                        Ich verstehe echt nicht wieso das doppelt kommt...

                        Kommentar


                        • #13
                          Hm, verstehe ich absolut nicht.
                          Probier mal diesen Query.


                          PHP-Code:
                          $abfrage="INSERT INTO ".$prefix."_fl_guestbook (`timestamp`, `datum`, `name`, `email`, `icq`, `hp`, `kommentar`) 
                          VALUES ('"
                          .$stamp."', '".$datum."', '".$name."', '".$email."', '".$icq."', '".$hp."', '".$kommentar."')"
                          mfg - sagg

                          Kommentar


                          • #14
                            Ich habs.
                            Muss im Form Tag POST statt GET verwenden...

                            Jetzt wird es nur einmal gesendet bzw. eingetragen. Kann mir auch kurz jemand erklären wieso? Hat er durch get die Variablen 2 mal im Speicher und daher der Doppeleintrag?

                            Grüße,
                            akrab

                            Kommentar


                            • #15
                              Memo an mich: HTML Code ebenfalls lesen...*schreib*

                              Kommentar

                              Lädt...
                              X