Einzelnen Beitrag anzeigen
  #2  
Alt 13.04.2006, 21:38:59
Wayne Wayne ist offline
Anfänger
 
Registriert seit: Apr 2006
Beiträge: 10
AW: Anfänger braucht Hilfe beim Gästebuch ;)

da kein platz mehr war, gehts hier weiter ;)
Buch_eintrag.php :
PHP-Code:
<table width="349" height="100" align="center">
    <
form method='post' action='buch_funktionen.php'><tr>
      <
td width="341" height="20" style="border-style:none;border-size:0.5px;border-color:#000000;background-color:#47A743"><div align="left"><span class="style17"> <strong>Eintragen</strong></span></div></td>
    </
tr>
    <
tr>
      <
td height="50" bgcolor="#DDDCDC" style="border-color:#000000;background-color:#DDDCDC; border: 1px dashed;border-top width: 0px;border-color:#47A743;"><table width='400' align='center' style="border: 0px dashed;border-color:#47A743">
        <
tr>
          <
td colspan='6' class='autor' height='10'><div align='right'></div></td>
        </
tr>
        <
tr>
          <
td valign='top' width='9'><div class='morelink'><span class="style17">&raquo;</span>&nbsp;</div></td>
          <
td valign='top' class='style17' width='36'>Name:*</td>
          <
td valign='top' class='blocksatz' width='190'><input type='text' name='fname' class='contentblack' size='30' maxlength='50' style="border-color:1px:#CCCCCC;background:#CCCCCC;color:#666666;">
          </
td>
          <
td valign='top' class='style17' width='6'>&raquo;</td>
          <
td valign='top' class='blocksatz' width='40'><span class="style17">Rubrik</span>:</td>
          <
td valign='top' class='blocksatz' width='91'><select name='fbetreff' class='contentblack' style="border-color:1px:#CCCCCC;background:#CCCCCC;color:#666666;">
              <
option value='Lob' selected>Lob</option>
              <
option value='Kritik'>Kritik</option>
              <
option value='Anregung'>Anregung</option>
              <
option value='Allgemein'>Allgemein</option>
            </
select>
          </
td>
        </
tr>
        <
tr>
          <
td valign='top' width='9'><div class='morelink'><span class="style17">&raquo;</span>&nbsp;</div></td>
          <
td valign='top' class='style17' width='36'>Email:*</td>
          <
td valign='top' class='blocksatz' colspan='4'><input type='text' name='femail' class='contentblack' size='30' maxlength='50' style="border-color:1px:#CCCCCC;background:#CCCCCC;color:#666666;">
          </
td>
        </
tr>
        <
tr>
          <
td valign='top' width='9'><div class='morelink'><span class="style17">&raquo;</span>&nbsp;</div></td>
          <
td valign='top' class='style17' width='36'>Inhalt:*</td>
          <
td valign='top' class='blocksatz' colspan='4'><textarea name='finhalt' class='contentblack' cols='30' rows='5' wrap='PHYSICAL' style="border-color:1px:#CCCCCC;background:#CCCCCC;color:#666666;"></textarea>
          </
td>
        </
tr>
        <
tr>
          <
td valign='top' width='9'><div class='morelink'><span class="style17">&raquo;</span>&nbsp;</div></td>
          <
td valign='top' class='style17' width='36'>Website: </td>
          <
td valign='top' class='blocksatz' colspan='4'><input type='text' name='fhome' class='contentblack' size='30' maxlength='50' style="border-color:1px:#CCCCCC;background:#CCCCCC;color:#666666;">
          </
td>
        </
tr>
        <
tr>
          <
td valign='top' width='9'><div class='morelink'>&nbsp;</div></td>
          <
td valign='top' class='blocksatz' width='36'>&nbsp;</td>
          <
td valign='top' class='blocksatz' colspan='4'><input type='submit' name='senden' value='senden' class='style17'>
              <
