46356
Goto Top

Captcha PHP Problem

Hallo

Ich habe ein kleines Problem mit meinem Bot Schutz...
Alle Codes stimmen bis auf keinen und 1...

Ich glaube meine elseif abfrage ist falsch aber ich komme nicht weiter... Ich saß den ganzen Vormittag an diesem Problem, konnte es aber nicht lösen...

Hier der Code:

<input type="text" name="captcha" size="7.5"> <img src="captcha.php" width="74" height="25" alt="" style="vertical-align: middle;" <?php if($_POST['code'] != "") { echo ' value="'.$_POST['code'].'"'; } ?> >  

...

// Captcha überprüfen
}elseif(!isset($_POST['code']) == $_SESSION['code'])  
{
echo "<font face='Verdana' size='2px'>Du hast die Sicherheitsprüfung nicht bestanden!! <a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a>";  

// Session löschen
unset($_SESSION['captcha_code']);  
}
Falls ihr noch mehr Code braucht, sagt bescheid...

Danke Alex

P.S.: Mein Captcha ist eine Zeichenkette!

Content-Key: 67390

Url: https://administrator.de/contentid/67390

Printed on: April 19, 2024 at 02:04 o'clock

Member: SlainteMhath
SlainteMhath Aug 29, 2007 at 12:33:11 (UTC)
Goto Top
Was willst Du denn damit

}elseif(!isset($_POST['code']) == $_SESSION['code'])  

prüfen?

