Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Gästebuch-Skript geht nicht mehr??





Frage

Hallo Leute, kann mir jemand helfen? Mein Skript geht nicht mehr. Ich finde aber keinen Fehler: <?php require("header.php"); echo"<table width='415' align='center' border=0 cellpading=0 cellspacing=0> <tr><td colspan=2> <table width=415 border=0 cellpading=0 cellspacing=0 background='bilder/top.gif'> <tr> <td width=34 valign=top></td> <td width=347 height=25 valign=top><b>Gästebuch</b></td> <td width=34 valign=top></td> </tr> </table> </td></tr>"; if($senden=="1") { $text=htmlspecialchars($text); $text=stripslashes($text); $text=str_replace("\"",""",$text); $text=str_replace("'","'",$text); $ip=$REMOTE_ADDR; $zeit1=time(); mysql_query("insert into gaestebuch (date , name , mail , homepage , text) values ('$zeit1', '$name', '$mail', '$homepage', '$text')"); $empfaenger2="xx"; $absender="xx"; $betreff="Neuer Eintrag im Gästebuch JU"; $message=" Name: $name Mail: $mail Text: $text "; mail($empfaenger2,$betreff,$message,"From: $absender"); } if(!$i) { $i=="0"; } $res=mysql_query("select * from gaestebuch order by date DESC limit ".$i.", 5"); $anzahl=mysql_num_rows($res); $res2=mysql_query("select * from gaestebuch"); $anzahl2=mysql_num_rows($res2); if($vorgang=="eintragen") { if($v=="") { echo "<table width='415' align='center' border=0 cellpading=0 cellspacing=0><tr><td colspan='2' valign='top'>Dieses Gästebuch hat $anzahl2 Einträge</td></tr> <tr><td colspan='2'> </td></tr><form method='post' action='index.php?id=gaestebuch'> <tr><td>Name:</td><td><input type='text' name='name'><input type='hidden' name='senden' value='1'></td></tr> <tr><td>Email:</td><td><input type='text' name='mail'></td></tr> <tr><td>Homepage:</td><td><input type='text' name='homepage' value='http://'></td></tr> <tr><td>Text:</td><td><textarea name='text' rows=7 cols=25></textarea></td></tr> <tr><td></td><td><input type='submit' value='Eintragen'> <input type='reset'></td></tr></table> </form> "; } else { echo "<table width='415' align='center' border=0 cellpading=0 cellspacing=0><tr><td colspan='2' valign='top'>Dieses Gästebuch hat $anzahl2 Einträge</td></tr> <tr><td colspan='2'> </td></tr><form method='post' action='index.php?v=$v&id=gaestebuch'> <tr><td>Name:</td><td><input type='text' name='name'><input type='hidden' name='senden' value='1'></td></tr> <tr><td>Email:</td><td><input type='text' name='mail'></td></tr> <tr><td>Homepage:</td><td><input type='text' name='homepage' value='http://'></td></tr> <tr><td>Text:</td><td><textarea name='text' rows=7 cols=25></textarea></td></tr> <tr><td></td><td><input type='submit' value='Eintragen'> <input type='reset'></td></tr></table> </form> "; } require("footer.php"); exit; } if(mysql_num_rows($res)==0) { echo "<tr><td valign='top'>Keine Gästebucheinträge vorhanden</td></tr>"; } else { if($v=="") { echo "<tr><td valign='top'>Dieses Gästebuch hat $anzahl2 Einträge</td></tr> <tr><td> </td></tr> <tr><td><a href='index.php?id=gaestebuch&vorgang=eintragen'><u>Neuen Eintrag schreiben</u></a></td></tr> <tr><td> </td></tr>"; } else { echo "<tr><td valign='top'>Dieses Gästebuch hat $anzahl2 Einträge</td></tr> <tr><td> </td></tr> <tr><td><a href='index.php?v=$v&id=gaestebuch&vorgang=eintragen'><u>Neuen Eintrag schreiben</u></a></td></tr> <tr><td> </td></tr>"; } while($row=mysql_fetch_array($res)) { echo" <tr><td><b>"; if($row[mail]=="") { echo"$row[name]"; } else { echo"<a href='mailto:$row[mail]'>$row[name]</a>"; } $text=nl2br($row[text]); echo" schrieb am ".date("d.m.Y", $row[date])." um ".date("H:i:s", $row[date]).":</b><br>"; if($row[homepage]=="" or $row[homepage]=="http://") { echo""; } else { echo" (<a href='$row[homepage]' target='_blank'>$row[homepage]</a>)"; } echo" </td></tr> <tr><td>$text</td></tr> <tr><td height='10'></td></tr> "; } #ende while } $g=$i-5; if($i=="0") { echo""; } else { if($v=="") { echo"<tr><td><a href='index.php?id=gaestebuch&i=".$g."'>Die vorigen 5 Einträge ansehen</a></td></tr>"; } else { echo"<tr><td><a href='index.php?v=$v&id=gaestebuch&i=".$g."'>Die vorigen 5 Einträge ansehen</a></td></tr>"; } } $j=$i+5; $aus=mysql_query("select * from gaestebuch limit ".$j.", 1"); $aus2=mysql_num_rows($aus); if($anzahl<"5") { echo""; } elseif($anzahl=="5" && $aus2=="0") { echo""; } else { if($v=="") { echo"<tr><td><a href='index.php?id=gaestebuch&i=".$j."'>Die nächsten 5 Einträge ansehen</a></td></tr>"; } else { echo"<tr><td><a href='index.php?v=$v&id=gaestebuch&i=".$j."'>Die nächsten 5 Einträge ansehen</a></td></tr>"; } } mysql_free_result($res); echo"</table>"; require("footer.php"); ?>

Antwort 1 von MixMax

bei solchen fragen reicht normalerweise die zeile (und vielleicht ein paar davor/danach) in denen der fehler auftritt...
nebenbei wäre ne angabe von einer Fehlermeldung gut.

du hast an einer stelle ein 3faches " was evtl schon der fehler sein kann.

Antwort 2 von sunnyboy

es gibt keine Fehlermeldung!
er zeigt mit nur folgendes an:

Dieses Gästebuch hat 1 Einträge
Neuen Eintrag schreiben
Die vorigen 5 Einträge ansehen

Die letzte Zeile dürfte nicht sein, und den Inhalt sollte er auch anzeigen??



Antwort 3 von MixMax

mhm, scheinbar hast du einen fehler in der sql-query bei dem limit-befehl. Der eignet sich ohnehin nicht da er dann nicht unbedingt die letzten einträge wiedergibt. Mysql macht da folgendes, es selectiert die ersten 5 zeilen die es findet und sortiert nur diese nach datum (also evtl die ältesten 5 Zeilen nur)
Du hast bei Limit $i, 5 angegeben, limit 0 gibt immer schnell ein leeres ergebniss zurück, über eine angabe eines 2. zahlenwertes finde ich nichts in der mysql-docu.

lasse limit weg, dann kannst du auch mysql_num_rows bei der abfrage benutzen und mußt nicht 2 abfragen machen. (Die 2. würde man eh mit select count(id) from... machen)
Wenn du dann die ersten datensätze überspringen möchtest benutze den befehl mysql_data_seek($res, datensatznummer)


Antwort 4 von sunnyboy

THANKS.

Habe es durch Umbennung der Variable i hinbekommen. Bitte frage mich nicht, warum i nicht geht. Das verstehe ich nicht. Habe sonst kein i auf meiner ganzen Seite???

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: