servus,
soll fürn kollegen abklären ob das script "sicher" ist und ob ers guten gewissens aufm server laufen lassen kann danek schon mal vorab für eure hilfe ...
<table width="500" align="center">
<tr>
<td height="183"> <br><center>
<img src="bilder/gaestebuch.gif" width="351" height="81"></center>
<form action="gaestebuch.php" method="POST">
<font size="2" face="Arial"> </font>
<table width="400" border="0" cellpadding="5" align="center">
<tr>
<td width="109"><font size="2" face="Arial">Name*:</font></td>
<td width="265">
<div align="left"><font size="2" face="Arial">
<input type="text" name="name" value="<?php if(isset($_POST["name"])) { echo stripslashes($_POST["name"]); } ?>">
</font></div>
</td>
</tr>
<tr>
<td width="109"><font size="2" face="Arial">eMail:</font></td>
<td width="265">
<div align="left"><font size="2" face="Arial">
<input type="text" name="email" value="<?php if(isset($_POST["email"])) { echo $_POST["email"]; } ?>">
</font></div>
</td>
</tr>
<tr>
<td width="109"><font size="2" face="Arial">Homepage:</font></td>
<td width="265">
<div align="left"><font size="2" face="Arial">
<input type="text" name="homepage" value="<?php if(isset($_POST["homepage"])) { echo $_POST["homepage"]; } ?>">
</font></div>
</td>
</tr>
<tr>
<td width="109"><font size="2" face="Arial"><br>
Kommentar*:<br>
<br>
</font></td>
<td width="265">
<div align="left"><font size="2" face="Arial">
<textarea cols="30" rows="4" wrap="physical" name="kommentar"></textarea>
</font></div>
</td>
</tr>
<tr>
<td width="109"> </td>
<td width="265"><font size="2" face="Arial"> <br>
<input type="submit" name="absenden" value="Eintrag veröffentlichen">
</font></td>
</tr>
</table>
<font size="2" face="Arial"><br>
<br>
</font>
</form>
<hr>
<?php
// Dateiname in Variable speichern
$datei="kommentare.txt";
// Abfrage ob das Formular abgesendet wurde ("Eintrag veröffentlichen" angeklickt wurde), wird "true" zurückgegeben wird der darunterstehende Code ausgeführt
if (isset($_POST["absenden"])) {
// Abfrage ob Variable Kommentar gesetzt wurde und Kommentar und Name nicht leer sind
if (isset($_POST["kommentar"]) && $_POST["name"]!="" && $_POST["kommentar"]!="") {
// Datei wird zum lesen schreiben geöffnet
$zeiger=fopen($datei, "r+");
$alt=fread($zeiger, filesize($datei));
$email=$_POST["email"];
$homepage=$_POST["homepage"];
$heute = getdate();
$stunden = $heute["hours"];
$minuten = $heute["minutes"];
$zeit = sprintf("%02d:%02d", $stunden, $minuten);
// Anzahl der Eintraege ermitteln
$inhalt = file($datei,"r");
$anzahleintraege = count($inhalt)+1;
// $br dient dazu einen Zeilenumbruch im Texteditor zu erzeugen.
$br=chr(13).chr(10);
// ASCII-Zeichen für Zeilenumbruch
$zeilenumbruch=chr(13).chr(10);
// IP-Adresse ermitteln
$ip = getenv("REMOTE_ADDR");
// Datum ermitteln und formatieren.
$datum=date("j.n.Y");
// Slashes entfernen und Zeilenumbrüche erhalten.
$kommentar=stripslashes($_POST["kommentar"]);
$name=stripslashes($_POST["name"]);
// Zeilenumbruch in Textdatei in "<br>" umwandeln
$kommentar=str_replace($zeilenumbruch,"<br>",$kommentar);
// Eingabekombinationen
// email gesetzt und sowohl ein @ als auch ein . enthalten, homepage nicht leer, http:// enthalten
if ($_POST["email"]!="" && strstr(($_POST["email"]), "@") && strstr(($_POST["email"]), ".") && $_POST["homepage"]!="" && strstr(($_POST["homepage"]), ".") && strstr(($_POST["homepage"]), "http://")) {
$meinung="<p><b><font face=Arial size=2>$anzahleintraege . $_POST[name]</b> <a href=\"mailto:$email\"><img src=\"bilder/email.gif\" border=0></a> <a href=\"$homepage\" target=\"_blank\"><img src=\"bilder/home.gif\" border=0></a> schrieb am $datum um $zeit Uhr:<br><font size=2><b>IP-Adresse: $ip</b></font><br><br>$kommentar</p></font><hr>$br";
}
// email gesetzt und sowohl ein @ als auch ein . enthalten, homepage nicht leer, http:// nicht enthalten
elseif ($_POST["email"]!="" && strstr(($_POST["email"]), "@") && strstr(($_POST["email"]), ".") && $_POST["homepage"]!="" && strstr(($_POST["homepage"]), ".")) {
$meinung="<p><b><font face=Arial size=2>$anzahleintraege. $_POST[name]</b> <a href=\"mailto:$email\"><img src=\"bilder/email.gif\" border=0></a> <a href=\"http://$homepage\" target=\"_blank\"><img src=\"bilder/home.gif\" border=0></a> schrieb am $datum um $zeit Uhr:<br><font size=2><b>IP-Adresse: $ip</b></font><br><br>$kommentar</p></font><hr>$br";
}
// email gesetzt und sowohl ein @ als auch ein . enthalten, homepage leer
elseif ($_POST["email"]!="" && strstr(($_POST["email"]), "@") && strstr(($_POST["email"]), ".")) {
$meinung="<p><b><font face=Arial size=2>$anzahleintraege. $_POST[name]</b> <a href=\"mailto:$email\"><img src=\"bilder/email.gif\" border=0></a> schrieb am $datum um $zeit Uhr:<br><font size=2><b>IP-Adresse: $ip</b></font><br><br>$kommentar</p></font><hr>$br";
}
// email gesetzt aber entweder ein @ oder ein . fehlt
elseif ($_POST["email"]!="" && strstr(($_POST["email"]), "@") || strstr(($_POST["email"]), ".")) {
echo "<font size=2 face=Arial color=\"red\">Bitte überprüfen Sie Ihre eMail-Adresse auf Richtigkeit!</font><hr>";
exit;
}
// email leer, homepage gesetzt enthält . und http://
elseif (empty($_POST["email"]) && $_POST["homepage"]!="" && strstr(($_POST["homepage"]), ".") && strstr(($_POST["homepage"]), "http://")) {
$meinung="<p><b><font face=Arial size=2>$anzahleintraege. $_POST[name]</b> <a href=\"$homepage\" target=\"_blank\"><img src=\"bilder/home.gif\" border=0></a> schrieb am $datum um $zeit Uhr:<br><font size=2><b>IP-Adresse: $ip</b></font><br><br>$kommentar</p></font><hr>$br";
}
// email leer, homepage gesetzt enthält . aber nicht http://
elseif (empty($_POST["email"]) && $_POST["homepage"]!="" && strstr(($_POST["homepage"]), ".")) {
$meinung="<p><b><font face=Arial size=2>$anzahleintraege. $_POST[name]</b> <a href=\"http://$homepage\" target=\"_blank\"><img src=\"bilder/home.gif\" border=0></a> schrieb am $datum um $zeit Uhr:<br><font size=2><b>IP-Adresse: $ip</b></font><br><br>$kommentar</p></font><hr>$br";
}
// Nur Name und Kommentar gesetzt (Pflichtfelder)
else {
$meinung="<p><b><font face=Arial size=2>$anzahleintraege. $_POST[name]</b> schrieb am $datum um $zeit Uhr:<br><font size=2><b>IP-Adresse: $ip</b></font><br><br>$kommentar</p></font><hr>$br";
}
// unsichtbarer Cursor geht zurück zum Anfang der Textdatei
rewind($zeiger);
// neue Meinung vor alte in Datei schreiben
fputs($zeiger, "$meinung$alt");
// Datei schliessen
fclose($zeiger);
}
// Hinweis --> Eines der Pflichtfelder wurde nicht ausgefüllt (Name, Kommentar)
else {
echo "<font size=2 face=Arial color=\"red\">Bitte füllen Sie alle mit einem * gekennzeichneten Felder aus!</font><hr>";
}
}
// Anzahl der Einträge ermitteln; Anzahl der anzuzeigenden Beiträge pro Seite einstellen
$eintraege = file($datei,"r");
$anzahleintraege = count($eintraege);
$anzahlproseite = 10;
$startpos = 0;
if (isset($HTTP_GET_VARS["Seite"])) {
$startpos = ($HTTP_GET_VARS["Seite"]-1) * $anzahlproseite;
}
$anzahlseiten = ceil($anzahleintraege / $anzahlproseite);
for ($i=$startpos; $i<$startpos+$anzahlproseite && $i<$anzahleintraege; $i++) {
echo "\n$eintraege[$i]";
}
if ($anzahlseiten > 1)
{
echo "\n<br><center>Seite: |";
for ($i = 1; $i<=$anzahlseiten; $i++) {
echo "<font face=Arial size=2>\n<a href='gaestebuch.php?Seite=$i'>$i</a> |</font>";
}
echo"\n\n</center><br>";
}
?>
</td>
</tr>
</table>