(!isset($_POST['code']) ergibt true oder false, je nachdem ob $_POST['code'] gesetzt wurde oder nicht.

Diese Ergebniss verlgeichst Du dann mit dem Inhalt von $_SESSION['code'] ...

Ich kenn den Rest vom Code nicht, aber sollte da nicht ein

... elseif($_POST['code'] != $_SESSION['code']) ...  

ausreichen?
Mitglied: 46356
46356 Aug 29, 2007 at 12:38:48 (UTC)
Goto Top
Hallo!

Funkioniert leider nicht!
Den ganzen Code:

<?php
// Session starten
session_start();
?>
<?php
require("connect.inc.php");  
?>
<html>
<head>
<link rel="stylesheet" media="screen" type="text/css" href="http://alexbreuss.al.funpic.de/new/src/stylesheet.css" />  
<?PHP 
    // Cookie (Datum) lesen
    if (isset($_COOKIE["datum"]))  
        $dt= $_COOKIE["datum"];  

    //Cookie (Datum) zurueck schreiben
    setcookie("datum",date('d.m.y'),time()+3600);  
    
?>

<style>
.solid {
 border-style: solid;
 border-left-width: 1px; border-left-color: black;
 border-top-width: 1px; border-top-color: black;
 border-right-width: 1px; border-right-color: black;
 border-bottom-width: 1px; border-bottom-color: black;
}
.button { border-color: #AA0000;
border-style: outset;
font-family: arial, serif;
font-size: 10pt;
width: 255px;
height: 30px;
}
</style>
</head>
<body leftmargin="100px" topmargin= "50px" marginwidth="100px" link="white" alink="white" vlink="white">  

<div class="tabelle"><div id="header">  
   <img src="/neu_fertig/img/logo-gespiegelt.gif" width="130px" height="75px">&#160;&#160;&#160;<a href="http://alexbreuss.al.funpic.de/neu_login/"><img src="/neu_fertig/img/browserfish-text.gif" width="400" height="30" border="0"></a>&#160;&#160;&#160;<img src="/neu_fertig/img/logo.gif" width="130px" height="75px">  

<br><br>
	
	<div align="left">  
	<iframe src="/neu_fertig/src/links.htm" width="700px" fixed="yes" height="37px" frameborder="0" scrolling="no" cellspacing="no" cellpadding="no"></iframe>  
	</div>
	
	<div align="right"><font face="Verdana" size="2px">Eine Website von Alexander Breuss</font></a><br>  

	</div></div></div><br>


<div class="tabelle">  
	<div id="header"><font face="Verdana" size="4px">Registrier dich hier!</font>  
	<div align="left">  
<br>

<?php if(!isset($_POST['submit'])) { ?>  
<form action="<?php $PHP_SELF ?>" method="post">  
<table width="100" border="0" align="center" class="solid">  
	<tr>
		<td align="center" colspan="2" class="solid">  
		<b><font color="black" size="2px">Kostenlos hier zu einer Community anmelden:</b>  
		</td>
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Vorname:</td>  
		<td width="200" class="solid"><input type="text" name="name" class="input"<?php if($_POST['name'] != "") { echo ' value="'.$_POST['name'].'"'; } ?> size="20"></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Nachname:</td>  
		<td width="200" class="solid"><input type="text" name="name2" class="input"<?php if($_POST['name2'] != "") { echo ' value="'.$_POST['name2'].'"'; } ?> size="20"></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Geburtstag:</td>  
		<td width="200" class="solid"><input type="text" name="birthday" size="20" class="input" <?php if($_POST['birthday'] != "") { echo ' value="'.$_POST['birthday'].'"'; } ?> ></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Adresse:</td>  
	        <td width="200" class="solid"><input type="text" name="adresse" class="input"<?php if($_POST['adresse'] != "") { echo ' value="'.$_POST['adresse'].'"'; } ?> size="20"></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Ort:</td>  
		<td width="200" class="solid"><input type="text" name="ort" class="input"<?php if($_POST['ort'] != "") { echo ' value="'.$_POST['ort'].'"'; } ?> size="20"></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Land:</td>  
		<td width="200" class="solid"><input type="text" name="land" class="input"<?php if($_POST['land'] != "") { echo ' value="'.$_POST['land'].'"'; } ?> size="20"></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Bundesland:</td>  
		<td width="200" class="solid"><input type="text" name="bundesland" class="input"<?php if($_POST['bundesland'] != "") { echo ' value="'.$_POST['bundesland'].'"'; } ?> size="20"></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Telefonnummer:</td>  
		<td width="200" class="solid"><input type="text" name="telefonnummer" class="input"<?php if($_POST['telefonnummer'] != "") { echo ' value="'.$_POST['telefonnummer'].'"'; } ?> size="20"></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">E-Mail:</td>  
		<td width="200" class="solid"><input type="text" name="mail" size="20" class="input" <?php if($_POST['mail'] != "") { echo ' value="'.$_POST['mail'].'"'; } ?> ></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Nickname:</td>  
		<td width="200" class="solid"><input type="text" name="nickname" size="20" class="input" <?php if($_POST['nickname'] != "") { echo ' value="'.$_POST['nickname'].'"'; } ?> ></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Passwort:</td>  
		<td width="200" class="solid"><input type="password" name="password" size="20" class="input" <?php if($_POST['password'] != "") { echo ' value="'.$_POST['password'].'"'; } ?> ></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Passwort wiederholen:</td>  
		<td width="200" class="solid"><input type="password" name="password2" size="20" class="input" <?php if($_POST['password2'] != "") { echo ' value="'.$_POST['password2'].'"'; } ?> ></td>  
	</tr>
	<tr>
		<td width="200" class="solid"><font color="black" size="2px">Code übertragen:</td>  
		<td width="200" class="solid"><input type="text" name="captcha" size="7.5"> <img src="captcha.php" width="74" height="25" alt="" style="vertical-align: middle;" <?php if($_POST['code'] != "") { echo ' value="'.$_POST['code'].'"'; } ?> ><br></td>  
	</tr>
	<tr>

		<td width="200" class="solid" colspan="2">  
		<div align="right"><center><input type="submit" class="button" name="submit" value="Benutzer anlegen" class="button" width="200px"></center></div>  
		<td width="200" class="solid">  
	</tr>
        <tr>
                <td width="200" class="solid" colspan="2"><font color="black" size="2px">Die Daten werden vertraulich behandelt und nicht an dritte weitergegeben!</td>  
        </tr>

</table>
</form>
<?php

}elseif(!isset($_POST['name']) || $_POST['name'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast deinen Vornamen vergessen.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['name2']) || $_POST['name2'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast deinen Nachnamen vergessen.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['birthday']) || $_POST['birthday'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast deine Geburtsdatum vergessen.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['adresse']) || $_POST['adresse'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast deine Adresse vergessen.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['ort']) || $_POST['ort'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast keinen Ort angegeben.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['land']) || $_POST['land'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast dein Land vergessen.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['bundesland']) || $_POST['bundesland'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast dein Bundesland vergessen.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['telefonnummer']) || $_POST['telefonnummer'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast keine Telefonnummer angegeben.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['mail']) || $_POST['mail'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast deine E-Mail Adresse vergessen.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['nickname']) || $_POST['nickname'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast deinen Nicknamen vergessen.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['password']) || $_POST['password'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast kein Passwort gewählt.<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif(!isset($_POST['password2']) || $_POST['password2'] == ""){  
	echo '<p align="center"><font face="Verdana" size="2px">Du hast das Passwort nicht noch einmal eingegeben!<br><br><a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a></p>';  

}elseif($_POST['password'] != $_POST['password2']) {  
echo '<form action="registration.php" method="post">';  
echo '<p align="center">Die Passw&ouml;rter stimmen nicht &uuml;berein!<br><br>';  
echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';  
echo '<input type="submit" name="zurueck" value="Zur&uuml;ck"></p>';  
echo '</form>';  

}elseif(!isset($_POST['nickname'])){  

// Captcha überprüfen
}elseif(!isset($_POST['code']) == $_SESSION['code'])  
{
echo "<font face='Verdana' size='2px'>Du hast die Sicherheitsprüfung nicht bestanden!! <a href=javascript:history.back(-1) onFocus=this.blur()>Zur&uuml;ck</a>";  

// Session löschen
unset($_SESSION['captcha_code']);  
}

$name = $_POST['name'];  
$name2 = $_POST['name2'];  
$birthday = $_POST['birthday'];  
$adresse = $_POST['adresse'];  
$ort = $_POST['ort'];  
$land = $_POST['land'];  
$bundesland = $_POST['bundesland'];  
$telefonnummer = $_POST['telefonnummer'];  
$mail = $_POST['mail'];  
$nickname = $_POST['nickname'];  
$pass = md5($_POST['password']);  

$result = mysql_query("SELECT Nickname FROM users  WHERE Nickname LIKE '$nickname'");  
$menge = mysql_num_rows($result); 

if($menge == 0)
  {
    $eintrag = "INSERT INTO users (Vorname, Nachname, Geburtstag, Adresse, Ort, Land, Bundesland, Telefon, Mail, Nickname, Passwort) VALUES   
    ('$name', '$name2', '$birthday', '$adresse', '$ort', '$land', '$bundesland', '$telefonnummer', '$mail', '$nickname', '$pass')";  
    $eintragen = mysql_query($eintrag); 
     
if($eintragen == true)
          {
             echo "Benutzername <b>$nickname</b> wurde erstellt. <a href=\"login.html\">Login</a>";  
          }
            else
            {
                echo "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>";  
            } 
 }
else
    {
    echo "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>";  
    }
?> 
Lg. Alex
Member: SlainteMhath
SlainteMhath Aug 29, 2007 at 12:51:30 (UTC)
Goto Top
Sieht fast so aus, als wärst Du Dir nicht über den Namen der POST Variable einig:

<input type="text" name="captcha" size="7.5"> ...
$_POST['code']... $SESSION['code']...
... unset($_SESSION['captcha_code']);...


Und nochwas: Les Dir mal ein bischen was über sicheres Programmieren von PHP Scripts an.

Überleg Dir mal, was passiert wenn Dir hier:
$nickname = $_POST['nickname'];  
$pass = md5($_POST['password']);  

$result = mysql_query("SELECT Nickname FROM users  WHERE Nickname LIKE '$nickname'");  

jemand '; DELETE FROM users WHERE Nickname<>' in das Nickname Feld im Webformular rein schreibt
Member: Spao
Spao Aug 29, 2007 at 12:53:11 (UTC)
Goto Top
so face-smile hab mich mal durch dein code gewühlt ^^

also
1.) sehe nirgendes das die $_SESSION['code'] gefüllt wird. mit was willst du die dann vergleichen ? ( vielleicht in captcha.php ? )

2.) ändere
}elseif(!isset($_POST['code']) == $_SESSION['code'])

