Probleme mit dem Registrierungsformular

Zuletzt bearbeitet:
Hi, vergleich doch mal deine SQL Querys.

SQL:
SELECT Nickname FROM User WHERE Nickname ='$user_benutzername';
SELECT EMail  FROM User WHERE EMail ='$user_email';
INSERT INTO User (Benutzername, Passwort, Email, Name, Registrierungsdatum)
    VALUES('$user_benutzername', '$user_name', '$user_email','$user_passwort', NOW() ;

Wie sind den die richtigen Namen der Spalten?
Nickname oder Benutzername?
Email oder EMail?

Der INSERT ist durcheinander!
Benutzername <- '$user_benutzername',
Passwort <- '$user_name',
Email <- '$user_email',
Name <- '$user_passwort',
Registrierungsdatum <- NOW() ";


Das hier ist auch schmarn, wenn du die Verbindungsdaten eh direkt in den Verbindungsaufbau schreibst brauchst du sie nicht als Konstanten definieren.
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());

Poste doch mal beide Scripte komplett oder tu sie im Anhang mit senden wenns geht.

MFG Napofis
 
Zuletzt bearbeitet von einem Moderator:
Registrierung.php
PHP:
<?php

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

// MySQL Datenbankverbindung herstellen und Datenbank auswählen
$mysql_db_connect = mysql_connect(localhost, xxx, xxx) 
                    OR die("Error: ".mysql_error());
$mysql_db_select  = mysql_select_db(xxx) 
                    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['Registrieren']) 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 Benutzername FROM User WHERE Benutzername ='$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_passwort', '$user_email','$user_name', NOW() )";
mysql_query($sql) or die(mysql_error());
echo "Your account has been made";
}
else
{        
header ("Location: /2/index.html");
}
?>

registrierung.html

PHP:
<!--
	Window.onDomReady(function(){
		document.formvalidator.setHandler('passverify', function (value) { return ($('password').value == value); }	);
	});
// -->

<form action="Registrierung.php" method="post" class="form-validate" style="height: 402px">

<div class="style8" style="height: 28px"><strong class="smallTxt">Registrierung</strong></div>

<table cellpadding="0" cellspacing="0" border="0" class="contentpane" style="width: 63%">
<tr>
	<td height="40" style="width: 21%">
		<label id="namemsg" for="name" class="boxTxt1" title="name">
			<span class="style6">Name</span>:
		</label>
	</td>
  	<td style="width: 14px">

  		<input type="text" name="name" id="name" size="40" value="" class="inputbox required" maxlength="50" /> *
  	</td>
</tr>
<tr>
	<td height="40" style="width: 21%">
		<label id="usernamemsg" for="username">
			<span class="style6" title="benutzername">Benutzername</span>:
		</label>
	</td>
	<td style="width: 14px">

		<input type="text" id="username" name="username" size="40" value="" class="inputbox required validate-username" maxlength="25" /> *
	</td>
</tr>
<tr>
	<td height="40" style="width: 21%">
		<label id="emailmsg" for="email" title="Email">
			E-<span class="style6">Mail</span>:
		</label>
	</td>
	<td style="width: 14px">

		<input type="text" id="email" name="email" size="40" value="" class="inputbox required validate-email" maxlength="100" /> *
	</td>
</tr>
<tr>
	<td height="40" style="width: 21%">
		<label id="pwmsg" for="password">
			<span class="style6" title="Passwort">Passwort</span>:
		</label>
	</td>
  	<td style="width: 14px">

  		<input class="inputbox required validate-password" type="password" id="password" name="password" size="40" value="" /> *
  	</td>
</tr>
<tr>
	<td height="40" style="width: 21%">
		<label id="pw2msg" for="password2">
			<span class="style6">Passwort</span> <span class="style6">bestätigen</span>:
		</label>
	</td>
	<td style="width: 14px">

		<input class="inputbox required validate-passverify" type="password" id="password2" name="password2" size="40" value="" /> *
	</td>
</tr>
<tr>
	<td colspan="2" height="40">
		<span class="style7" style="height: 40px"><br />
		Felder</span> <span class="style7" style="height: 40px">die mit einem Stern (*) markiert sind, werden unbedingt</span>
		<span class="style7" style="height: 40px">benötigt</span>.	</td>
</tr>
</table>
	<button class="button validate" type="submit" name="Registrieren" value="Registrieren">Registrieren</button>
	<input type="hidden" name="task" value="register_save" />

	<input type="hidden" name="id" value="0" />
	<input type="hidden" name="gid" value="0" />
	<input type="hidden" name="dbdd3e35d4b39908280919bee353e585" value="1" /></form>
					
									</div>
									</div>
 
Ändere mal die Zeile
PHP:
if(isset($_POST['Registrieren']) AND $_POST['submit']=='Registrieren')


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

und schau wie weit du kommst mit dem Registrieren.

PS: stell man den Debug Modus an, das hätte dir den Fehler gezeigt.
 
Zuletzt bearbeitet:
Jetzt spuckt er mir immerhin schoneinmal die Fehlermeldung:

Bitte benutzen Sie das Formular aus dem Registrierungsbereich

aus.
Ich glaube ich stehe voll auf dem Schlauch.,.was ist denn davor falsch?

PHP:
// 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()  ;
 
Debug Modus stellst du mit:
PHP:
error_reporting(E_ALL);
an... Müsste dir alle Fehler ausgeben...
Falls es bei mysql liegt müsste dir:
PHP:
mysql_error();
helfen...
LG
Daniel0108 ;)
 
eine der variablen ist leer

füg mal zu Testzwecken
PHP:
echo 'name '.$user_name.'<br>';
echo 'benutzername'.$user_benutzername.'<br>';
echo 'email'.$user_email.'<br>';
echo 'passwort '.$user_passwort.'';

ein. dann siehst du, welche Variable leer bleibt.
 
Debug Modus stellst du mit:
PHP:
error_reporting(E_ALL);
...

Das zeigt dir nur Fehler!
Wenn eine Variable bei einer Prüfung nicht definiert ist erzeugt das keinen Fehler sondern nur eine Notiz die so nicht angezeigt wird.

Das zeigt so ziehmlich alles.
PHP:
error_reporting(-1)


@vandamp alle sind leer

de Fehler liegt hier

PHP:
$user_benutzername=$_POST['Benutzername']; 
$user_passwort=$_POST['Passwort']; 
$user_email=$_POST['Email']; 
$user_name=$_POST['Name'];

in der Form sind alle klein geschrieben.


Also:
PHP:
$user_benutzername=$_POST['benutzername']; 
$user_passwort=$_POST['passwort']; 
$user_email=$_POST['email']; 
$user_name=$_POST['name'];
 
Sorry weiter oben habe ich einen Fehler drin gehabt wo ich geschrieben habe das du die $_POST["submit"] umbenennen soltst. Hatte nur bei einem den Namen geändert und beim zweiten "submit" stehen lassen.

Du hast aber glaub ich auch ein paar Fehler bei den Variablen und der Wertezuweisung:

HTML:
<input class="inputbox required validate-password" type="password" id="password" name="password" size="40" value="" />

Du übergibst aber:

PHP:
$user_passwort=$_POST['Passwort'];

Bei der POST-Variable schreibst du $_POST["Passwort"] es wird aber die Variable $_POST["password"] geliefert
 
^^ jo als ich hab das script nicht ausgeführt.
Er hats gestern schon gepostet, wo noch mehr Fehler drin waren, da hab ichs getestet und ausgebessert ;)
 
Zurück