Hallo,
ich hoffe Ihr könnt mir da helfen. Ich habe da selber ein Gästebuch gemacht.
Oder besser gesagt, ein Formular das die Daten in die Datenbank einträgt.
Ich habe das bis dahin geschaft, also die Einträge wurden auch in die Datenbank richtig eingetragen.
Aber als ich dann noch eine Captcha function eingebaut habe um mich gegen Spammer zu schützen, wurde es mir zu viel und ich habe die übersicht verlohren :wink:
Naja, wenn ich auf Absenden drücke soll es alle Formulare abchecken und auch den code für die captcha. Und wenn alles richtig ist, dann in die datenbank eintragen.
Das macht es aber nicht. Wenn ich auf Absenden klicke, dann ruhft sich die Seite von selbst auf aber in der Datenbank ist nix.
Hier ist mal der ganze Code:
PHP-Code:
<?php
include ("inc/functions.inc.php");
$time_start = getmicrotime();
require_once( 'captcha/class.captcha.php' );
if (empty($_GET['session_code']))
{ $session_code = md5(round(rand(0,40000))); }
else
{ $session_code=$_GET['session_code']; }
$my_captcha = new captcha( $session_code, 'captcha/__TEMP__/' );
//Variablen werden ausgelesen und zugewiesen
$gbname = $_REQUEST["gbname"];
$gbsex = $_REQUEST["gbsex"];
$gbmailadresse = $_REQUEST["gbmailadresse"];
$gbwebadresse = $_REQUEST["gbwebadresse"];
$gbwer = $_REQUEST["gbwer"];
$gbeintrag = $_REQUEST["gbeintrag"];
$gbstatus = $_REQUEST["gbstatus"];
$ip = getenv("REMOTE_ADDR");
$timestamp = time();
$datum = date("d.m.Y - H:i",$timestamp);
$stop = date("s",$timetotal);
//error Variablen werden mit nichts initalisiert
$error_gbname = "";
$error_gbeintrag = "";
$error_gbwer = "";
$error_gbsex = "";
$error_gbstatus = "";
//irgendeine captcha funktion
$pic_url = $my_captcha->get_pic( 4 );
// Es überprüft hier ob dieses Formular schon einmal aufgerufen worden ist, wenn ja, dann macht es mit den if anweisungen weiter
if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "insert" )
{
// Es wird nun überprüft ob die Pflichtfelder leer sind,
// wenn ja dann wird der zugehörigen error-Variable ein Wert zugewiesen für die spätere Ausgabe
if ( $_REQUEST["gbname"] == "")
{
$error_gbname = " [Name Eingeben!]";
}
if ( $_REQUEST["gbeintrag"] == "")
{
$error_gbeintrag = " [Hast du nichts zu sagen?]";
}
if ( $_REQUEST["gbwer"] == "")
{
$error_gbwer = " [Wer bist du?]";
}
if ( $_REQUEST["gbsex"] == "")
{
$error_gbsex = " [Bitte Geschlecht auswählen]";
}
//Hier werden alle Werte zusammengefügt, wenn alle diese Werte leer waren dann ist die error_gesamt Variable auch leer und es macht mit den Anweisungen weiter
$error_gesamt = $error_gbname.$error_gbeintrag.$error_gbwer.$error_gbsex.$error_gbstatus;
if ( $error_gesamt == "")
{
//wieder eine captcha Funktion
if ($my_captcha->verify( $_POST['password'] ) )
{
error_reporting(E_ALL);
ini_set('display_errors', true);
require 'inc/connect_gb.inc.php';
// Nun werden alle Werte in die Datenbank rein geschrieben
$dbh = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
mysql_select_db(MYSQL_DATABASE, $dbh) OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
$sql = "INSERT INTO guestbook (Name, Datum, Mail, Web, kommentar, `admin-kom`, wer, status, IP, sex) VALUES ('$gbname', '$datum', '$gbmailadresse', '$gbwebadresse','$gbeintrag','wieder gut','$gbwer','2','$ip', '$gbsex')";
mysql_query($sql, $dbh) or die(mysql_error().': '.$sql);
}
else
echo "Nein";
}
}
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">\n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Hauptseite</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Alican" />
<meta name="robots" content="index,follow" />
<meta name="keywords" content="Alican" />
<meta name="description" content="Hauptseite" />
<meta http-equiv="expires" content="0" />
<link rel="shortcut icon" href="favicon.ico" />
<style type="text/css" media="all">
@import "style.css";
</style>
</head>
<body>
<div id="background-y">
<div id="main">
<div id="top">
<div id="topnav">
<ul>[*][url="/index.php"]home[/url][*][url="/blog/"]weblog[/url][*][url="/gallery.php"]gallery[/url][*][url="/me.php"]about:me[/url][*][url="/guestbook.php"]guestbook[/url][*][url="/misc.php"]miscellaneous[/url][/list]
</div>
</div>
<div id="middle">
<div id="rightnav">
<h2>Navigation</h2>
<h3>Neues Eintrag</h3>
<h3>Admin</h3>
<?php include ("inc/buttons.inc.php"); ?>
</div>
<div id="inhaltarea">
<h1>Hallo</h1>
<form action="<?php echo $PHP_SELF ?>?do=verify&session_code=<?php echo $session_code ?>" method="post">
<h4>Name (max. 30 Zeichen):
<?php if ($error_gbname != "")
{
echo $error_gbname;
}
?>
</h4>
<input name="gbname" type="text" class="feld" maxlength="30"></input>
<h4>Dein Geschlecht?<?php if ($error_gbsex != "")
{
echo $error_gbsex;
}
?></h4>
<input type="radio" class="Radio" name="gbsex" value="m"> männlich</input>
<input type="radio" class="Radio" name="gbsex" value="w"> weiblich</input>
<h4>eMail-Adresse (Optional):</h4>
<input name="gbmailadresse" type="text" class="feld" maxlength="60"></input>
<h4>Webseite (Optional):</h4>
<input name="gbwebadresse" type="text" class="feld" maxlength="60"></input>
<h4>Bitte wähle aus wer du bist!<?php if ($error_gbwer != "")
{
echo $error_gbwer;
}
?></h4>
<select name="gbwer" class="Auswahl" size="1">
<option value="1">Freund</option>
<option value="2">Verwandter</option>
<option value="3">Klassenkamerad</option>
<option value="4">Forumskamerad</option>
<option value="5">sonstiger Bekannter</option>
<option value="5">zufälliger Besucher</option>
</select>
<h4>guestbook Eintrag:<?php if ($error_gbeintrag != "")
{
echo $error_gbeintrag;
}
?>
<textarea name="gbeintrag" class="textarea"></textarea>
[img]captcha/__TEMP__/cap_<?php echo $pic_url ?>.jpg[/img]</p>
Displayed Code? <input type="text" name="password"></p>
<input type="hidden" name="do" value="insert"></input>
<input type="submit" value=" Absenden "></input>
</form>
</div>
</div>
<div id="bottom">
<?php include ("inc/bottom.inc.php"); ?>
</div>
</div>
</div>
</body>
</html>
Also, wie gesagt.
An dem Eintragen in die Datenbank muss alles OK sein, nur das mit dem captcha.
Ich hoffe das einer mir helfen kann. Ich bräuchte die Lösung so schnell wie möglich. Ihr hatte mir schon ein paar mal sehr geholfen.
vielen Dank
emerge