in


3.)
wenn eine der Bedingungen wahr wird löschst du eine andere session
unset($_SESSION['captcha_code']);
müsst da nich $_SESSION['code'] in $_SESSION['captcha_code'] geändert werden ?


kannst nochmal die captcha.php posten ? wenn es noch nicht geht ?
Member: EvilMoe
EvilMoe Aug 29, 2007 at 12:56:17 (UTC)
Goto Top
Ohh das solltest du aber so schnell wie möglich beheben! Stichwort SQL-Injection!
Verwende bevor du die Variablen an die DB schicks "mysql_real_escape_string". Ich habe dafür diese Funktion:
  // esapen von input
	function quotesqlvar($value)
	{
	  // Stripslashes if quoted
	  if (get_magic_quotes_gpc()) {
		  $value = stripslashes($value);
	  }
	  // Quote if not integer
	  if (!is_numeric($value)) {
		  $value = mysql_real_escape_string($value);
	  }
	  return $value;
	}
	
Mitglied: 46356
46356 Aug 29, 2007 at 13:52:50 (UTC)
Goto Top
Hallo!

Danke für eure Antworten!

Hier die captcha.php:
<?php

// Session starten
session_start();

// Größe des Bildes
$size_x = 70;
$size_y = 25;

// Zufalls-Zeichenkette
$code = mt_rand("100000","999999");  

// Code in der Session-Variablen übergeben
$_SESSION["captcha_code"] = $code;  

// Erstelle das Bild mit der angegebenen Größe!
$bild = imageCreate($size_x,$size_y);

// Erstelle einen weißen Hintergrund
imageColorAllocate($bild,255,255,255);

// Zufallsfarbe (RGB) erstellen
$text_nummer1 = mt_rand("0","175");  
$text_nummer2 = mt_rand("0","175");  
$text_nummer3 = mt_rand("0","175");  

// Verteile die Farben
$schwarz = imageColorAllocate($bild,0,0,0);
$text  = imageColorAllocate($bild,$text_nummer1,$text_nummer2,$text_nummer3);

// Hole die Zahlen der Punkte zum Zeichnen
$alle_punkte = ($size_x * $size_y)/15;

// Zeichne viele Punkte mit der selben Farbe des Textes
for ($zaehler = 0; $zaehler < $alle_punkte; $zaehler++) {

 // Hole die Positionen für die Punkte
 $pos_x = mt_rand("0",$size_x);  
 $pos_y = mt_rand("0",$size_y);  

 // Zeichne die Punkte
 imageSetPixel($bild,$pos_x,$pos_y,$text);
};

// Zeichne den Rahmen
imageRectangle($bild,0,0,$size_x-1,$size_y-1,$schwarz);

// Koordinaten der Position von der Zeichenkette
$pos_x = 8; // links
$pos_y = 5; // oben

// Zeichne die Zeichenkette
imageString($bild,5,$pos_x,$pos_y,$code,$text);

// Sende "browser header" 
header("Content-Type: image/png");  

// Sende das Bild zum Browser
echo imagePNG($bild);

// Lösche das Bild
imageDestroy($bild);
?>

Mfg. Alex
Member: SlainteMhath
SlainteMhath Aug 29, 2007 at 13:58:32 (UTC)
Goto Top
Hier die captcha.php:
// Code in der Session-Variablen übergeben
$_SESSION["captcha_code"] => $code;  

