Verfasst von jamdesigns am 16.12.2007 - wurde schon 90727 mal gelesen
Tutorial
PHP
Administartion
Gaestebuch
Script
Loading...
![]()
Verfasst von jamdesigns am 16.12.2007 - wurde schon 90727 mal gelesen
Tutorial
PHP
Administartion
Gaestebuch
Script
<?php
session_start();
// ---------------------------- # Konfiguration # -----------------------------------------------------
$db_host = "localhost"; # Der Datenbank-Host
$db_user = " "; # Der Datenbank-Benutzer
$db_password = " "; # Das Passwort fr die Datenbank
$db_name = " "; # Der Datenbank-Name
$conn = mysql_connect($db_host,$db_user,$db_password) or die (mysql_error());
mysql_select_db($db_name, $conn) or die (mysql_error());
$passwort = "123"; # Das Passwort fr den Admin
$mailinfo = "ja"; # email bei Eintrag ? ja oder nein
$webmaster = "email@adresse.de"; # wenn bei mailinfo ja steht, dann hier eure email Adresse eintragen
$datum = date("d.m.Y"); # Das aktuelle Datum fr den Eintrag wird hier erstellt
$zeit = date("H:i"); # Die aktuelle Zeit fr den Eintrag wird hier erstellt
// ----------------------------------------------------------------------------------------------------
$action = isset($_GET['action']) ? ($_GET['action']) : "";
// ------------------------------ Admin-Bereich ------------------------------------------ //
# Wenn auf den Logout Link gecklickt wird, wird hier die Session gelscht
if ($action == "logout"){
session_destroy();
header("refresh:0;url=gb.php");
}
$rang = $_SESSION['rang'];
$pass = strip_tags($_POST['password']);
# Wenn das Admin-Passwort falsch eingegeben wurde erscheint eine Fehlermeldung
if (isset($_POST['submit']) && $pass != $passwort){
echo "Falsches Passwort!";
}
# Wenn das Passwort richtig war, wird der Admin-Rang auf 1 gesetzt und die Session gestartet
else if (isset($_POST['submit']) && $pass == $passwort){
$_SESSION['rang'] = "1";
header("refresh:0;url=gb.php");
}
# --------- Lsch-Funktion ----------- #
if ($action == "delete" && $rang == 1) {
$id = $_GET['id'];
$loeschen = "DELETE FROM gb WHERE id=$id";
mysql_query ($loeschen) or die ("Konnte nicht geloescht werden!!!");
header ("Location: gb.php");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Gstebuch</title>
<meta name="robots" content="index,follow" />
<meta name="language" content="de" />
<style type="text/css">
body {
font: normal 0.8em verdana, tahoma, 'sans-serif';
color: #000;
background-color: #EFEFEF;
}
.post{
border: 1px solid #808080;
background-color: #FFF;
padding: 5px;
width: 75%;
}
.titel{ border-bottom: 1px solid #EFEFEF; }
.error{ font-weight: bold; color: #A61212; }
span{ font-style:italic; color: #395B7D; }
a {
color: #49565E;
font-weight: bold;
text-decoration: none;
}
a:visited {
color: #63909C;
text-decoration: none;
}
a:hover, a:active {
color: #7EB1C0;
text-decoration: none;
}
</style>
</head>
<body>
<?php
# Wenn auf den Admin-Link gecklickt wird, wird hier das Login-Feld erzeugt
if ($action == "gbadmin"){?>
<strong>Passwort:</strong>
<form action="" method="post">
<input name="password" type="password" /> <input type="submit" name="submit" value="login" />
</form>
<?php
}
# Hier wird abgefragt, ob rang=1 ist. Wenn ja, wird hier die Kommentierfunktion fr den Eintrag aufgerufen
if($rang==1) {
$id = strip_tags($_GET['id']);
if($action == "kommentieren") {
echo "<h3>Eintrag Nr. $id kommentieren</h3>";
echo "<form name='kommentar' method='post' action='gb.php?action=speichern&id=$id'>
<textarea cols='55' rows='10' name='kommentar'></textarea><br />
<input type='submit' value='speichern' title='Kommentar speichern' name='komment' />
</form>"; }
if($action == "speichern") {
$kommentar = mysql_real_escape_string($_POST['kommentar']);
# Und hier wird dann der Kommentar zu dem GB Eintrag in der DB gespeichert.
$sql= "UPDATE gb SET kommentar = '$kommentar' WHERE id = '$id'";
mysql_query ($sql) or die ("Das Schreiben ist gescheitert!");
}
}
?>
<div align="left">
<a href="gb.php?action=reintragen">Ins Gstebuch eintragen</a>
<?php if($rang==1) { echo '<a href="gb.php?action=logout">Logout</a>'; } ?>
</div>
<br />
<?
# Wenn der Link zum Eintragen ins GB geklickt wird, wird das Formular zum eintragen angezeigt
if($action == "reintragen") {
if (isset($_POST['los'])){ # wenn auf Abschicken geklickt wurde
#--- Eingaben prfen und ersetzen ---#
$name = mysql_real_escape_string($_POST['name']);
$email = mysql_real_escape_string($_POST['email']);
$hp = mysql_real_escape_string($_POST['hp']);
$msg = mysql_real_escape_string($_POST['msg']);
$spam = mysql_real_escape_string($_POST['spam']);
# Wenn Feld Name und Nachricht nicht leer sind, und Spamfrage eichtig beantwortet wurde, dann speichern...
if ($name != "" && $msg != "" && $spam == "blau") {
# Wenn Feld Homepage leer, dann schreiben: www.keine-angegeben.de
if ($hp == "") {
$hp = "http://www.keine-angegeben.de";
}
# Hier wird geprft ob die homepage mit oder ohne http:// eingegeben wurde.
if (strtolower(substr($hp, 0, 7)) == "http://"){
# Wenn ja, Feld so wie ist abspeichern
$hp = "$hp";
}else {
# Wenn nicht, soll er das "http://" manuell hinzufgen
$hp = "http://$hp";
}
$ip = $_SERVER['REMOTE_ADDR']; # IP-Adresse ermitteln
$msg = trim($msg);
$msg = preg_replace('/(\s{4})\s+/', '', $msg);
$msg = preg_replace('~(.)(){4,}~', '', $msg);
$name = preg_replace('/(\s{4})\s+/', '', $name);
$name = preg_replace('~(.)(){4,}~', '', $name);
# --- Und hier speichern wir in die Datenbank --- #
$schreiben = "INSERT INTO gb (id, name, email, hp, msg, ip, date, time)
VALUES ('', '$name', '$email', '$hp', '$msg', '$ip', '$datum', '$zeit')";
$results= mysql_query ($schreiben) or die ("Das Schreiben ist gescheitert!");
if ($results){
# Wenn oben bei mailinfo ja gewhlt wurde, wird nach dem speichern eine email geschickt!
if ($mailinfo == "ja"){
# Betreffzeile fr die EMail
$betreff = "GB Eintrag";
# Name und Nachricht des Eintrages fr die Mail
$body = "Es gibt einen neuen Eintrag im GB:\nName: $name Nachricht: $msg";
# Hier wird die Mail versendet und zusammengesetzt
mail("$webmaster","$betreff","$body\n");
}
$go= 1;
echo 'Vielen Dank fuer Ihren Eintrag ...';
}else{ echo 'Fehler beim Eintragen...';}
}else{ # wenn nicht alle Pflichtfelder ausgefuellt wurden
echo '<p class="error">Bitte alle mit * gekennzeichneten Felder ausfüllen!</p>';
}
} // close submit
if ($go!= 1){
?>
<form action="" method="post" id="eingabe">
<input type="text" name="name" size="20" /> <label for="name">Name</label>* <br />
<input type="text" name="email" size="20" /> <label for="email">E-Mail</label> *<br />
<input type="text" name="hp" size="20" /> <label for="website">Homepage</label><br />
<textarea cols="55" rows="10" value="msg" name="msg"></textarea>
<p>Spamschutzfrage *<br />
<b>Welche Farbe haben Schlümpfe?</b> Antwort:
<input size="4" name="spam" type="text" />
</p>
<input type="submit" value="Abschicken" title="Eintrag machen" name="los" />
<input type="reset" title="Felder leeren" value="Zuruecksetzen" name="stop" /></td>
<br />
<p> mit * gekennzeichnete Felder müssen ausgefüllt werden</p>
<br />
<br /></form>
<?php
}
} // close reintragen
#--- Datenbank auslesen und anzuzeigende Seiten festlegen ---#
$proseite = 3; // Wieviele Eintrge pro Seite anzeigen?
if(!isset($_REQUEST["seite"])) {
$seite = 0;
} else {
$seite = $_REQUEST["seite"];
}
$count = 0;
$abfrage = "SELECT id FROM gb";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis)) {
if($count%$proseite == 0) {
$aktuelleseite = $count/$proseite+1;
if($count == $seite) {
echo $aktuelleseite." ";
} else {
echo "<a href='gb.php?seite=$count'>".$aktuelleseite."</a> ";
}
}
$count++;
}
echo '<br /><br />';
$result = mysql_query("SELECT * FROM gb ORDER by id DESC LIMIT $seite,$proseite");
while ($zeile = mysql_fetch_array($result)) {
#----------Ausgabe des GB darstellen-------------------------#
# Hier wird schadhafter Code und bse Zeichen ausgemustert
$zeile[1] = htmlspecialchars($zeile[1], ENT_QUOTES);
$zeile[5] = htmlspecialchars($zeile[5], ENT_QUOTES);
$zeile[3] = htmlspecialchars($zeile[3], ENT_QUOTES);
$zeile[5] = wordwrap($zeile[5], 40, ' ', 1);
$zeile[5] = nl2br($zeile[5]);
?>
<div class="post">
<div class="titel">
<?php echo $zeile[0] ?> - <a target="blank" href="<?php echo $zeile[4] ?>"><?php echo $zeile[1] ?></a>
schrieb am <?php echo $zeile[6] ?> um <?php echo $zeile[7] ?> Uhr
<?php if($rang==1) { // Nur anzeigen fuer Admin
echo "IP: $zeile[2] | <a href='gb.php?action=delete&id=$zeile[0]'>löschen</a> | <a href='gb.php?action=kommentieren&id=$zeile[0]'>kommentieren</a>" ;
} ?>
</div>
<p><?php echo $zeile[5] ?></p>
<?php if($zeile[8] != "") {
echo"<div class='kommentar'>Kommentar:<br /> \n
<span>$zeile[8]</span>\n </div>\n"; }?>
</div>
<br />
<?php
}
#--------------- ENDE AUSGABE ---------------#
#------- Beitrge zhlen die in der Datenbank gespeichert wurden -------#
$count_msgs = 0;
$l = "SELECT id FROM gb ORDER BY id DESC";
$dbr = mysql_query ($l);
while ($t = mysql_fetch_array ($dbr))
{ $count_msgs++; }
echo "<br />Es sind <strong>$count_msgs</strong> Beiträge im Gästebuch vorhanden";
# Datenbankverbindung schlieen.
mysql_close();
?>
<br /><br />
<a href="gb.php?action=gbadmin">Admin</a>
</body>
</html>
Du musst angemeldet sein, um einen Kommentar zu hinterlassen...
Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...