Hi
Bin relativer Programmierneuling und habe gerade mein erstes Gästebuch geschrieben.
Habt ihr noch irgendwelche Ideen bzw. Verbesserungsvorschläge für mich?
Bin relativer Programmierneuling und habe gerade mein erstes Gästebuch geschrieben.
Habt ihr noch irgendwelche Ideen bzw. Verbesserungsvorschläge für mich?
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>Zimmermann Daniel</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="javas.js"></script>
</head>
<body>
<div id="haupt">
<div id="header" style="background-image: URL(slices/Bilder/header.png); width: 800px; height: 65px;">
</div>
<div id="menu" style="background-image: URL(slices/Bilder/menu.png);">
<div id="button">
<a href="index.html" border="0" name="austausch" alt="home"></a><br>
<a href="lebenslauf.html" border="0" name="austausch2" alt="lebenslauf"></a><br>
<a href="gast.php?start=0" border="0" name="austausch3" alt="gaestebuch"></a><br>
</div>
</div>
<div id="main" style="background-image: URL(slices/Bilder/main.png);">
<h3>Gästebuch</h3>
<div id="gast">
<?php
error_reporting(E_ALL);
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'xxx');
define('MYSQL_PASS', 'xxx');
define('MYSQL_DATABASE', 'xxx');
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
die("Es konnte keine Verbindung aufgebaut werden\n".mysql_error());
mysql_select_db(MYSQL_DATABASE) OR
die("Konnte ".MYSQL_DATABASE." nicht benutzen ".mysql_error());
$name="";
$mail="";
$mitteilung="";
$gesendet=false;
echo'
<form action="gast.php" METHOD="POST">
<div id="textfeld">
Name:<br>
<input type="text" name="name"><br>
Email:<br>
<input type="text" name="mail"><br>
Mitteilung:(160 Zeichen)<br>
<textarea name="mitteilung" rows="4" cols="16" onKeyUp="count(this.value);" ></textarea><br>
<input type="text" name="ausgabe" id="ausgabe">
<input type="submit" value="senden">
</div>
</form>
';
if(isset($_POST["name"]) && isset($_POST["mitteilung"])){ //prüfen ob alles gesetzt ist
$user = $_POST["name"];
$email = $_POST["mail"];
$msg = $_POST["mitteilung"];
if(preg_match('#[<>&\/\\\]#', $user) || preg_match('#[<>&\/\\\]#', $email) || preg_match('#[<>&\/\\\]#', $msg)){ // spam filter, ob wörter vorkommen mit den bestimmten zeichenfolgen
echo '
<div id="again">
Keine Sonderzeichen bitte!
</div>
';
}
else{ // ip adresse vergleichen und schaun ob er innerhalb von 10 minuten gepostet hat
if($user != null && $msg != null){
$datum = date("Y.m.d - H:i");
$ipadresse ="$REMOTE_ADDR";
$ergebnis = "";
$result = mysql_query("SELECT timestamp FROM gastebuch WHERE ip = '$ipadresse' ORDER BY TIMESTAMP DESC LIMIT 1");
if(mysql_num_rows($result) == 0){ // wenn keine einträge bisher da sind.. dann...
$times = time();
mysql_query($eintrag = "INSERT INTO gastebuch(name, mail, mitteilung, datum, ip, timestamp) VALUES ('$user', '$email', '$msg', '$datum','$ipadresse', '$times')");
$gesendet=true;
}
else{ // wenn einträge vorhanden sind dann
$ergebnis = mysql_result($result,0,0);
if($ergebnis + 600 > time()){ // wenn er früher als 10 minuten postet dann... gehts ned
echo "Du kannst erst in 10 Minuten wieder posten!";
}
else{
$times = time(); // ansonsten gehts
mysql_query($eintrag = "INSERT INTO gastebuch(name, mail, mitteilung, datum, ip, timestamp) VALUES ('$user', '$email', '$msg', '$datum','$ipadresse', '$times')");
$gesendet = true;
}
}
}
else{
echo'
<div id="again">
Felder leer, nochmal bitte
</div>
';
}
}
}
$start = 0;
$count = 0;
if(!empty($_GET['start']) AND intval($_GET['start'])){ // schaun ob start leer is, bzw. ob start ein integer ist
$start = $_GET['start'];
}
$vor = $start + 3;
$zuruck = $start - 3;
if($zuruck < 1){
$zuruck = 0;
}
$sql = mysql_query("SELECT name, mail, mitteilung, datum FROM gastebuch ORDER BY datum DESC LIMIT ".$start.",3") OR die(mysql_error()); //gebe nur werte aus zwischen start und 3, insgesamt 3
echo '<div id="eintrage">'; // einträge ausgeben
while($row = mysql_fetch_assoc($sql)){
echo '<b>Datum:</b> '.$row["datum"].'<br>';
echo '<b>Name:</b>'.$row["name"].' @: '.'<a href="mailto:'.$row["mail"].'">'.$row["mail"].'</a><br>';
echo '<b>Mitteilung:</b><br>'.$row["mitteilung"].'<br><br>';
$count++;
}
echo'</div>';
if($count >= 3){ // vor button
echo'
<div id="vor">
<a href="http://www.daniel-zimmermann.at/test/gast.php?start='.$vor.'">Nächste Seite</a><br>
</div>
';
}
if($start >= 3){ // zurück button
echo'
<div id="back">
<a href="http://www.daniel-zimmermann.at/test/gast.php?start='.$zuruck.'">Letzte Seite</a>
</div>
';
}
?>
</div>
</div>
<div id="footer" style="background-image: URL(slices/Bilder/footer.png); width: 800px; height: 59px;">
</div>
</div>
<div id="unten">
<a href="http://www.daniel-zimmermann.at" class="p1">2008, Zimmermann Daniel | www.daniel-zimmermann.at</a> <a href="impressum.html" class="p2">Impressum</a>
</div>
</body>
</html>