gutelaune75
|
Forenuser
|
|
registriert
|
13.04.2007
|
wohnt in
|
bei Mainz ;o)
|
Beiträge
|
12
|
|
Hallo!
Man, da habt Ihr ja wirklich ein gutes Tutorial aufgebaut. Ich versuche mich jetzt seit einiger Zeit mit PHP und MySQL und bin im Moment bei eben bei der UServerwaltung angekommen. Dies ist zwar schon eine grössere Verwaltung hier im Tutorial, aber mit Abstand die besterklärteste und vorbereitete die ich bisher gesehen habe.
Also habe ich mir das ganze mal durchgelesen, abgetippt bzw. kopiert, mir eine dementsprechende Datenbank angelegt und wollte es mal testen um dann ausprobieren zu können. Learning by doing oder so ähnlich...
Ich habe also die Registrierungsdatei kopiert und nur im Kopf "$MYSQL_DATA = 'usermanagement';" geändert. Habe kein Datenbankpasswort vergeben und sie heisst usermanagement.
So, und nu bekomme ich aber schon bei der Registrierung folgende Fehlermeldung: Fatal error: Call to undefined function: mysql_real_escape_string() in f:\wamp\www\usermanagement\index.php on line 104 Line 104 ist übrigens die erste Zeile beim Eintrag in die Datenbank per ('".mysql_real_escape_string(trim($_POST['Nic kname']))."', .... Wenn ich das richtig sehe...
Hier mal meine Registrierungsdatei:
PHP:
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = '';
$MYSQL_PASS = '';
$MYSQL_DATA = 'usermanagement';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
if(isset($_POST['submit']) AND $_POST['submit']=='Registrieren'){
// Fehlerarray anlegen
$errors = array();
// Prüfen, ob alle Formularfelder vorhanden sind
if(!isset($_POST['Nickname'],
$_POST['Passwort'],
$_POST['Passwortwiederholung'],
$_POST['Email'],
$_POST['Show_Email'],
$_POST['Homepage'],
$_POST['Wohnort'],
$_POST['ICQ'],
$_POST['AIM'],
$_POST['YIM'],
$_POST['MSN']))
// Ein Element im Fehlerarray hinzufügen
$errors = "Bitte benutzen Sie das Formular aus dem Registrierungsbereich";
else{
// Prüfung der einzelnen obligatorischen Felder
// Alle Nicknames und Emailadressen zum Vergleich aus der Datenbank holen
$nicknames = array();
$emails = array();
$sql = "SELECT
Nickname,
Email
FROM
User
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
while($row = mysql_fetch_assoc($result)){
$nicknames[] = $row['Nickname'];
$emails[] = $row['Email'];
}
// Prüft, ob ein Nickname eingegeben wurde
if(trim($_POST['Nickname'])=='')
$errors[]= "Bitte geben Sie einen Nickname ein.";
// Prüft, ob der Nickname mindestens 3 Zeichen enthält
elseif(strlen(trim($_POST['Nickname'])) < 3)
$errors[]= "Ihr Name muss mindestens 3 Zeichen lang sein.";
// Prüft, ob der Nickname nur gültige Zeichen enthält
elseif(!preg_match('/^\w+$/', trim($_POST['Nickname'])))
$errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich).";
// Prüft, ob der Nickname bereits vergeben ist
elseif(in_array(trim($_POST['Nickname']), $nicknames))
$errors[]= "Dieser Nickname ist bereits vergeben.";
// Prüft, ob eine Email-Adresse eingegeben wurde
if(trim($_POST['Email'])=='')
$errors[]= "Bitte geben Sie Ihre Email-Adresse ein.";
// Prüft, ob die Email-Adresse gültig ist
elseif(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§', trim($_POST['Email'])))
$errors[]= "Ihre Email Adresse hat eine falsche Syntax.";
// Prüft, ob die Email-Adresse bereits vergeben ist
elseif(in_array(trim($_POST['Email']), $emails))
$errors[]= "Diese Email-Adresse ist bereits vergeben.";
// Prüft, ob ein Passwort eingegeben wurde
if(trim($_POST['Passwort'])=='')
$errors[]= "Bitte geben Sie Ihr Passwort ein.";
// Prüft, ob das Passwort mindestens 6 Zeichen enthält
elseif (strlen(trim($_POST['Passwort'])) < 6)
$errors[]= "Ihr Passwort muss mindestens 6 Zeichen lang sein.";
// Prüft, ob eine Passwortwiederholung eingegeben wurde
if(trim($_POST['Passwortwiederholung'])=='')
$errors[]= "Bitte wiederholen Sie Ihr Passwort.";
// Prüft, ob das Passwort und die Passwortwiederholung übereinstimmen
elseif (trim($_POST['Passwort']) != trim($_POST['Passwortwiederholung']))
$errors[]= "Ihre Passwortwiederholung war nicht korrekt.";
}
// Prüft, ob Fehler aufgetreten sind
if(count($errors)){
echo "Ihr Account konnte nicht erstellt werden.<br>\n".
"<br>\n";
foreach($errors as $error)
echo $error."<br>\n";
echo "<br>\n".
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Registrierungsformular</a>\n";
}
else{
// Daten in die Datenbanktabelle einfügen
$sql = "INSERT INTO
user
(Nickname,
Email,
Passwort,
Show_Email,
Registrierungsdatum,
Wohnort,
Homepage,
ICQ,
AIM,
YIM,
MSN
)
VALUES
('".mysql_real_escape_string(trim($_POST['Nickname']))."',
'".mysql_real_escape_string(trim($_POST['Email']))."',
'".md5(trim($_POST['Passwort']))."',
'".mysql_real_escape_string(trim($_POST['Show_Email']))."',
CURDATE(),
'".mysql_real_escape_string(trim($_POST['Wohnort']))."',
'".mysql_real_escape_string(trim($_POST['Homepage']))."',
'".mysql_real_escape_string(trim($_POST['ICQ']))."',
'".mysql_real_escape_string(trim($_POST['AIM']))."',
'".mysql_real_escape_string(trim($_POST['YIM']))."',
'".mysql_real_escape_string(trim($_POST['MSN']))."'
)
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
echo "Vielen Dank!\n<br>".
"Ihr Accout wurde erfolgreich erstellt.\n<br>".
"Sie können sich nun mit Ihren Daten einloggen.\n<br>".
"<a href=\"login.php\">Zum Login</a>\n";
}
}
else {
echo "<form ".
" name=\"Registrierung\" ".
" action=\"".$_SERVER['PHP_SELF']."\" ".
" method=\"post\" ".
" accept-charset=\"ISO-8859-1\">\n";
echo "<h5>Obligatorische Angaben</h5>\n";
echo "<span style=\"font-weight:bold;\" ".
" title=\"min.3\nmax.32\nNur Zahlen, Buchstaben und Unterstrich\">\n".
"Nickname :\n".
"</span>\n";
echo "<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n";
echo "<br>\n";
echo "<span style=\"font-weight:bold;\" ".
" title=\"min.6\">\n".
"Passwort :\n".
"</span>\n";
echo "<input type=\"password\" name=\"Passwort\">\n";
echo "<br>\n";
echo "<span style=\"font-weight:bold;\" ".
" title=\"min.6\">\n".
"Passwort wiederholen:\n".
"</span>\n";
echo "<input type=\"password\" name=\"Passwortwiederholung\">\n";
echo "<br>\n";
echo "<span style=\"font-weight:bold;\" ".
" title=\"Ihre.Adresse@Ihr-Anbieter.de\">\n".
"Email-Adresse:\n".
"</span>\n";
echo "<input type=\"text\" name=\"Email\" maxlength=\"70\">\n";
echo "<br>\n";
echo "<span>\n".
"Email-Adresse anzeigen:\n".
"</span>\n";
echo "<input type=\"radio\" name=\"Show_Email\" value=\"1\"> ja\n";
echo "<input type=\"radio\" name=\"Show_Email\" value=\"0\" checked> nein\n";
echo "<h5>Freiwillige Angaben</h5>\n";
echo "<span style=\"font-weight:bold;\">\n".
"Homepage :\n".
"</span>\n";
echo "<input type=\"text\" name=\"Homepage\" maxlength=\"70\">\n";
echo "<br>\n";
echo "<span style=\"font-weight:bold;\">\n".
"Wohnort :\n".
"</span>\n";
echo "<input type=\"text\" name=\"Wohnort\" maxlength=\"70\">\n";
echo "<br>\n";
echo "<span style=\"font-weight:bold;\">\n".
"ICQ :\n".
"</span>\n";
echo "<input type=\"text\" name=\"ICQ\" maxlength=\"20\">\n";
echo "<br>\n";
echo "<span style=\"font-weight:bold;\">\n".
"AIM :\n".
"</span>\n";
echo "<input type=\"text\" name=\"AIM\" maxlength=\"70\">\n";
echo "<br>\n";
echo "<span style=\"font-weight:bold;\">\n".
"YIM :\n".
"</span>\n";
echo "<input type=\"text\" name=\"YIM\" maxlength=\"70\">\n";
echo "<br>\n";
echo "<span style=\"font-weight:bold;\">\n".
"MSN :\n".
"</span>\n";
echo "<input type=\"text\" name=\"MSN\" maxlength=\"70\">\n";
echo "<br>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Registrieren\">\n";
echo "<input type=\"reset\" value=\"Zurücksetzen\">\n";
echo "</form>\n";
}
?>
Vielleicht könnt Ihr mir auf die Sprünge helfen...
Danke schon mal!
Markus
|