Hallo,
soweit der Code meines Gästebuches
PHP
<?php
//hier werden daten fuer mysql definiert
define ( 'MYSQL_HOST', '' );
define ( 'MYSQL_BENUTZER', '' );
define ( 'MYSQL_KENNWORT', '' );
define ( 'MYSQL_DATENBANK', '' );
//post variablen setzen (komischer vorgang bei neuen php versionen)
if (isset($_POST['name'])) $name = $_POST['name'];
if (isset($_POST['email'])) $email = $_POST['email'];
if (isset($_POST['eintrag'])) $eintrag = $_POST['eintrag'];
if (isset($_POST['url'])) $url = $_POST['url'];
//fehler
$fehler = "";
//wenn der absenden button gedrückt wurde, dann
if (isset($_POST["senden"])){
//captcha korrekt?
if (isset($_SESSION['captcha']) AND $_POST['sicherheitscode'] == $_SESSION['captcha']){
//wenn ja, session löschen
unset($_SESSION['captcha']);
$codefehler = "";
}
else {
$fehler .= "fehler";
/*echo "Der Sicherheitscode wurde falsch abgetippt!<br>";*/
$codefehler = "Der Sicherheitscode wurde falsch abgetippt!<br>";
echo "$codefehler";
}
//name leer?
if(($_POST['name']) == ""){
echo "Bitte ergänzen Sie den Namen!";
}
//Gaestebucheintrag leer?
if(($_POST['eintrag']) == ""){
echo "Bitte ergänzen Sie den Gästebucheintrag!";
}
//wenn fehler NICHT 0, dann ausgeben
if ($fehler != ""){
echo "$codefehler";
}
//wenn DOCH 0, dann speichern
else {
$sql = " INSERT INTO gaestebuch ";
$sql .= " SET ";
$sql .= " name ='". $_POST['name'] ."', ";
$sql .= " email ='". $_POST['email'] ."', ";
$sql .= " url ='". $_POST['url'] ."', ";
$sql .= " datum ='". date("Y-m-d H:i:s") ."', ";
$sql .= " eintrag='". $_POST['eintrag'] ."' ";
echo "<hr />SQL: $sql<hr />";
//define ( 'MYSQL_HOST', 'localhost' );
//define ( 'MYSQL_BENUTZER', 'root' );
//define ( 'MYSQL_KENNWORT', '' );
//define ( 'MYSQL_DATENBANK', 'anwendungen' );
$db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
if ( ! $db_link )
{
// hier sollte dann später dem Programmierer eine
// E-Mail mit dem Problem zukommen gelassen werden
// die Fehlermeldung für den Programmierer sollte
// das Problem ausgeben mit: mysql_error()
die('keine Verbindung zur Zeit möglich - später probieren ');
}
$db_sel = mysql_select_db(MYSQL_DATENBANK)
or die("Auswahl der Datenbank fehlgeschlagen");
// ausführen des mysql-Befehls
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
//id variable definieren
$id = "
SELECT id FROM gaestebuch
";
$idd = mysql_query( $id );
//mir eine email schicken, mit inhalt
//meine Daten
$freischaltlink = 'http://dominiks-fotos.de/sites/freischalten.php';
$emailbetreff = "websitegaestebuch";
$webmaster = "";
$body = <<<EOD
<br><hr><br>
Name: $name <br>
Website: $url <br>
Email: $email <br>
Eintrag: $eintrag <br>
ID: $idd<br>
Freischalten: $freischaltlink <br>
EOD;
//wenn keine email angegeben ist, dann anonym
if (($_POST['$email']) == ""){
$_POST['$email'] == "anonyme@ema.il";
}
else {$_POST['$email'] = $_POST['email'];}
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
$headers = mail($webmaster, $emailbetreff, $body, $headers);
echo "Ihr Gästebucheintrag muss vor dem anzeigen noch freigeschaltet werden.";
/*klammer von wenn fehler 0*/
exit;}
}
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" >
<?php
echo '<label>Name:*</label>';
//wenn senden gesetzt und absender
if (isset($_POST["senden"])){
echo '<input type="text" name="name" value="' . htmlspecialchars( $_POST['name'], ENT_QUOTES, 'UTF-8') . '" /><br>'; }
else {
echo "<input type=\"text\" name=\"name\" value=\"\" size=\"20\" maxlength=\"50\" /><br />";}
/*echo"<input type=\"text\" name=\"absender\" id=\"absender\" value=\"\" size=\"20\" maxlength=\"50\" /> <br />";*/
echo '<label>E-Mail:</label>';
//wenn senden und email
if (isset($_POST["senden"])){
echo '<input type="email" name="email" "value="' . htmlspecialchars( $_POST['email'], ENT_QUOTES, 'UTF-8') . '" /><br>'; }
else {
echo "<input type=\"text\" name=\"email\" value=\"\" size=\"20\" maxlength=\"50\" /><br />";}
echo '<label>Ihre Homepage:</label>';
//wenn senden und url
if (isset($_POST["senden"])){
echo '<input type="text" name="url" value="' . htmlspecialchars( $_POST['url'], ENT_QUOTES, 'UTF-8') . '" /> <br>'; }
else {
echo "<input type=\"text\" name=\"url\" value=\"\" size=\"20\" maxlength=\"50\" /><br />";}
/*echo "<input type=\"text\" name=\"email\" id=\"email\" value=\"\" size=\"20\" maxlength=\"50\" /><br />*/
echo '<label>Ihr Gästebucheintrag:*</label>';
//wenn senden und eintrag
if (isset($_POST["senden"])){
echo '<textarea name="eintrag" rows="8" cols="40">' . htmlspecialchars( $_POST['eintrag'], ENT_QUOTES, 'UTF-8') . '</textarea><br>'; }
else {
echo "<textarea name=\"eintrag\" rows=\"8\" cols=\"40\"></textarea><br />";}
/*echo "<textarea name=\"inhalt\" id=\"ihnalt\" rows=\"8\" cols=\"40\"></textarea><br />*/
echo '<label class="oben">Sicherheitscode:*<br />(Untenstehende Ziffernfolge)</label>';
echo "
<input type=\"text\" name=\"sicherheitscode\" id=\"sicherheitscode\" size=\"20\" maxlength=\"5\" title=\"\" /><br />
<img src=\"/captcha/captcha.php\" border=\"0\" title=\"überprüfung\"/><br />";
?>
<input class="abstand" type="Submit" name="senden" value="absenden" />
</form>
*:Pflichtfelder<p></p>
<?php
//wenn NICHT dann soll folgendes (geschweifte klammer geht bis nach unten)
//else {
$db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
if ( ! $db_link )
{
// hier sollte dann später dem Programmierer eine
// E-Mail mit dem Problem zukommen gelassen werden
// die Fehlermeldung für den Programmierer sollte
// das Problem ausgeben mit: mysql_error()
die('keine Verbindung zur Zeit möglich - später probieren ');
}
$db_sel = mysql_select_db(MYSQL_DATENBANK)
or die("Auswahl der Datenbank fehlgeschlagen");
// SQL-Befehl für den Zugriff
// SQL-Befehl für den Zugriff
$sql = "
SELECT
*
FROM gaestebuch WHERE aktiviert = '1'
ORDER BY datum DESC LIMIT 10
";
// ausführen des mysql-Befehls
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
// Anzeige der Anzahl der Einträge
$anzahl_eintraege = mysql_num_rows($db_erg);
echo "<p>Anzahl der Gästebuch-Einträge: $anzahl_eintraege </p>";
//schleife zum array
while ($daten = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
// Aushabe der Daten
echo "ID: ";
echo $daten['id'];
echo "<br />";
echo "Name: ";
echo $daten['name'];
echo "<br />";
//wenn Email leer, nichts anzeigen
if ($daten['email'] == ""){
}
else{
echo "E-Mail: ";
echo $daten['email'];
echo "<br />";
}
echo "URL: ";
echo $daten['url'];
echo "<br />";
echo "Datum: ";
echo $daten['datum'];
echo "<br />";
echo "Gästebucheintrag: ";
echo $daten['eintrag'];
echo "<br />";
}
//ressourcen zerstören bzw. freigeben
mysql_free_result( $db_erg );
//}
//ältere beiträge wenn nötig setzen
$result = mysql_query("SELECT * FROM gaestebuch");
$count = mysql_num_rows($result);
if($count > 10)
{
echo '<a href="../sites/gaestebuch?page=2.php">Ältere Einträge</a>';
}
?>
Alles anzeigen
Das Problem, das ich im Moment noch habe ist
-1: Per Email kommt bei mir immer nur "Recource Id 2"an.
Ich brauche aber die id, mit der der eintrag gespeichert wurde,
damit ich dann per http://dominiks-fotos.de/sites/freischalten.php
das Ganze Freischalten kann.
-2: Wenn ich nur Gästebucheintrag 8 von z.B. 8 freischalte,
weil die anderen entwegen Spam oder rechtswidrig waren,
wie kann ich dann die Id's durchlaufen anzeigen?,
also dass Gästebucheintrag 8 mit 1 beginnt... ?
-3: Eigentlich kein Problem: Absätze könnte man nur per Javascript machen oder?
-4: Fällt euch noch sonst ein fehler auf?