Logo - MyWebsolution.de
User gesamt  :  2310943
User online  :  3
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Workshops » Registrierung gibt bei userverwaltung Fehlermeldung

Seite: 1 Posts pro Seite: 5 10 20
Autor Thread
13.04.2007 15:34 Uhr Registrierung gibt bei userverwaltung Fehlermeldung
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&uuml;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
Profil ansehen Mail senden
13.04.2007 15:47 Uhr
Negura
Forenposter
 
registriert 06.12.2006
wohnt in
Beiträge 57
Hallo Markus,

erstmal herzlich willkommen.

Zu deinem Problem:
führe bitte mal
PHP:

<?
 
echo phpversion();
?>


aus, dann weist du schonmal auf welcher version php fährt.

Sollte deine Version kleiner als 4.3.0 sein, einfach mal mysql_escape_string verwenden, anstelle von mysql_real_escape_string.

Wenn du Glück hast, funktioniert es dann.

Gruß Negura
Profil ansehen
13.04.2007 15:57 Uhr
gutelaune75
Forenuser
registriert 13.04.2007
wohnt in bei Mainz ;o)
Beiträge 12
Hi Negura!

Danke für das nette Willkommen und die flotte Antwort :)

Hab ich doch gleich mal gemacht und festgestellt das ich PHP Version 4.1.1 verwende *gruml* Okay, ich werde das mal in ein nicht "real"-string verändern und bin gespannt was dabei rauskommt.

Dann ist es wohl auch so das ich in der Erstellung der Datenbank mit "BOOL NULL" nix anfangen konnte. Die Version scheint dann auch schon etwas älter zu sein, was?!? Hab da jetzt erstmal einfach INT draus gemacht :oops:

Gebe dann selbstverständlich noch Bescheid was das Ergebnis bringt ;)

Grüsse
Markus
Profil ansehen Mail senden
13.04.2007 16:02 Uhr
Negura
Forenposter
 
registriert 06.12.2006
wohnt in
Beiträge 57
anstatt nun das real entfernen, solltest du doch einfach auf eine neu php version aktualisieren, das wirst du früher oder später sowieso machen müssen, wenn du dich etwas mehr mit php beschäftigen möchtest.

Gruß Negura
Profil ansehen
13.04.2007 22:53 Uhr
gutelaune75
Forenuser
registriert 13.04.2007
wohnt in bei Mainz ;o)
Beiträge 12
So!
Du hast natürlich recht. Habe ich auch gerade gemacht ;) Ich hatte eben nur das Problem das ich so ein alles in einem paket installiert hatte. Das konnte man auch nicht updaten und war scheinbar nicht mehr das neueste. Jetzt habe ich aber ein aktuelles gefunden und es funktioniert jetzt auch wunderbar. xD

Und siehe da, es funktioniert! Jetzt hab ich am Wochenende auch einiges zu tun und auszuprobieren... Bin mal gespannt wie weit ich komme bevor ich Euch schon wieder belästigen muss. ;)

Ich bedanke mich! :mygod:

Grüsse
Markus
Profil ansehen Mail senden
14.04.2007 20:23 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Hey gutelaune75!

Willkommen im Forum :)

War ja jetzt lange "inaktiv", wegen Abi etc.. un hab dein Problem au eben erst gelesen, aber hat sich ja schon von selbst gelöst, thx @ Negura ;)


Profil ansehen Mail senden
Seite: 1 no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik