Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Wo ist der Fehler in meinem code? gästebuch Antworten
Wo ist der Fehler in meinem code? gästebuch

xeo
Pixelschubser


Beiträge: 22


HI!
findet jeman den fehler in meinem code? das ist kein lustiges rätselraten! ich bin am verzweifeln. ich kann net wirklich php.
hab eine shoutbox zum gästebuch umgeschrieben. mit txt dateien.
testen könnt ihr unter http://kuchagrafix.redstar-software.de/nebraska/book.php
wäre schön wenn ihr mir helfen würdet! ich find den fehler nicht!
die schreibrechte hab ich schon richtig verteilt!

bei mir bringt er folgende fehlermeldung:
Parse error: parse error, unexpected $ in /www/htdocs/kucha/nebraska/book.php on line 130

zeile 130: </html>


hier der wesentliche php code:

<?php
//
// Speichervorgang
//

$logfile = "gaestebuuch.txt"; // Datenbank, in "gaestebuuch.txt" werden die Einträge gespeichert

if(isset($HTTP_POST_VARS['Name']) && isset($HTTP_POST_VARS['Nachricht']) && isset($HTTP_POST_VARS['email']) && isset($HTTP_POST_VARS['homepage']))
{
$HTTP_POST_VARS['Name'] = str_replace('||', '||', stripslashes($HTTP_POST_VARS['Name'])); // die ||-Zeichen werden durch die HTML-Zeichen ausgetauscht und backslashes () werden entfernt
$HTTP_POST_VARS['Nachricht'] = str_replace('||', '||', stripslashes($HTTP_POST_VARS['Nachricht']));
$HTTP_POST_VARS['email'] = str_replace('||', '||', stripslashes($HTTP_POST_VARS['email']));
$HTTP_POST_VARS['homepage'] = str_replace('||', '||', stripslashes($HTTP_POST_VARS['homepage']));

$fp = fopen($logfile, "a+"); // die Logfile wird geöffnet zum beschreiben
flock($fp, 2); // die Logfile wird abgeriegelt
$shout = fwrite($fp, $HTTP_POST_VARS['Name'].'||'.$HTTP_POST_VARS['Nachricht'].'||'.$HTTP_POST_VARS['email'].'||'.$HTTP_POST_VARS['homepage']."rn"); // der Neue Eintrag wird ans Ende angehängt
flock($fp, 3); // die Logfile wird wieder entriegelt
fclose($fp); // Datei wird geschlossen

if($shout) { header("Location: ".$HTTP_SERVER_VARS['PHP_SELF']); } // Weiterleitung
}
?>

<form method="post" action="<?php echo $HTTP_SERVER_VARS['PHP_SELF']; ?>">
<input type="text" name="Name" onfocus="if (this.value=='Name')this.value=''" value="Name" onblur="if(this.value=='')this.value='Name';" style="background-color:#DFE0E4; color:#506F97;bordercolor:#506F97; font-family: Verdana; font-size:10pt; border:0; "><br>

<input type="text" name="email" onfocus="if (this.value=='email')this.value=''" value="email" onblur="if(this.value=='')this.value='email';" style="background-color:#DFE0E4; color:#506F97;bordercolor:#506F97; font-family: Verdana; font-size:10pt; border:0; "><br>
<input type="text" name="homepage" onfocus="if (this.value=='homepage')this.value=''" value="homepage" onblur="if(this.value=='')this.value='homepage';" style="background-color:#DFE0E4; color:#506F97;bordercolor:#506F97; font-family: Verdana; font-size:10pt; border:0; "><br>

<input type="text" name="Nachricht" onfocus="if (this.value=='Nachricht')this.value=''" value="Nachricht" onblur="if(this.value=='')this.value='Nachricht';" style="background-color:#DFE0E4; color:#506F97;bordercolor:#506F97; font-family: Verdana; font-size:10pt; border:0; "><br>
<input type="submit" value="Eintragen" style="background-color:#DFE0E4; color:#506F97;bordercolor:#506F97; font-family: Verdana; font-size:10pt; border:0; ">
</form>

<?php
//
// Ausgabe der Einträge
//

$logfile = "gaestebuuch.txt"; // Datenbank, in "gaestebuuch.txt" werden die Einträge gespeichert
$amount = 8; // Anzahl der zu zeigenden Einträge

$data = @file($logfile); // Einträge werden in ein Array eingelesen
$dbamount = count($data); // Einträge werden gezählt
$data = array_reverse($data); // Array umdrehen
for($i=0; $i<$amount; $i++)
{
if(trim($data[$i])!="") {
$splittet = explode('||', $data[$i]); // Die Einträge werden bei "||" getrennt

echo "<table width="100%" border="0px" height="100%"cellspacing="0" cellpadding="0" leftmargin="0" marginheight="0" marginwidth="0">";
echo "<tr><td align="left" valign="top" bgcolor="3a3a3a"><b><p style="padding-left:5px"> <a href='mailto:". htmlspecialchars($splittet[1]) .'>". htmlspecialchars($splittet[0]) ."</a> - ". htmlspecialchars($splittet[2]) ." <br></b>";
echo "</td></tr>";
echo "<tr><td align="left" valign="top" bgcolor="484848"><p style="padding-left:5px">". htmlspecialchars($splittet[3]) ."</p></td></tr>";
echo "</table><br>";
}
}
?>




---
just graphics @ kucha
www.kuchagrafix.de.vu

  Profil   E-Mail   Website   Editieren   Zitieren

Andreas S
Otto-Normal-Poster


Beiträge: 81


Es fehlen Backslashes vor den Quotes, und irgendwo, ich glaub bei 'mailto:', feht ein auch ein Anführungszeichen.
So sollte es klappen:

1: 
2: 
3: 
4: 
5:
echo "<table width="100%" border="0px" height="100%" cellspacing="0" cellpadding="0" leftmargin="0" marginheight="0" marginwidth="0">";
echo "<tr><td align="left" valign="top" bgcolor="3a3a3a"><b><p style="padding-left:5px"> <a href="mailto:". htmlspecialchars($splittet[1]) ."">". htmlspecialchars($splittet[0]) ."</a> - ". htmlspecialchars($splittet[2]) ." <br></b>";
echo "</td></tr>";
echo "<tr><td align="left" valign="top" bgcolor="484848"><p style="padding-left:5px">". htmlspecialchars($splittet[3]) ."</p></td></tr>";
echo "</table><br>";

  Profil   Editieren   Zitieren

Andreas S
Otto-Normal-Poster


Beiträge: 81


Hmm, der Parser von diesem Forum entfernt einfach die Backslashes.
Also dein Code war deshalb völlich in Ordnung, nur ein Anführungszeichen fehlte vor dem einfachen Anführungszeichen:

1:
<a href='mailto:". htmlspecialchars($splittet[1]) .[b]"'[/b]>". htmlspecialchars($splittet[0]) ."</a>

Diese Nachricht wurde geändert von: Andreas S
  Profil   Editieren   Zitieren

xeo
Pixelschubser


Beiträge: 22


hallo!
danke erstmal für die hilfe.
hab noch so einiges geändert.
des geht jetzt zum teil. aber nur zum teil.
http://kuchagrafix.redstar-software.de/nebraska/book.php
hab die schreibrechte eignetlich verteilt
es kommt aber immer noch ein fehler
gruß
hansi

---
just graphics @ kucha
www.kuchagrafix.de.vu

  Profil   E-Mail   Website   Editieren   Zitieren

Andreas S
Otto-Normal-Poster


Beiträge: 81


Das Script leitet einfach nicht auf die richtige Seite weiter. Allerdings kann ich keinen Fehler hier feststellen:
1: 
2:
if($shout) { header("Location: ".$HTTP_SERVER_VARS['PHP_SELF']); } // Weiterleitung


Änder es mal so um:
1: 
2: 
3:
if($shout) { header("Location: ./book.php"); } // Weiterleitung


  Profil   Editieren   Zitieren

xeo
Pixelschubser


Beiträge: 22


Du bist der KING!
es geht!
siehe: http://kuchagrafix.redstar-software.de/nebraska/book.php

heute setz ich noch alles in richtige reihenfolge (email,homepage text...) und noch ein paar tabellen rum. und fertig.

vielen dank!!!!

---
just graphics @ kucha
www.kuchagrafix.de.vu

  Profil   E-Mail   Website   Editieren   Zitieren
 

Antworten
Nach oben