Probleme mit dem Registrierungsformular

LarsB

Mitglied
Nach dem Klick auf den Button "Registrieren" passiert nichts.
Eventuell eine Fehler oder vielleicht habe ich auch was vergessen.
Hier der Code:

PHP:
<?php

// MySQL Zugangsdaten
define("MYSQL_HOST", "xxxx");
define("MYSQL_USER","xxxx");
define("MYSQL_PASS", "xxxx");
define("MYSQL_DATA", "xxxx");

// MySQL Datenbankverbindung herstellen und Datenbank auswählen
$mysql_db_connect = mysql_connect(xxxx, xxxx, xxxx) 
                    OR die("Error: ".mysql_error());
$mysql_db_select  = mysql_select_db(xxxx) 
                    OR die("Error: ".mysql_error());

// Vom benutzer eingegebene Daten "einlesen"
$user_benutzername=$_POST['Benutzername']; 
$user_passwort=$_POST['Passwort']; 
$user_email=$_POST['Email']; 
$user_name=$_POST['Name']; 

if(isset($_POST['submit']) AND $_POST['submit']=='Registrieren')
{    
    // Prüfen, ob alle Formularfelder vorhanden sind
    if($user_name == "" or $user_benutzername == "" or $user_email == "" or $user_passwort == "")
    {
        // Ein Element im Fehlerarray hinzufügen
        echo "Bitte benutzen Sie das Formular aus dem Registrierungsbereich";
        exit()  ;  
    }  
    //check username
    $checkuser = mysql_query("SELECT Nickname FROM User WHERE Nickname ='$user_benutzername'");
    $username_exist = mysql_num_rows($checkuser);
    if($username_exist > 0){
        echo "I'm sorry but the username you specified has already been taken.  Please pick another one.";
        exit();
    }
    //checkmail
    $mailcheck = mysql_query("SELECT EMail  FROM User WHERE EMail ='$user_email'");
    $mail_exist = mysql_num_rows($mailcheck);
    if($mail_exist > 0){
        echo"I'm sorry but the mail adress you entered has already been taken.  Please pick another one.";
        exit();                    
            }    


$sql = "INSERT INTO User (Benutzername, Passwort, Email, Name, Registrierungsdatum)
VALUES('$user_benutzername', '$user_name', '$user_email','$user_passwort', NOW() )";
mysql_query($sql) or die(mysql_error());
echo "Your account has been made";
}
else
{        
echo ("Location: /registrierung.html");
}
?>

:confused::confused: Bitte helft mir :confused::confused:
 
Moin Lars,

was meinst du mit "nichts" ? Irgendeine Ausgabe müsste dies Skript in jedem Fall produzieren.

Evtl. wäre zur Diagnose noch hilfreich, wenn du das Formular postest.
 
Hi,
für eine genaue Fehleranalyse wird hier denke ich das Formular benötigt. Ausserdem solltest du deine Spalten im SQL-Statement escapen, damit du nicht gefahr läufst reserved names zu verwenden.

Gruß.
 
Das Formular ist unter folgender Adresse gehostet:

http://bg.bsvmilk.de/2/registrierung.html

das genaue Problem liegt darin, dass er weder eine Fehlermeldung ausspuckt, wenn einer z.B. keine mail adresse angibt, noch das er die Daten überhaupt in die DB schreibt. Was funktioniert an dem Code ist die letzte zeile sprich die weiterleitung auf die registrierungsseite wenn es nicht funktioniert. Mehr aber auch nicht.
 
Das hier steht im Quelltext der Seite:

HTML:
<button class="button validate" type="submit">Registrieren</button>

Der Button hat keinen Namen und somit kann die IF Anweisung die prüft ob der Button angeklickt wurde auch nicht ausgeführt werden.
 
Danke aber das hat i.wie immer noch nicht geholfen..
Habe es den Namen "Registrieren" gegeben...
Findest du evtl. noch weiter Fehler die ich gemacht habe? :confused::)
 
Hast du diese Zeile dann auch geändert:

PHP:
if(isset($_POST['submit']) AND $_POST['submit']=='Registrieren')

muss dann nämlich:

PHP:
if(isset($_POST['Registrieren']) AND $_POST['submit']=='Registrieren')

heißen!!
 
Ja das habe ich auch schon gefunden..trotzdem nochmal danke...aber es klappt immer noch nicht..bin am verzweifeln -.-
 
Es fehlt auch noch das value attribut.
Gemäß deinem php code
PHP:
isset($_POST['submit']) AND $_POST['submit']=='Registrieren')
wäre folgendes richtig.
HTML:
<button class="button validate" type="submit" name="submit" value="Registrieren">Registrieren</button>

Was funktioniert an dem Code ist die letzte zeile sprich die weiterleitung auf die registrierungsseite wenn es nicht funktioniert
Du meinst das da?
PHP:
echo ("Location: /registrierung.html");

Ich bezweifle das das funktioniert.
Wenn dann so:
PHP:
header("Location: /registrierung.html");

Noch was:
Du verwendest die POST Variablen ( bzw. die Eingaben der user ) direkt in deinen SQL Statements.
Das ist tunlichst zu unterlassen.
Mal wieder Stichwort SQL Injection
 
Herzlichen Dank!

Dennoch auch diese Hilfe hat nichts dergleichen gebracht.

Die Umleitung hatte ich bereits auf header geändert..ist mir dann auch mal irgendwann aufgefallen als mir immer Location [..] auf einer sonst weißen seite angezeigt wurde.
Dennoch ist das Problem nicht beseitigt. Das mit den POST Variablen ändere ich sobald der rest funktioniert.
 
Zurück