Gästebuch fehler
#1
Hallo ich hab mir ein kleines gästebuch gebastelt aber ich hab einen fehler drin:

Da der Fehler

ausgabe.php datei:

[code=php]

<html>
<head>
<STYLE>
body {
background-color:#f5f9fc; font-family: Tahoma; color:#41729E; font-size:10px; }
a:link, A:visited {
text-decoration: underline; color:#41729E; font-size:10px;}
A:active, A:hover {
text-decoration: no; color:#41729E;}
input {
font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF}
#box {
font-family: Verdana; font-size: 10px; color: #000000; border: 0px solid #000000; background-color: #EFEFEF }
#textarea {
font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF }
</style>
</head>
<body>
<p align="center"><a href="guestbook.php">Eintragen</a></p>
<?php
$gb_daten_dat = "data.gb";

if($sent=="1") {
$name=strip_tags($name);
$mail=strip_tags($mail);
$hp=strip_tags($hp);
$betreff=strip_tags($betreff);
$text=strip_tags($text);
if(!$name)$fehler="Bitte geben sie ihren Namen ein";
if(!$mail)$fehler="Bitte geben sie ihre emailaddy ein";
if(!$betreff)$fehler="Bitte geben sie einen Betreff ein";
if(!$text)$fehler="Bitte geben sie eine Mitteilung ein";
if($fehler)echo "<p align="center"><font>$fehler.</font></p>";
}
if($name && $mail && $betreff && $text && !$fehler) {
$text = stripslashes($text);
$filedat = fopen($gb_daten_dat, "r");
$newfiledat = fread ($filedat, filesize ($gb_daten_dat));
$inhalt=implode("", file($gb_daten_dat));
$text = nl2br($text);
$inhalt="$name~$mail~$hp~$betreff~$text|$newfiledat";
$datei=fopen($gb_daten_dat, "w");
fputs($datei, $inhalt);
fclose($datei);
}
?>

<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i="0"; $eintrag[$i]!=""; $i++) {
$element=explode("~",$eintrag[$i]);
?>
<center>
<table bgcolor="#000000" cellpadding="1" cellspacing="1" width="441" align="center" height="127">
<tr bgcolor="#acc6dd">
<td valign="top" height="10" width="86">
<p align="center"><font face="Tahoma" color="#0000FF" size="2">Autor:</td>
<td align="center" valign="top" width="348" height="10">$element[3]</td>
</tr>
<tr bgcolor="#f5f9fc">
<td valign="top" height="127" width="86">$element[0]<a href=mailto:$element[1]><img border="0" src="http://www.klassenhp.brunner-world.de/gb2/email.gif" width="18" height="18"></a>
<p>
<a href=$element[2]>
<img border="0" src="http://www.klassenhp.brunner-world.de/gb2/hp.gif" width="18" height="18"></a>
</td>
<td align="center" valign="top" width="348" height="127">$element[4]</td>

</tr>
</table>
<br>
<br>
</center>
?>
}
?>
</body>
</html>
[/code]

zeile 47 ist </html>, ich weiß das wahrscheinlich irgendwo eine klammer oder ; zuviel ist aber ich finde den nicht ;(

Vll könnt ihr mir ja helfen.

Schon mal Danke im Vorraus
#2
Zitat:Original von brunner
Hallo ich hab mir ein kleines gästebuch gebastelt aber ich hab einen fehler drin:

Da der Fehler

ausgabe.php datei:

[code=php]

<html>
<head>
<STYLE>
body {
background-color:#f5f9fc; font-family: Tahoma; color:#41729E; font-size:10px; }
a:link, A:visited {
text-decoration: underline; color:#41729E; font-size:10px;}
A:active, A:hover {
text-decoration: no; color:#41729E;}
input {
font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF}
#box {
font-family: Verdana; font-size: 10px; color: #000000; border: 0px solid #000000; background-color: #EFEFEF }
#textarea {
font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF }
</style>
</head>
<body>
<p align="center"><a href="guestbook.php">Eintragen</a></p>
<?php
$gb_daten_dat = "data.gb";

if($sent=="1") {
$name=strip_tags($name);
$mail=strip_tags($mail);
$hp=strip_tags($hp);
$betreff=strip_tags($betreff);
$text=strip_tags($text);
if(!$name)$fehler="Bitte geben sie ihren Namen ein";
if(!$mail)$fehler="Bitte geben sie ihre emailaddy ein";
if(!$betreff)$fehler="Bitte geben sie einen Betreff ein";
if(!$text)$fehler="Bitte geben sie eine Mitteilung ein";
if($fehler)echo "<p align="center"><font>$fehler.</font></p>";
}
if($name && $mail && $betreff && $text && !$fehler) {
$text = stripslashes($text);
$filedat = fopen($gb_daten_dat, "r");
$newfiledat = fread ($filedat, filesize ($gb_daten_dat));
$inhalt=implode("", file($gb_daten_dat));
$text = nl2br($text);
$inhalt="$name~$mail~$hp~$betreff~$text|$newfiledat";
$datei=fopen($gb_daten_dat, "w");
fputs($datei, $inhalt);
fclose($datei);
}
?>

<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i="0"; $eintrag[$i]!=""; $i++) {
$element=explode("~",$eintrag[$i]);
?>
<center>
<table bgcolor="#000000" cellpadding="1" cellspacing="1" width="441" align="center" height="127">
<tr bgcolor="#acc6dd">
<td valign="top" height="10" width="86">
<p align="center"><font face="Tahoma" color="#0000FF" size="2">Autor:</td>
<td align="center" valign="top" width="348" height="10">$element[3]</td>
</tr>
<tr bgcolor="#f5f9fc">
<td valign="top" height="127" width="86">$element[0]<a href=mailto:$element[1]><img border="0" src="http://www.klassenhp.brunner-world.de/gb2/email.gif" width="18" height="18"></a>
<p>
<a href=$element[2]>
<img border="0" src="http://www.klassenhp.brunner-world.de/gb2/hp.gif" width="18" height="18"></a>
</td>
<td align="center" valign="top" width="348" height="127">$element[4]</td>

</tr>
</table>
<br>
<br>
</center>
?>
}
?>
</body>
</html>
[/code]

zeile 47 ist </html>, ich weiß das wahrscheinlich irgendwo eine klammer oder ; zuviel ist aber ich finde den nicht ;(

Vll könnt ihr mir ja helfen.

Schon mal Danke im Vorraus

Hi Brunner,

mir scheint da eine geschweifte Klammer zu fehlen... probiere mal:

---schnipp---

<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i="0"; $eintrag[$i]!=""; $i++) {
$element=explode("~",$eintrag[$i]);
}
?>


anstatt:

<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i="0"; $eintrag[$i]!=""; $i++) {
$element=explode("~",$eintrag[$i]);
?>
---schnapp---

Konnte es leider nicht komplett testen, da mir natürlich die anderen files fehlen. Aber teste es einfach mal mit der zusätzlichen geschweiften Klammer an. Viel Glück!
#3
Geht nicht siehe

hier:

hier die aktualiserte ausgabe.php datei:

[code=php]
<html>
<head>
<STYLE>
body {
background-color:#f5f9fc; font-family: Tahoma; color:#41729E; font-size:10px; }
a:link, A:visited {
text-decoration: underline; color:#41729E; font-size:10px;}
A:active, A:hover {
text-decoration: no; color:#41729E;}
input {
font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF}
#box {
font-family: Verdana; font-size: 10px; color: #000000; border: 0px solid #000000; background-color: #EFEFEF }
#textarea {
font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF }
</style>
</head>
<body>
<p align="center"><a href="guestbook.php">Eintragen</a></p>
<?php
$gb_daten_dat = "data.gb";

if($sent=="1") {
$name=strip_tags($name);
$mail=strip_tags($mail);
$hp=strip_tags($hp);
$betreff=strip_tags($betreff);
$text=strip_tags($text);
if(!$name)$fehler="Bitte geben sie ihren Namen ein";
if(!$mail)$fehler="Bitte geben sie ihre emailaddy ein";
if(!$betreff)$fehler="Bitte geben sie einen Betreff ein";
if(!$text)$fehler="Bitte geben sie eine Mitteilung ein";
if($fehler)echo "<p align="center"><font>$fehler.</font></p>";
}
if($name && $mail && $betreff && $text && !$fehler) {
$text = stripslashes($text);
$filedat = fopen($gb_daten_dat, "r");
$newfiledat = fread ($filedat, filesize ($gb_daten_dat));
$inhalt=implode("", file($gb_daten_dat));
$text = nl2br($text);
$inhalt="$name~$mail~$hp~$betreff~$text|$newfiledat";
$datei=fopen($gb_daten_dat, "w");
fputs($datei, $inhalt);
fclose($datei);
}
?>

<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i="0"; $eintrag[$i]!=""; $i++) {
$element=explode("~",$eintrag[$i]);
}
?>
<center>
<table bgcolor="#000000" cellpadding="1" cellspacing="1" width="441" align="center" height="127">
<tr bgcolor="#acc6dd">
<td valign="top" height="10" width="86">
<p align="center"><font face="Tahoma" color="#0000FF" size="2">Autor:</td>
<td align="center" valign="top" width="348" height="10">$element[3]</td>
</tr>
<tr bgcolor="#f5f9fc">
<td valign="top" height="127" width="86">$element[0]<a href=mailto:$element[1]><img border="0" src="http://www.klassenhp.brunner-world.de/gb2/email.gif" width="18" height="18"></a>
<p>
<a href=$element[2]>
<img border="0" src="http://www.klassenhp.brunner-world.de/gb2/hp.gif" width="18" height="18"></a>
</td>
<td align="center" valign="top" width="348" height="127">$element[4]</td>

</tr>
</table>
<br>
<br>
</center>
?>
}
?>
</body>
</html>
[/code]

und hier die guestbook.php

[code=php]
<html>
<head>

<STYLE>
body {
background-color:#f5f9fc; font-family: Tahoma; color:#41729E; font-size:10px; }
a:link, A:visited {
text-decoration: underline; color:#41729E; font-size:10px;}
A:active, A:hover {
text-decoration: no; color:#41729E; }
background-color: #f5f9fc;}
#input {
font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF}
#box {
font-family: Verdana; font-size: 10px; color: #000000; border: 0px solid #000000; background-color: #EFEFEF }
#textarea {
font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF }
</style>
</head>
<body>
<form action="ausgabe.php" method="post">
<p>Name:<br><input name="name" type="text" size="30">
<br>E-Mail:<br><input name="mail" type="text" size="30">
<br>HP:<br><input name="hp" type="text" size="30">
<br>Betreff:<br><input name="Betreff" type="text" size="30">
<br>Nachricht:<br><textarea name="text" rows="5" cols="30"></textarea>
<br><br>
<input type="hidden" value="1" name="sent">
<input type="submit" value="senden">
</form>
</body>
</html>
[/code]
Jetzt hab ich mal alle Dateien hier, vll könnt ihr mir jetzt besser helfen
#4
Hm sorry, PHP ist nicht gerade meine Stärke. Ich hoffe mal, dass sich hier noch jemand findet, der helfen kann.
Ich habe bloß schonmal geschaut, aber Semikolon und geschweifte Klammern sind eigentlich richtig gesetzt.

EDIT: Ne warte mal, da kann was bei der For-Schleife nicht stimmen:

Zitat:$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i="0"; $eintrag[$i]!=""; $i++) {
$element=explode("~",$eintrag[$i]);
}


Also erstmal kannste die Anführungszeichen da bei $i=0 weglassen, aber das eigentliche Problem wird das $eintrag[$i]!="" sein. Weil du musst ja da angeben, bis wohin die Schleife zählen soll, nicht wie lange. Wenn du die Schleife so willst, dass sie bei einer bestimmten Situation abbricht, müsstest du eine while-Schleife nehmen. Aber ich weiß nicht ab das funzt. Besser wäre folgende Lösung:

[code=php]<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i=0; $i<999; $i++)
{
if($eintrag[$i] =="") {
stop(); }
$element=explode("~",$eintrag[$i]);
}
?> [/code]

Musst mal schauen ob das funzt.
#5
ok jetzt kommt der fehler:


Fatal error: Call to undefined function: stop() in /www/htdocs/carl/gb2/ausgabe.php on line 52

[PHP]<html>
<head>
<STYLE>
body {
background-color:#f5f9fc; font-family: Tahoma; color:#41729E; font-size:10px; }
a:link, A:visited {
text-decoration: underline; color:#41729E; font-size:10px;}
A:active, A:hover {
text-decoration: no; color:#41729E;}
input {
font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF}
#box {
font-family: Verdana; font-size: 10px; color: #000000; border: 0px solid #000000; background-color: #EFEFEF }
#textarea {
font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF }
</style>
</head>
<body>
<p align="center"><a href="guestbook.php">Eintragen</a></p>
<?php
$gb_daten_dat = "data.gb";

if($sent=="1") {
$name=strip_tags($name);
$mail=strip_tags($mail);
$hp=strip_tags($hp);
$betreff=strip_tags($betreff);
$text=strip_tags($text);
if(!$name)$fehler="Bitte geben sie ihren Namen ein";
if(!$mail)$fehler="Bitte geben sie ihre emailaddy ein";
if(!$text)$fehler="Bitte geben sie eine Mitteilung ein";
if($fehler)echo "<p align=\"center\"><font>$fehler.</font></p>";
}
if($name && $mail && $betreff && $text && !$fehler) {
$text = stripslashes($text);
$filedat = fopen($gb_daten_dat, "r");
$newfiledat = fread ($filedat, filesize ($gb_daten_dat));
$inhalt=implode("", file($gb_daten_dat));
$text = nl2br($text);
$inhalt="$name~$mail~$hp~$betreff~$text|$newfiledat";
$datei=fopen($gb_daten_dat, "w");
fputs($datei, $inhalt);
fclose($datei);
}
?>

<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i=0; $i<999; $i++)
{
if($eintrag[$i] =="") {
stop(); }
$element=explode("~",$eintrag[$i]);
}
?>
<center>
<table bgcolor="#000000" cellpadding="1" cellspacing="1" width="441" align="center" height="127">
<tr bgcolor="#acc6dd">
<td valign="top" height="10" width="86">
<p align="center"><font face="Tahoma" color="#0000FF" size="2">Autor:</td>
<td align="center" valign="top" width="348" height="10">$element[3]</td>
</tr>
<tr bgcolor="#f5f9fc">
<td valign="top" height="127" width="86">$element[0]<a href=mailto:$element[1]><img border="0" src="http://www.klassenhp.brunner-world.de/gb2/email.gif" width="18" height="18"></a>
<p>
<a href=$element[2]>
<img border="0" src="http://www.klassenhp.brunner-world.de/gb2/hp.gif" width="18" height="18"></a>
</td>
<td align="center" valign="top" width="348" height="127">$element[4]</td>

</tr>
</table>
<br>
<br>
</center>
?>
}
?>
</body>
</html>[PHP]
#6
Hm, komisch, da kennt der die Funktion stop() nicht. Naja, versuchs mal mit break(), ansonsten mit exit(), welches dann zwar das ganze Script beendet aber wenn nix mehr an Beiträgen ausgegeben werden muss, brauch der ja auch nicht weiter"scripten" Wink.

Tobi
#7
bei stop kommt dieser fehler:
Zitat:Fatal error: Call to undefined function: stop() in /www/htdocs/carl/gb2/ausgabe.php on line 52


bei break der:

Parse error: parse error in /www/htdocs/carl/gb2/ausgabe.php on line 52

und bei exit: keiner, aber es wird auch kein eintrag angezeigt siehe hier: P.S. ich hab der dat datei schon chmod rechte gegeben (777)
#8
Ähhhm, okay, dann probier' mal die ganzen Sachen ohne die Funktionsklammern ... also stop; ... break; ... exit; ... denn ich glaube die Funktionsklammern sind falsch ... mein Gott bin ich aus der Übung Rolleyes
#9
wenn du das so gemeint hast:

[PHP<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i=0; $i<999; $i++)
{
if($eintrag[$i] =="")
exit();
$element=explode("~",$eintrag[$i]);
}
?>[/PHP]

dann geht es genauso wenig wie mit if schleife, leider Sad
#10
Eigentlich hab ich's eher so gemeint:

[code=php]<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i=0; $i<999; $i++)
{
if($eintrag[$i] =="") {
stop; }
$element=explode("~",$eintrag[$i]);
}
?>[/code]

... oder so ...

[code=php]<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i=0; $i<999; $i++)
{
if($eintrag[$i] =="") {
break; }
$element=explode("~",$eintrag[$i]);
}
?>[/code]

... oder wenn beides nicht geht so ...

[code=php]<?php
$eintrag=explode("|", implode("", file($gb_daten_dat)));
for($i=0; $i<999; $i++)
{
if($eintrag[$i] =="") {
exit; }
$element=explode("~",$eintrag[$i]);
}
?>[/code]

Hoffe das klappt ...

Tobi


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 9 Gast/Gäste