Anzeige

Problem mit Gästebuch

Problem mit Gästebuch | PSD-Tutorials.de

Erstellt von mondbine, 10.10.2008.

  1. mondbine

    mondbine Noch nicht viel geschrieben

    Dabei seit:
    05.11.2006
    Beiträge:
    41
    Ort:
    wuppertal
    Problem mit Gästebuch
    huhu,
    kann mir vielleicht jemand sagen, wo hier der fehler liegt?
    Gstebuch


    Code (Text):
    1. <?php
    2. //$_POST['flag']==1, wenn das Formular abgeschickt wurde
    3. if($_POST['flag']==1)
    4. {
    5. //Leerstellen entfernen
    6. $_POST['absender']=trim($_POST['absender']);
    7. $_POST['mail']=trim($_POST['mail']);
    8. $_POST['hp']=trim($_POST['hp']);
    9. $_POST['text']=trim($_POST['text']);
    10. //evtl. vorhandene HTML-Codes entfernen
    11. $_POST['absender']=strip_tags($_POST['absender']);
    12. $_POST['mail']=strip_tags($_POST['mail']);
    13. $_POST['hp']=strip_tags($_POST['hp']);
    14. $_POST['hp']=strip_tags($_POST['text']);
    15. //testen, ob alle Felder ausgefüllt sind
    16. if(!$_POST['absender']){$fehler="Bitte gib Deinen Namen an! <br>";}
    17. if(!$_POST['text']){$fehler="Bitte gib eine Nachricht ein! <br>";}
    18. /*
    19. Wenn Fehler vorhanden, die Textausgabe formatieren und $_POST['flag'] zurücksetzen, damit das Formular erneut angezeigt wird
    20. */
    21. if($fehler)
    22. {
    23. $meldung="".$fehler."";
    24. unset($_POST['flag']);
    25. }
    26. else //wenn alles ok ist, geht es weiter
    27. {
    28. //Zugangsdaten includen
    29. include ("config.inc.php");
    30. //Zeit und Datum ermitteln
    31. $date = date("d.m.Y");
    32. $time = date("H:i");
    33. //sql-String zusammenbauen
    34. $tabellenname="gb";
    35. $sql="INSERT INTO `gb` ( `id` , `date` , `time` , `name` , `mail` , `hp` , `text` )VALUES ('', '$date', '$time', '".$_POST['absender']."', '".$_POST['mail']."', '".$_POST['hp']."', '".$_POST['text']."');" ;
    36. //Verbindung zur Datenbank
    37. $link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd");
    38. mysql_select_db("$db", $link);
    39. mysql_query($sql, $link);
    40. $meldung="Ihre Angaben wurden aufgenommen und werden im Gästebuch eingetragen. <a href=\"gb.php\" target=_self>Weiter</a>";
    41. }
    42. //Ausgeben der Meldung
    43. echo $meldung;
    44. }//Ende $_POST['flag']==1
    45. if(!$_POST['flag'])
    46. {
    47. ?>
    48. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    49. <html>
    50. <head>    
    51. <title>Gästebuch</title>
    52. <link rel="stylesheet" href="style.css">
    53. </head>
    54. <body background="grafiken/HG.jpg">
    55. <h1>Gästebuch</h1>
    56. Ich freu mich immer über einen netten Gästebucheintrag.<br />
    57. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="guestbook">
    58. <input type="hidden" name="flag" value="1">
    59. <table>
    60.  <tr>
    61.   <td>Dein Name:</td>
    62.   <td><input type="text" name="absender" value="<?php echo $_POST['absender']; ?>"></td>
    63.  </tr>                                                                                                            
    64.  <tr>
    65.   <td>Deine E-mailadrese:</td>
    66.   <td><input type="text" name="mail" value="<?php echo $_POST['mail']; ?>"></td>
    67.  </tr>                                                                                                
    68.  <tr>
    69.   <td>URL zu deiner Homepage:</td>
    70.   <td><input type="text" name="hp" value="<?php echo $_POST['hp']; ?>"></td>
    71.  </tr>                                                                                            
    72.  <tr>
    73.   <td>Dein Text:</td>
    74.   <td><textarea name="text" style="height: 150px; width: 429px;"><?php echo $_POST['text']; ?></textarea>
    75.  </td>
    76.  </tr>
    77. </table>
    78. <input type="submit" value="Eintragen">
    79. </form>
    80. <?php
    81. }
    82. ?>
    83.  
    84.  
    85. <?php    
    86.  
    87. //Zugangsdaten includen
    88. include ("config.inc.php");  
    89.  
    90. $anzeigen=5; //Anzahl der Datensätze, die auf einer Seite angezeigt werden sollen
    91. if($_GET['vor']){$start=$_GET['limit']+$anzeigen;}
    92. if($_GET['back']){$start=$_GET['limit']-$anzeigen;}
    93. if(!$start){$start=0;}  
    94.  
    95. //Auslesen der Einträge
    96. $tabellenname="gb";
    97. $sql="SELECT id, date, time, name, mail, hp, text FROM $tabellenname ORDER BY id DESC LIMIT ".$start.", ".$anzeigen;
    98. $link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd");
    99. mysql_select_db("$db", $link);
    100. $result = mysql_query($sql, $link);
    101. for($i=0;$i<mysql_num_rows($result);$i++)
    102. {
    103. $ergebnis[$i]=mysql_fetch_array($result);
    104. }    
    105.          
    106. //Ermitteln, wie viele Einträge vorliegen
    107. $sql1="SELECT COUNT(*) FROM $tabellenname ";
    108. $result1 = mysql_query($sql1, $link);
    109. $max= mysql_result($result1,0,0);
    110.  
    111. //Ausgeben der Einträge  
    112. for($i=0;$i<count($ergebnis);$i++)
    113. {  
    114. $text=nl2br($ergebnis[$i]['text']);
    115.  
    116. echo ("
    117. <br /><br /><table>
    118.   <tr>
    119.     <td>".$ergebnis[$i]['name']." (<a href=\"mailto:".$ergebnis[$i]['mail']."\">Mail</a> | <a href=\"".$ergebnis[$i]['hp']."\" target=_blank>WWW</a>) schrieb am ".$ergebnis[$i]['date']." um ".$ergebnis[$i]['time']." Uhr: </td>
    120.   </tr>
    121.   <tr>
    122.     <td>".$text."</td>
    123.   </tr></table>");
    124.   }  
    125.  
    126.   //Ausgeben der Links vor und zurück    
    127.   echo "<table border=\"0\" width=\"100%\"><tr><td align=\"left\">";
    128.   if($start>=$anzeigen){echo "<a href=\"".$_SERVER['PHP_SELF']."?limit=".$start."&back=1\">Zurück</a>";}
    129. echo "</td><td align=\"right\">";
    130. if($start+$anzeigen<$max-1){echo "<a href=\"".$SERVER['PHP_SELF']."?limit=".$start."&vor=1\">Weiter</a>";}
    131. echo "</tr></table>";    
    132.  
    133. ?>
    134. </body>
    135. </html>
    ich habe es strikt nach der anweisung gemacht.

    ich bin für jede hilfe sehr dankbar.


    liebe grüße
    bine
     
    #1      
  2. CIX88

    CIX88 Aktives Mitglied

    Dabei seit:
    06.04.2006
    Beiträge:
    814
    Geschlecht:
    männlich
    Ort:
    GR
    Problem mit Gästebuch
    AW: Problem mit Gästebuch

    > $link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd");
    Warum schreibst du Variablen in Anführungszeichen ?
    Sieht das cool aus, oder hat es eine besondere Bedeutung ?
    Ne kannst du einfach nur schreiben:
    $link = mysql_connect($dbhost, $dbuser, $dbpasswd);

    Deine Fehlermeldung sieht so aus, als ob dein MySQL-Query nicht stimmt, weshalb mysql_num_rows keine Ausgabe liefert.
    Bitte befasse dich mit PHP und MySQL etwas intensiver.
    Dein Quellcode sieht aus, als ob du einfach nur etwas zusammen getippt hast, ohne dabei zu verstehen was dort eigentlich passiert :)
     
    #2      
x
×
×