Ok, nach meinem Dafürhalten sollte dann das elseif so aussehen:
...} elseif($_POST['captcha'] != $_SESSION['captcha_code'])  {...  

Und bereinige mit EvilMoe's Code alle Eingaben aus dem Formular!

/edit: Tippfehler beseitigt.
Mitglied: 46356
46356 Aug 29, 2007 at 14:16:23 (UTC)
Goto Top
Hallo!

Funktioniert trotzdem noch nicht: Du hast die Sicherheitsprüfung nicht bestanden!! Zurück Benutzername alexbreuss wurde erstellt. Login

Was ist noch falsch?

Lg. Alex

P.S.: Könnt Ihr mir ein gutes Buch zum Thema Sicherheit mit PHP-Scripten empfehlen?
Member: Spao
Spao Aug 30, 2007 at 04:52:44 (UTC)
Goto Top
lass dir mal die 2 variablen

$_POST['captcha']
$_SESSION['captcha_code']

mit echo ausgeben. Sind die vielleicht unteschiedlich ?
Member: Guenni
Guenni Sep 10, 2007 at 14:25:00 (UTC)
Goto Top
Selbst wenn die Captcha-Überprüfung funktionieren sollte,
würde das Skript nicht korrekt arbeiten.

Nach der Captcha-Überprüfung geht es nämlich munter weiter mit dem
Anlegen des neuen Users.

Daher auch die Ausgabe, siehe oben:

Funktioniert trotzdem noch nicht:
Du hast die Sicherheitsprüfung nicht bestanden!! Zurück
Benutzername alexbreuss wurde erstellt. Login

Denn woher soll der PHP-Interpreter wissen, dass das Skript gestoppt werden soll,
falls der übertragene Captcha-Code falsch ist? Der Interpreter überprüft nur die
Syntax, nicht aber die Logik des Skript.

Ich muß dem Interpreter also auch sagen, was er im negativem Fall machen soll:

if(trifft nicht zu){
...
exit;//Skript beenden
}
...

Zum zweiten ist eine solche simple Überprüfung ...

elseif(!isset($_POST['nickname']) || $_POST['nickname'] == ""){  
…

... ziemlich sinnfrei, weil auch die Eingabe eines oder mehrerer Leerzeichen
eine korrekte Eingabe ist. Es würden also im Falle einer positiven
Captcha-Überprüfung einfach Datenfelder mit Leerzeichen in der
Datenbank angelegt!

Die Eingabe sollte also besser über einen regulären Ausdruck
auf erlaubte/nicht erlaubte Zeichen überprüft werden.

Ich habe das Skript oben mal ein wenig verkürzt(wg. Übersicht) und
einige Variablen meiner Umgebung angepasst, nur um die Funktionalität
zu überprüfen.

<?
session_start();
//Meine Datenbankverbindung und mehr...
include("net-comm/inc/session.inc.php");  
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>
<head>
<title>Registrierung</title>
</head>
<body>
<?
$cmd=$_POST['cmd'];  
if($cmd=="Eintragen"){  
 /*
 trim entfernt Leerzeichen am Anfang und am Ende
 */
 $nickname=trim($_POST['nickname']);  
 $vorname=trim($_POST['vorname']);  
 $captcha=trim($_POST['captcha']);  
 /*
 Nur Buchstaben(klein,GROSS,ohne Umlaute),
 Zahlen,Punkt und Bindestrich sind erlaubt. z.B.:
 hans45, Katja-12, w.broesel, hans-peter, 
 */
 if(!ereg("^[a-zA-Z1-9\.\-]+$",$nickname)){  
  echo "Sie haben ihren Nickname nicht korrekt angegeben";  
	echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
	exit;// Skript beenden
 }
 /*
 Nur Buchstaben(klein,GROSS,mit Umlaute) und Bindestrich
 sind erlaubt. z.B:
 Jürgen, Karl-Heinz, Paul, aber nicht Karl.Heinz
 */
 if(!ereg("^[a-zA-ZäöüÄÖÜ\-]+$",$vorname)){  
  echo "Sie haben ihren Vornamen nicht korrekt angegeben";  
	echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
	exit;// Skript beenden
 }
 /*
 Gibt es den Nickname schon?
 */
 $result=mysql_query("select * from auth where UserName='$nickname'");  
 if ( mysql_num_rows($result)>0){
  echo "Benutzername $nickname ist schon vergeben";  
	echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
	exit;// Skript beenden
 }
 /*
 Captcha-Überprüfung
 */
 if($_SESSION["captcha_code"]!=$captcha){  
  echo "Sie haben den Code nicht korrekt eingegeben!<br/>";  
	echo "Benutzer $nickname wird nicht angelegt!";  
	echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
 }else{
			echo "Sie haben den Code <font color=\"#ff000\">$captcha</font> korrekt eingegeben.<br/>";  
			echo "Benutzer $nickname wird angelegt.";  
			/*
			Datenbankeintrag vornehmen
			*/
			}
}else{?>
<form action="reg.php" method="post">  
Nickname: <input type="text" name="nickname" /><br/>  
Vorname: <input type="text" name="vorname" /><br><br>  
<img src="captcha_pic.php"> CaptchaCode <input type="text" name="captcha" /><br/>  
<input type="submit" name="cmd" value="Eintragen" />  
</form>
<?}?>
</body>
</html>


Grüße
Günni
Mitglied: 46356
46356 Sep 17, 2007 at 13:42:34 (UTC)
Goto Top
Hallo Günni!

Du hast mir mit deinem Script sehr geholfen...

Leider werden bei mir die Benutzerdaten nicht in meinen SQL Datenbank geschrieben!

Vielleicht kannst du mir helfen...

Script:

<?
session_start();
//Meine Datenbankverbindung und mehr...
include("connect.inc.php");  
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>
<head>
<title>Registrierung</title>
</head>
<body>
<?
$cmd=$_POST['cmd'];  
if($cmd=="Eintragen"){  
 /*
 trim entfernt Leerzeichen am Anfang und am Ende
 */
 $vorname=trim($_POST['vorname']);  
 $nachname=trim($_POST['nachname']);  
 $Geburtstag=trim($_POST['geburtstag']);  
 $Adresse=trim($_POST['adresse']);  
 $Ort=trim($_POST['ort']);  
 $Land=trim($_POST['land']);  
 $Bundesland=trim($_POST['bundesland']);  
 $Telefon=trim($_POST['telefon']);  
 $Mail=trim($_POST['mail']);  
 $nickname=trim($_POST['nickname']);  
 $Passwort1=trim($_POST['passwort1']);  
 $Passwort2=trim($_POST['passwort2']);  
 $captcha=trim($_POST['captcha']);  
 

 if(!ereg("^[a-zA-ZäöüÄÖÜ\-]+$",$vorname)){  
  echo "Sie haben ihren Vornamen nicht korrekt angegeben";           	// Vorname  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }


 if(!ereg("^[a-zA-Z1-9\.\-]+$",$nachname)){  
  echo "Du hast deinen Nachnamen nicht korrekt eingegeben!";		// Nachname	  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }

 if(!ereg("^[0123456789\.]+$",$Geburtstag)){  
  echo "Du hast dein Geburtstag nicht korrekt eingegeben!";		// Geburtstag	  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }

 if(!ereg("^[a-zA-Z0123456789\.\-\ \]+$",$Adresse)){  
  echo "Du hast deine Adresse nicht korrekt eingegeben!";		// Adresse	  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }

 if(!ereg("^[a-zA-Z1-9\.\-]+$",$Ort)){  
  echo "Du hast deinen Ort nicht korrekt eingegeben!";			// Ort	  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }

 if(!ereg("^[a-zA-Z1-9\.\-]+$",$Land)){  
  echo "Du hast dein Land nicht korrekt eingegeben!";			// Land   
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }

 if(!ereg("^[a-zA-Z1-9\.\-\ö\ä\ü]+$",$Bundesland)){  
  echo "Du hast deine Bundesland nicht korrekt eingegeben!";		// Bundesland	  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }


 if(!ereg("^[0123456789\/\.]+$",$Telefon)){  
  echo "Du hast deine Telefonnummer nicht korrekt eingegeben!";		// Telefon	  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }

 if(!ereg("^[a-zA-Z1-9\.\@\-]+$",$Mail)){  
  echo "Du hast deine E-Mail Adresse nicht korrekt eingegeben!";	// Mail	  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }

 if(!ereg("^[a-zA-Z1-9\.\-]+$",$nickname)){  
  echo "Du hast deinen Nickname nicht korrekt angegeben";  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }

 /*
 Gibt es den Nickname schon?
 */
 $result=mysql_query("select * from users where nickname='$nickname'");  
 if ( mysql_num_rows($result)>0){
  echo "Benutzername $nickname ist schon vergeben";  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
    exit;// Skript beenden
 }

 if ($Passwort1 != $Passwort2)
   {
	echo "Die Passwörter stimmen nicht überein!!";  
        exit;
   }

 /*
 Captcha-Überprüfung
 */
 if($_SESSION["captcha_code"]!=$captcha){  
  echo "Sie haben den Code nicht korrekt eingegeben!<br/>";  
    echo "Benutzer $nickname wird nicht angelegt!";  
    echo "<a href=javascript:history.back(-1)> Zur&uuml;ck</a>";  
 }else{
            echo "Sie haben den Code <font color=\"#ff000\">$captcha</font> korrekt eingegeben.<br/>";  
            echo "Benutzer $nickname wird angelegt.";  

    $eintrag = "INSERT INTO users (Vorname, Nachname, Geburtstag, Adresse, Ort, Land, Bundesland, Telefon, Mail, Nickname, Passwort) VALUES   
    ('$vorname', '$nachname', '$Geburtstag', '$Adresse', '$Ort', '$Land', '$Bundesland', '$Telefon', '$Mail', '$nickname', '$'Passwort)";  
    $eintragen = mysql_query($eintrag); 



            }
}else{?>
<form action="script.php" method="post">  
<table border="0">  

<tr>
<td> Vorname: </td> <td> <input type="text" name="vorname"> </td>  
</tr>

<tr>
<td> Nachname: </td> <td> <input type="text" name="nachname"> </td>   
</tr>

<tr>
<td> Geburtstag: </td> <td> <input type="text" name="geburtstag"> </td>   
</tr>

<tr>
<td> Adresse: </td> <td> <input type="text" name="adresse"> </td>   
</tr>

<tr>
<td> Ort: </td> <td> <input type="text" name="ort"> </td>   
</tr>

<tr>
<td> Land: </td> <td> <input type="text" name="land"> </td>   
</tr>

<tr>
<td> Bundesland: </td> <td> <input type="text" name="bundesland"> </td>   
</tr>

<tr>
<td> Telefonnummer: </td> <td> <input type="text" name="telefon"> </td>   
</tr>

<tr>
<td> Mail: </td> <td> <input type="text" name="mail"> </td>   
</tr>

<tr>
<td> Nickname: </td> <td> <input type="text" name="nickname"> </td>   
</tr>

<tr>
<td> Passwort: </td> <td> <input type="password" name="passwort1"> </td>   
</tr>

<tr>
<td> Passwort wiederholen: </td> <td> <input type="password" name="passwort2"> </td>   
</tr>

<tr>
<td> CaptchaCode</td> <td> <input type="text" name="captcha"> </td> <td>  <img src="captcha.php"></td>  
</tr>
<tr> 
<td> <input type="submit" name="cmd" value="Eintragen"> </td>   
</tr>

</form>
<?}?>

Lg. Alex
Mitglied: 46356
46356 Sep 17, 2007 at 19:25:07 (UTC)
Goto Top
Habe das Problem gelöst!

Es lag an der "Instert into ..." eingabe...

Lg. Alex