input type='reset' name='losch' value='L&ouml;schen' class='style17'>
          </
td>
        </
tr>
        <
tr>
          <
td height='10' colspan='6' class='autor'><div align="left"><span class="style17 style1">* = Pflichtfeld </span></div></td>
        </
tr>
      </
table>      
      </
td>
    </
tr></form>
  </
table>  
  <
div align="center"><a href='buch.php' class="contentlink style30">Beitr&auml;ge Lesen</a
Eigentlich unwichtig, ist ja nur das Formular, aber ich habs einfach mal dabei geschrieben.

Buch_funktionen.php :
PHP-Code:
<?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="Bitte geben Sie Ihren Namen an";
}

//Kein Eintrag vorgenommen
if(strlen($g_finhalt)<3){
$error_msg.="<br>Bitte geben Sie auch etwas in das Gästebuch ein.";
}

//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.="<br>Fehlerhafte E-mail!<br>";
}

//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="<a href=" $g_fhome " target=_blank>Website</a>";
} else {
$g_fhome="<a href=" $g_fhome " target=_blank>Website</a>";
}
//Ende - Prüfung

//Prüfen ob Fehler vorgekommen sind!
if($error_msg){
echo 
"
<html>
<head>
<title>Your-Snake.de - Fehler</title>
<link rel='stylesheet' href='css/main.css' type='text/css'>
</head>
<body bgcolor='#DDDCDC' text='#000000'>
<table width='300' align='center'>
  <tr>
    <td align='center' class='latestnews' bgcolor='#47A743' colspan='3' style='border: 1px dashed;border-color:#47A743;'>- FEHLER - <br>
      Eintrag konnte nicht angelegt werden.<br>
      Versuchen Sie es bitte erneut!<br>
      <a href='buch_eintrag.php' class='contentlink'>Zur&uuml;ck</a></td>
  </tr>
</table>
</body>
</html>
"
;

include(
"funktionen.php");

}

} else {
echo 
"
<html>
<head>
<title>Your-Snake.de - Fehler</title>
<link rel='stylesheet' href='css/main.css' type='text/css'>
</head>
<body bgcolor='#DDDCDC' text='#000000'>
<table width='300' align='center'>
  <tr>
    <td align='center' class='latestnews' bgcolor='#47A743' colspan='3' style='border: 1px dashed;border-color:#47A743;'>- FEHLER - <br>
      Eintrag konnte nicht angelegt werden.<br>
      Versuchen Sie es bitte erneut!<br>
      <a href='buch_eintrag.php' class='contentlink'>Zur&uuml;ck</a></td>
  </tr>
</table>
</body>
</html>
"
;
}
?>
funktionen.php :
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 "
<html>
<head>
<title>G&auml;stebuch v1.0</title>
<link rel='stylesheet' href='css/main.css' type='text/css'>
</head>
<body bgcolor='#FFFFFF' text='#000000'>
<p align='center'><img src='bild/gbuchlogo.gif' width='800' height='80'></p>
<table width='300' align='center'>
  <tr>
    <td align='center' class='latestnews' colspan='3'>- FEHLER - <br>
      Eintrag konnte nicht angelegt werden.<br>
      Versuchen Sie es bitte erneut!<br>
      <a href='buch_eintrag.php' class='contentlink'>Zur&uuml;ck</a></td>
  </tr>
</table>
</body>
</html>
";
}

?>
Dann gibt es noch die Dateien buch_inhalt.htm (da sind die beiträge gespeichert), eine css datei, autorespond.php, ips.txt und die automail.txt.
Aber ich denke das ist jetzt hier unwichtig und wird hier nicht gebraucht. Falls doch, einfach schreiben ;)

Ich verlange jetzt nicht, dass ihr mir das jetzt machen sollt, aber wenn ihr mir erklärt, wie es geht, wäre ich auch schon sehr froh ;)
Mit Zitat antworten