Hallo zusammen,
ich bin neu hier und komme direkt mal zu meinem Problem.
Ich bin zur Zeit dabei ein PHP/MySQL Gästebuch, aus reinem Interesse, zu erstellen.
Ich habe mir da was zusammen ergoogelt und abgeändert. Nun bin ich zur Zeit dabei eine Art Captcha Abfrage in die Erstellung eines Gästebuchpostings einzubauen.
Ich habe mich hierbei für eine Mathe Aufgabe entschieden, die eine Addition von Random Zahlen beinhaltet.
Das klappt auch alles soweit so gut. Nun möchte ich, dass wenn ein falsches Ergebnis eingegeben wurde, dass auch angezeigt wird, dass das Ergebnis Falsch sei und der Posting nicht erstellt wird.
Kann mir jemand bei der Lösung meines Problems helfen?
Ich geb euch einmal den Quellcode Ausschnit, wo mein Erge bnis überprüft wird, sowie die Rechnung selber und auch einmal mein gesamtes Gästebuch Skript.
Ich hoffe, dass ihr mir helfen könnt
Das wäre echt nett ^^ Ich neige schon zu verzweifeln 
Gruß Galvon
PS: Dem Helfer meines Problems winkt ein Rapidshare Premium Account der von 24.3 bis zum 24.4 gültig ist und noch unberührt ist
Rechnung:
Egebnis:
Gesamter Quellcode:
ich bin neu hier und komme direkt mal zu meinem Problem.
Ich bin zur Zeit dabei ein PHP/MySQL Gästebuch, aus reinem Interesse, zu erstellen.
Ich habe mir da was zusammen ergoogelt und abgeändert. Nun bin ich zur Zeit dabei eine Art Captcha Abfrage in die Erstellung eines Gästebuchpostings einzubauen.
Ich habe mich hierbei für eine Mathe Aufgabe entschieden, die eine Addition von Random Zahlen beinhaltet.
Das klappt auch alles soweit so gut. Nun möchte ich, dass wenn ein falsches Ergebnis eingegeben wurde, dass auch angezeigt wird, dass das Ergebnis Falsch sei und der Posting nicht erstellt wird.
Kann mir jemand bei der Lösung meines Problems helfen?
Ich geb euch einmal den Quellcode Ausschnit, wo mein Erge bnis überprüft wird, sowie die Rechnung selber und auch einmal mein gesamtes Gästebuch Skript.
Ich hoffe, dass ihr mir helfen könnt


Gruß Galvon

PS: Dem Helfer meines Problems winkt ein Rapidshare Premium Account der von 24.3 bis zum 24.4 gültig ist und noch unberührt ist

Rechnung:
PHP-Code:
<p>Spamschutzfrage *<br />
<b>Bitte Rechnen sie folgende Aufgabe:</b>
<?php
$zahl1=rand (1,10);
$zahl2=rand (1,10);
?>
<?php echo $zahl1;?> + <?php echo $zahl2;?>
<?php
$ergebnis = $zahl1 + $zahl2;
?>
Antwort:
<input size="4" name="spam" type="text" />
PHP-Code:
# Wenn Feld Name und Nachricht nicht leer sind, und Spamfrage falsch beantwortet wurde, dann....
if ($name != "" && $msg != "" && $spam != $ergebnis) {
echo 'Das von Ihnen eingegebene Ergebnis ist Falsch...'
# Wenn Feld Name und Nachricht nicht leer sind, und Spamfrage richtig beantwortet wurde, dann speichern...
if ($name != "" && $msg != "" && $spam == $ergebnis) {
PHP-Code:
<?php
session_start();
// ---------------------------- # Konfiguration # -----------------------------------------------------
$db_host = "localhost"; # Der Datenbank-Host
$db_user = "root"; # Der Datenbank-Benutzer
$db_password = ""; # Das Passwort für die Datenbank
$db_name = "t_gästebuch"; # 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 für 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 für den Eintrag wird hier erstellt
$zeit = date("H:i"); # Die aktuelle Zeit für den Eintrag wird hier erstellt
// ----------------------------------------------------------------------------------------------------
$action = isset($_GET['action']) ? ($_GET['action']) : "";
// ------------------------------ Admin-Bereich ------------------------------------------ //
# Wenn auf den Logout Link gecklickt wird, wird hier die Session gelöscht
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");
}
# --------- Lösch-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>Gästebuch</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 für 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 Gästebuch 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 prüfen 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']);
$ergebnis = mysql_real_escape_string($_POST['ergebnis']);
# Wenn Feld Name und Nachricht nicht leer sind, und Spamfrage falsch beantwortet wurde, dann....
if ($name != "" && $msg != "" && $spam != $ergebnis) {
echo 'Das von Ihnen eingegebene Ergebnis ist Falsch...'
# Wenn Feld Name und Nachricht nicht leer sind, und Spamfrage richtig beantwortet wurde, dann speichern...
if ($name != "" && $msg != "" && $spam == $ergebnis) {
# Wenn Feld Homepage leer, dann schreiben: www.keine-angegeben.de
if ($hp == "") {
$hp = "http://www.keine-angegeben.de";
}
# Hier wird geprüft 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 hinzufügen
$hp = "http://$hp";
}
$ip = $_SERVER['REMOTE_ADDR']; # IP-Adresse ermitteln
$msg = trim($msg);
$msg = preg_replace('/(\s{4})\s+/', '\1', $msg);
$msg = preg_replace('~(.)(\1){4,}~', '\1\1\1\1', $msg);
$name = preg_replace('/(\s{4})\s+/', '\1', $name);
$name = preg_replace('~(.)(\1){4,}~', '\1\1\1\1', $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 gewählt wurde, wird nach dem speichern eine email geschickt!
if ($mailinfo == "ja"){
# Betreffzeile für die EMail
$betreff = "GB Eintrag";
# Name und Nachricht des Eintrages für 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>Bitte Rechnen sie folgende Aufgabe:</b>
<?php
$zahl1=rand (1,10);
$zahl2=rand (1,10);
?>
<?php echo $zahl1;?> + <?php echo $zahl2;?>
<?php
$ergebnis = $zahl1 + $zahl2;
?>
Antwort:
<input size="4" name="spam" type="text" />
<input name="ergebnis" value="<?php echo $ergebnis; ?>" type="hidden" />
</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 Einträge 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 böse 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 ---------------#
#------- Beiträge zählen 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 schließen.
mysql_close();
?>
<br /><br />
<a href="gb.php?action=gbadmin">Admin</a>
</body>
</html>
Kommentar