Gästebuch in PHP

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

  • Gästebuch in PHP

    Hallo
    ich habe ein Problem mit den Gästebüchern meiner Kunden:
    Es erscheinen immer wieder leere Einträge, trotz Captcha usw.

    Folgendermaßen ist das Gästebuch aufgebaut:
    Eintragseite mit den Formularfeldern, dabei einige Pflichtfelder, deren Eintrag geprüft wird.
    Dazu der Captcha.
    Über GET_POST auf eine Auswertungsseite. Hier werden die Eintragungen samt Captcha geprüft und bei Fehler oder fehlenden Eintrag an die Fomularseite zurück gewiesen.
    Bei fehlerfreien Eintrag gehen die Daten auf eine MySQL-Datenbank.
    Gleichzeitig eine Mail an den Administrator, der den Eintrag nach Prüfung frei schaltet oder löscht.

    Das Eintrags-Datum wird automatisch gesetzt.

    Nun kommen aber immer wieder Einträge, manchmal auch mehrere am Tag, auf unterschiedliche Kundenseiten, wo nur ein Datum vorhanden ist, alles andere leer.

    Wie ist das möglich?
    Hat jemand ähnliche Erfahrungen gemacht und weiß, wie es abzustellen geht?
    Gruß Hoffi aus Radeberg

  • #2
    code?

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Re: Gästebuch in PHP

      Original geschrieben von kjhofmann
      Über GET_POST ...
      Wie bitte? Was denn nun, über GET oder über POST?

      Code wäre mal interessant wie gesagt, aber zusätzlich: Die Einträge sind leer, obwohl ein Administrator sie vorher freischalten muss? Sind die Einträge denn schon leer wenn sie freigeschaltet werden? Oder werden Sie erst später leer, z.b. beim Freischalten, oder aber noch später?
      Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

      Kommentar


      • #4
        Sorry,
        natürlich $_POST.

        Hier der Code der Auswertung

        DAS WAR DER FALSCHE CODE, Sorry
        Zuletzt geändert von kjhofmann; 03.03.2009, 16:05.
        Gruß Hoffi aus Radeberg

        Kommentar


        • #5
          *lachwech*
          Joa ich würde mal behaupten, dass das Thema gestorben ist, wenn der Code nicht ganz schnell umgebrochen wird. ^^
          MM Newmedia | MeinBlog

          Kommentar


          • #6
            Gibt es einen Trick, wie man es umbricht, bevor man es in dem Forum einfügt?

            Ich habe es so gut es ging umgebrochen.
            Gruß Hoffi aus Radeberg

            Kommentar


            • #7
              indem man auf den "ändern"-buton klickt und dann die zeilenumbrüche setzt.

              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Original geschrieben von kjhofmann
                Ich habe es so gut es ging umgebrochen.
                aber anscheinend nicht den <body>-Teil ...der sähe dann in etwa so aus:

                PHP-Code:
                <?php  
                // Auswertung
                 
                if (empty($fehler)) {   
                $text strip_tags($text);   
                $text htmlentities($text);   
                $text str_replace($nz,"<br>",$text);   
                echo 
                "<p><span class='font2'>Ihre Nachricht wurde verschickt.<br>";
                echo 
                "<b>Wir danken für Ihre Nachricht.<br>";
                echo 
                "Sie erhalten umgehend Antwort von uns.</b></span></p>";
                echo 
                "<p>$text</p>";
                unset(
                $name,$email,$thema,$betreff,$nachricht,$mailing); 
                   
                ?>
                   
                </span></td>                                                   
                 </tr>                                                        
                 <tr>    
                 <td align="center" valign="top" width="418">

                <?
                }
                else {
                   
                echo "<p><span class='font2'><b>Ihre Nachricht konnte nicht versandt werden, weil</b></span>";   
                echo "<span class='font2'><ul>$fehler</ul></span>";   
                echo "<span class='font-rot-fett'>$sperre</span>";   
                echo "</p>"; 
                echo "<hr width='75%'></td></tr><tr><td align='center' valign='middle' width='418'>";
                echo "<form id='2' action='index.php' method='post'>";
                echo "<input type='hidden' name='name' value='$name'>
                      <input type='hidden' name='thema' value='$thema_nr'>
                      <input type='hidden' name='email' value='$email'>
                      <input type='hidden' name='betreff' value='$betreff'>
                      <input type='hidden' name='nachricht' value='$nachricht'>
                      <input type='hidden' name='mailing' value='$mailing'>
                      <input type='submit' name='retour' value='Zurück'>
                </form>
                </td></tr>";
                                                             
                }
                ?>
                </td>
                Allerdings sehe ich hier in Zeile 11 ein </td> sowie eine Zeile drunter in 12 ein</tr> ohne das passende Gegenstück dazu entdecken zu können ...?

                Kommentar


                • #9
                  Nochmal Sorry, ich habe den falschen Code eingebracht, es ist die Auswertung von Kontakt.
                  Hier der richtige Code:

                  PHP-Code:
                  <?php 
                  require_once("../includes/mysql.inc.php"); 
                  if(!
                  $dz) die("Keine Verbindung zu MySQL - Serverproblem. Wird behoben!");  
                  require_once(
                  "../includes/functions.inc.php");
                  require_once(
                  "../includes/datum.inc.php");  

                  // Sperre zurück setzen 
                  $sperre ""
                  $sperr_code "xxx"
                  $pr 1;  

                  //Code Auswerten 
                  if(strtolower($_REQUEST['Code']) == strtolower($_REQUEST['EingegebenerCode']))
                   { 
                  $CodeEingabe "Der Code wurde richtig eingegeben!";
                  $Code "Code ok"
                  } else {
                  $CodeEingabe "Der Code wurde fehlerhaft eingegeben!";
                  $Code ""
                   }

                   
                  //Mailadresse   
                  $mail_adress"kjh@kjh-webdesign.de"
                  $absname "Hofmann";  
                  $nz chr(13).chr(10);  
                  $anzeigen true;   
                  if (empty(
                  $_POST)) $fehler ""

                  /* Nur, wenn $_POST nicht leer ist, sind die übrigen Abfragen und Zuweisungen ueberhaupt sinnvoll. */ 

                  else { 
                  $grenzwert 1000
                  $FreiGabe 0
                  $Thema trim($_POST['Thema']); 
                  $EintragText trim($_POST['EintragText']); 
                  if (
                  strlen($EintragText) > $grenzwert$EintragText substr($EintragText,0,$grenzwert); 
                  if (!
                  strpos($EintragText," ") || strpos($EintragText," " 60))
                  $EintragText wordwrap($EintragText60" "1); 
                  $Autor trim($_POST['Autor']); 
                  $Ort trim($_POST['Ort']); 
                  if (empty(
                  $Ort)) $Ort .= "(Ort nicht genannt)"
                  $Email trim($_POST['Email']); 
                  $MailOffen trim($_POST['MailOffen']); 
                  $WebAdress trim($_POST['WebAdress']); 
                  $lang strlen($EintragText); 

                  //Sperre und Fehlerbehandlung
                  $query "SELECT * FROM sperr_daten ORDER BY id";
                  $result mysql_query($query) or die($query.'<br>'.mysql_error()); 
                  while (
                  $ds mysql_fetch_object($result))  { 
                  id $ds->id
                  $name_sperr $ds->name
                  $e_mailadr_sperr $ds->e_mailadr$betreff_sperr $ds->betreff;   
                  if(
                  $name_sperr == $autor)

                  $pr 2; }  if($betreff_sperr == $betreff){ $pr 2;  

                  if(
                  $e_mailadr_sperr == $email

                  $pr 2;  
                  }    }  
                  switch(
                  $pr

                  case 
                  1
                   if(
                  strlen($autor) < 5$autor "";  
                  if(
                  strlen($betreff) < 4$betreff ""
                   if(
                  check_email($email) == 0$email "";  
                  break; 
                   case 
                  2:  
                  $sperr_code "";
                  $sperre "Dieser Eintrag hat einen Sperrcode";   
                  break; 
                  default:  
                  break;
                    }   

                   
                  //Daten für Mail 
                  $from "From: Gästebuch \<".$Email."\>"
                  $Datum "Datum: ".date("j.n.Y").$nz
                  $zeit "Zeit:".date("H:i").$nz
                  $linie ="-------------------".$nz
                  $FreiSchaltung 'Den Eintrag über ADMIN - "Gästebuch bearbeiten" frei schalten!'
                  $betreff "Gästebuch - ".$absname.": "
                  .$Thema
                  $ztext "Autor: ".$Autor.$nz.
                  "Wohnort: ".$Ort.$nz.$linie.
                  "Mailadresse: ".$Email.$nz.$linie.
                  "Webadresse: ".$WebAdress.$nz.$linie.
                  "Betreff: ".$betreff.$nz.$linie.
                  "Eintrag: ".$EintragText.$nz.$linie.
                  $FreiSchaltung.$nz.$linie
                  $text "Gästebuch: HOFFIS KLEINE WELT"
                  .$nz.$linie.$Datum.$zeit.$linie.$ztext;   
                  if (empty(
                  $Code)) $fehler .= "<li>der Code ist falsch</li>"
                  if (empty(
                  $Thema)) $fehler .= "<li>Bitte geben Sie ein Thema vor.</li>"
                  if (empty(
                  $EintragText)) $fehler .= "<li>Der Eintrag ist leer</li>";
                  if (empty(
                  $Autor)) $fehler .= "<li>Sie haben keinen Namen eingetragen</li>"
                  if (empty(
                  $Email)) $fehler .= "<li>Ihre Mailadresse fehlt oder ist falsch</li>"
                  if (empty(
                  $sperr_code)) $fehler .= "<li>Unerwünschter Kontakt</li>"
                  if (empty(
                  $fehler));
                   } 
                  ?>
                  Weiter Code in <body>

                  PHP-Code:
                  <?php  
                  // Beginn Eintrag 
                  if (!empty($fehler)) 

                  $anzeigen false
                  echo 
                  "<p><span class='font2'><b>Leider konnte Ihr Beitrag nicht angenommen werden:</b></span></p>";
                  echo 
                  "<span class='font2'><ul>$fehler</ul></span>";
                  echo 
                  "</span></div></td></tr><tr><td align='center' valign='middle' width='400'>";
                  echo 
                  "<form id='FormName' action='guestbook_formular.php' method='post' target='_top'>"
                  echo 
                  "<input type='hidden' name='Thema' value='$Thema'>
                  <input type='hidden' name='EintragText' value='
                  $EintragText'>
                  <input type='hidden' name='Autor' value='
                  $Autor'>
                  <input type='hidden' name='Ort' value='
                  $Ort'>
                  <input type='hidden' name='Email' value='
                  $Email'>
                  <input type='hidden' name='WebAdress' value='
                  $WebAdress'>
                  <input type='hidden' name='MailOffen' value='
                  $MailOffen'>
                  <input type='image' src='../images/button/z_eintragformular.gif' alt='zur&uuml;ck'>
                  </form>"
                  ;
                  echo 
                  "</tr><tr><td>";
                    } else { 
                  echo 
                  "<p><span class='font2'>Ihr Beitrag wurde angenommen und wird nach einer Prüfung frei geschaltet.</span></p>"
                  echo 
                  "<a href='guestbook_hoffi.php' target='_top'>
                  <img id='gastbuch_retur1' src=
                  '../images/button/guestbook_hoffi_retur.gif' alt='' name='gastbuch_retur1' border='0'>
                  </a> "
                  ;
                  $SQL "INSERT INTO guestbook_hoffi (Datum, FreiGabe,Autor, Ort, EintragText,Thema,Email,MailOffen,WebAdress) 
                  VALUES (NOW(''), '
                  $FreiGabe','$Autor', '$Ort', 
                  '
                  $EintragText','$Thema', '$Email','$MailOffen','$WebAdress')";
                  mysql_query($SQL$dz);  

                  //Mail senden 
                  mail($mail_adress,$betreff,$text,$from); 
                  if(
                  mysql_affected_rows($dz)==1)  
                  unset(
                  $FreiGabe,$EintragText,$Thema$Autor,$Ort,$Email,$MailOffen,$id); 
                  }
                   
                  ?>
                  Das ist der richtige Code.
                  Gruß Hoffi aus Radeberg

                  Kommentar

                  Lädt...
                  X