Hi alle zusammen,
habe ein Gästebuch geschrieben welches net funktioniert! Unzwar gebe ich die Nachricht, namen und alles ein und wenn ich auf senden klicke müsste der ja weitermachen... macht er aba net! Hier die Quelltexte + Page:
Buch_eintrag.php
Code
<style type='text/css'>
<!--
@import url(main.css);
-->
</style>
<table CLASS='body_navi' cellpadding='0' cellspacing='0' width='640' height='800'>
<tr>
<td valign='top'>
<table CLASS='body_navi' cellpadding='0' cellspacing='0' width='8' height='800'>
<tr>
<td align='left' valign='top' cellpadding='0' cellspacing='0'>
[img]ecke_zwischenstufe_3.png[/img]
</td>
<td valign='top' cellpadding='0' cellspacing='0' width='632' height='8'>
[img]schatten_banner.png[/img]
</td>
</tr>
<tr>
<td align='left' valign='top' cellpadding='0' cellspacing='0'>
[img]schatten_rechts.png[/img]
</td>
<td valign='top' align='center'>
<form method='post' action='buch_funktionen.php'>
<table width='600' align='center'>
<tr align='left'>
<td class='latestnews' colspan='6'>Kommentar</td>
</tr>
<tr>
<td colspan='6' class='autor' height='10'>
<div align='right'></div>
</td>
</tr>
<tr>
<td valign='top' width='9'>
<div class='morelink'>»</div>
</td>
<td valign='top' class='blocksatz' width='40'>Name: </td>
<td valign='top' class='blocksatz' width='200'>
<input type='text' name='fname' class='contentblack' size='40' maxlength='60'>
</td>
<td valign='top' class='morelink' width='6'>»</td>
<td valign='top' class='blocksatz' width='40'>Rubrik:</td>
<td valign='top' class='blocksatz' width='150'>
<select name='fbetreff' class='contentblack'>
<option value='Kritik'>Kritik</option>
<option value='Anregung'>Anregung</option>
<option value='Lob'>Lob</option>
<option value='Allgemein'>Allgemein</option>
</select>
</td>
</tr>
<tr>
<td valign='top' width='9'>
<div class='morelink'>»</div>
</td>
<td valign='top' class='blocksatz' width='40'>E-mail: </td>
<td valign='top' class='blocksatz' colspan='4'>
<input type='text' name='femail' class='contentblack' size='40' maxlength='60'>
</td>
</tr>
<tr>
<td valign='top' width='9'>
<div class='morelink'>»</div>
</td>
<td valign='top' class='blocksatz' width='40'>Inhalt: </td>
<td valign='top' class='blocksatz' colspan='4'>
<textarea name='finhalt' class='contentblack' cols='110' rows='8' wrap='PHYSICAL'></textarea>
</td>
</tr>
<tr>
<td valign='top' width='9'>
<div class='morelink'>»</div>
</td>
<td valign='top' class='blocksatz' width='40'>Home: </td>
<td valign='top' class='blocksatz' colspan='4'>
<input type='text' name='fhome' class='contentblack' size='40' maxlength='60'>
</td>
</tr>
<tr>
<td valign='top' width='9'>
<div class='morelink'></div>
</td>
<td valign='top' class='blocksatz' width='40'></td>
<td valign='top' class='blocksatz' colspan='4'>
<input type='submit' name='senden' value='senden' class='contentblack'>
<input type='reset' name='losch' value='Löschen' class='contentblack'>
</td>
</tr>
<tr>
<td colspan='6' class='autor' height='10'>
<div align='right'></div>
</td>
</tr>
<tr>
<td colspan='6' class='latestnews'></td>
</tr>
</table>
</form>
<table width='104' align='center'>
<tr align='center'>
<td valign='top' align='center'>
<p align='center'>[url='buch.php']Beiträge Lesen[/url]</p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
Alles anzeigen
buch_funktionen.php
PHP
<?php
//Stammen die Daten vom Formular?
if (isset($_POST["senden"])) {
//Textfeldeingaben Filtern
function daten_reiniger($inhalt) {
if (!empty($inhalt)) {
//HTML- und PHP-Code entfernen.
$inhalt = strip_tags($inhalt);
//Umlaute und Sonderzeichen in
//HTML-Schreibweise umwandeln
$inhalt = htmlspecialchars($inhalt);
//Entfernt überflüssige Zeichen
//Anfang und Ende einer Zeichenkette
$inhalt = trim($inhalt);
//Backslashes entfernen
$inhalt = stripslashes($inhalt);
}
return $inhalt;
}
//Schreibarbeit durch Umwandlung ersparen
foreach ($_POST as $key=>$element) {
//Dynamische Variablen erzeugen, wie g_fname, etc.
//und die Eingaben Filtern
${"g_".$key} = daten_reiniger($element);
}
//Anfang - Prüfung
//Kein richtiger Name eingegeben
if(strlen($g_fname)<3){
$error_msg="Ihr Name muss mehr als 3 Buchstaben haben.";
}
//Kein Eintrag vorgenommen
if(strlen($g_finhalt)<3){
$error_msg.="
Zu wenig Zeichen als Inhalt.";
}
//Mailadresse korrekt angegeben - entsprechende Formatierung vornehmen
if(ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",$g_femail)){
$format_femail="<a href=mailto:" . $g_femail . ">E-Mail</a>";
} else {
$error_msg.="
Fehlerhafte E-mail!
";
}
//Es wurde auch eine Homepageadresse angegeben - entsprechende Formatierung vornehmen
if(ereg("^([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",$g_fhome)){
//http:// fehlt in der Angabe der Adresse - hier ergänzen
if(!ereg("^http:////",$g_fhome)){
$g_fhome="http://" . $g_fhome;
}
$g_fhome="[url=' . $g_fhome . ']Website[/url]";
} else {
$g_fhome="[url=' . $g_fhome . ']Website[/url]";
}
//Ende - Prüfung
//Prüfen ob Fehler vorgekommen sind!
if($error_msg){
echo "
<link rel='stylesheet' href='main.css' type='text/css'>
<table width='300' align='center'>
<tr>
<td align='center' class='latestnews' colspan='3'>- FEHLER -
$error_msg</p>
[url='javascript:history.back()']Zurück[/url]
Eintrag konnte nicht angelegt werden.
Versuchen Sie es bitte erneut!
</td>
</tr>
</table>
";
} else {
$g_fdatum=date("Y-m-d H:i:s");
$eintrag="
<table width='400' align='center'>
<tr align='left'>
<td class='latestnews' colspan='2'>$g_fbetreff</td>
</tr>
<tr>
<td colspan='2' class='autor'>
<div align='right'>$g_fdatum</div>
</td>
</tr>
<tr>
<td valign='top' width='13'>
<div class='morelink'>»</div>
</td>
<td valign='top' class='blocksatz' width='375'>". nl2br($g_finhalt) ."</td>
</tr>
<tr>
<td colspan='2' class='contentblack'>
<div align='right'>$g_fname</div>
</td>
</tr>
<tr>
<td valign='top' colspan='2'>
<table width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td class='autor'>
<div align='left'>[ $format_femail ]</div>
</td>
<td class='autor'>
<div align='right'>[ $g_fhome ]</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan='2' class='latestnews'></td>
</tr>
</table>
";
include("funktionen.php");
}
} else {
echo "
<link rel='stylesheet' href='main.css' type='text/css'>
<table width='300' align='center'>
<tr>
<td align='center' class='latestnews' colspan='3'>- FEHLER -
Eintrag konnte nicht angelegt werden.
Versuchen Sie es bitte erneut!
[url='buch_eintrag.php']Zurück[/url]</td>
</tr>
</table>
";
}
?>
Alles anzeigen
funktionen.php
Code
<?
/////////////////////////////////////////
// Gästebuch + Reloadsperre v1.0
/////////////////////////////////////////
// 0=keine Reloadsperre, 1=Reloadsperre
$aktiv = 1;
// Zeit der Reloadsperre in Minuten
$zeit = 5;
// IP-Datei
$ipdatei = "ips.txt";
// Buchdatei
$datei = "buch_inhalt.htm";
/////////////////////////////////////////
// IP-Reloadsperre
/////////////////////////////////////////
function pruf_IP($rem_addr) {
global $ipdatei,$zeit;
@$ip_array = file($ipdatei);
$reload_dat = fopen($ipdatei,"w");
$this_time = time();
for ($i=0; $i<count($ip_array); $i++) {
list($ip_addr,$time_stamp) = explode("|",$ip_array[$i]);
if ($this_time < ($time_stamp+60*$zeit)) {
if ($ip_addr == $rem_addr) {
$gefunden=1;
}
else {
fwrite($reload_dat,"$ip_addr|$time_stamp");
}
}
}
fwrite($reload_dat,"$rem_addr|$this_time\n");
fclose($reload_dat);
return ($gefunden==1) ? 1 : 0;
}
/////////////////////////////////////////
// Abfrage
/////////////////////////////////////////
if (isset($_POST["senden"])) {
if (file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) {
// Falls die Datei existiert, wird sie ausgelesen und
// die enthaltenen Daten werden durch den neuen Beitrag
// ergänzt
$fp=fopen($datei,"r+");
$daten=fread($fp,filesize($datei));
rewind($fp);
flock($fp,2);
fputs($fp,"$eintrag \n $daten");
flock($fp,3);
fclose($fp);
include("autorespond.php");
header("Location:buch.php");
}else if (!file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) {
// Die Datei buch_inhalt.htm existiert nicht, sie wird
// neu angelegt und mit dem aktuellen Beitrag gespeichert.
$fp=fopen($datei,"w");
fputs($fp,"$eintrag \n");
fclose($fp);
include("autorespond.php");
header("Location:buch.php");
} else {
// Die Datei existiert zwar, jedoch handelt
// es sich wahrscheinlich um den gleichen Besucher
header("Location:buch.php");
}
} else {
echo "
<link rel='stylesheet' href='main.css' type='text/css'>
<table width='300' align='center'>
<tr>
<td align='center' class='latestnews' colspan='3'>- FEHLER -
Eintrag konnte nicht angelegt werden.
Versuchen Sie es bitte erneut!
[url='buch_eintrag.php']Zurück[/url]</td>
</tr>
</html>
";
}
?>
Alles anzeigen
autorespond.php
Code
<?
/////////////////////////////////////////
// Gästebuch + Reloadsperre v1.0
/////////////////////////////////////////
// 0=keine Reloadsperre, 1=Reloadsperre
$aktiv = 1;
// Zeit der Reloadsperre in Minuten
$zeit = 5;
// IP-Datei
$ipdatei = "ips.txt";
// Buchdatei
$datei = "buch_inhalt.htm";
/////////////////////////////////////////
// IP-Reloadsperre
/////////////////////////////////////////
function pruf_IP($rem_addr) {
global $ipdatei,$zeit;
@$ip_array = file($ipdatei);
$reload_dat = fopen($ipdatei,"w");
$this_time = time();
for ($i=0; $i<count($ip_array); $i++) {
list($ip_addr,$time_stamp) = explode("|",$ip_array[$i]);
if ($this_time < ($time_stamp+60*$zeit)) {
if ($ip_addr == $rem_addr) {
$gefunden=1;
}
else {
fwrite($reload_dat,"$ip_addr|$time_stamp");
}
}
}
fwrite($reload_dat,"$rem_addr|$this_time\n");
fclose($reload_dat);
return ($gefunden==1) ? 1 : 0;
}
/////////////////////////////////////////
// Abfrage
/////////////////////////////////////////
if (isset($_POST["senden"])) {
if (file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) {
// Falls die Datei existiert, wird sie ausgelesen und
// die enthaltenen Daten werden durch den neuen Beitrag
// ergänzt
$fp=fopen($datei,"r+");
$daten=fread($fp,filesize($datei));
rewind($fp);
flock($fp,2);
fputs($fp,"$eintrag \n $daten");
flock($fp,3);
fclose($fp);
include("autorespond.php");
header("Location:buch.php");
}else if (!file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) {
// Die Datei buch_inhalt.htm existiert nicht, sie wird
// neu angelegt und mit dem aktuellen Beitrag gespeichert.
$fp=fopen($datei,"w");
fputs($fp,"$eintrag \n");
fclose($fp);
include("autorespond.php");
header("Location:buch.php");
} else {
// Die Datei existiert zwar, jedoch handelt
// es sich wahrscheinlich um den gleichen Besucher
header("Location:buch.php");
}
} else {
echo "
<link rel='stylesheet' href='main.css' type='text/css'>
<table width='300' align='center'>
<tr>
<td align='center' class='latestnews' colspan='3'>- FEHLER -
Eintrag konnte nicht angelegt werden.
Versuchen Sie es bitte erneut!
[url='buch_eintrag.php']Zurück[/url]</td>
</tr>
</html>
";
}
?>
Alles anzeigen
buch.php
PHP
<link rel='stylesheet' href='main.css' type='text/css'>
<?php
$meldung="
<table width='300' align='center'>
<tr>
<td align='center' class='latestnews' colspan='3'>
- LEER -
[url='buch_eintrag.php']Zurück[/url]</p>
</td>
</tr>
</table>
";
if (!@include("buch_inhalt.htm")) {
echo $meldung;
}
?>
<p align="center">[url='buch_eintrag.php']Beiträg Schreiben[/url]</p>
Alles anzeigen