Sponsor-Board.de

Normale Version: Registrieren Script Problem!
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich habe ein Registrieren Script geschrieben. Leider wird die Registrierung nicht ausgeführt. Irgendwas ist an meinem Script Falsch. Die Datenbank sollte 100%ig stimmen, da kein MYSQL Fehler kommt. Kann mir einer sagen was darran falsch ist?

PHP-Code:
<?php 
error_reporting
(E_ALL |E_STRICT);
if(empty(
$_SESSION['id'])) {

if(isset(
$_POST['user']) OR isset($_POST['first_name'])) {
  if(  
       isset(
$_POST['user']) AND
       isset(
$_POST['first_name']) AND
       isset(
$_POST['last_name']) AND
       isset(
$_POST['pass']) AND
       isset(
$_POST['pass2']) AND
       isset(
$_POST['street']) AND
       isset(
$_POST['plz']) AND
       isset(
$_POST['city']) AND
       isset(
$_POST['domain']) AND
       isset(
$_POST['captcha']) AND
       isset(
$_POST['mail']) AND
       isset(
$_POST['phone'])
     ) 
  {

     
$user $_POST['user'];
     
$first_name $_POST['first_name'];
     
$last_name $_POST['last_name'];
     
$pass $_POST['pass'];
     
$pass2 $_POST['pass2'];
     
$street $_POST['street'];
     
$plz $_POST['plz'];
     
$city $_POST['city'];
     
$domain $_POST['domain'];
     
$captcha $_POST['captcha']; 
     
$mail $_POST['mail'];
     
$phone $_POST['phone']; 
  
    
$check mysql_query("SELECT * FROM user WHERE username = '" $user "'");
$check2 mysql_query("SELECT * FROM user WHERE url = 'http://".$domain.".elier-international.ws/'"); 
  
    if(
$_POST['pass'] == $_POST['pass2'] AND $check == false AND $check2 == false AND md5($captcha) == $_SESSION['captcha_code']) {
      echo 
'<p style="color:green;">'.$lang->registerGood.'</p>';
      
    
$einfuegen mysql_query("INSERT INTO user (username, password, first_name, last_name, street, plz, city, land, status, email, url, phone) VALUES ('$user', '".md5($pass)."', '$first_name', '$last_name', '$street, '$plz', '$city' , 'germany', '1', '$mail', 'http://".$domain.".elier-international.ws/', '$phone')");  
      
      
    } else { 
$error 1; }
  
  } else {
    
$error 1;
  }
  if(
$error == 1) {
  echo 
$lang->registerError;
  } 
}


    echo 
'<h3>' $lang->registerTitle '</h3>';  
    echo 
'<form action="?page=register" method="post">';

    echo 
'<p>'.$lang->loginUsername.':<br><input name="user" type="text" size="30"></p>';
    echo 
'<p>'.$lang->homeLastName.':<br><input name="last_name" type="text" size="30"></p>';
    echo 
'<p>'.$lang->homeFirstName.':<br><input name="first_name" type="text" size="30"></p>';    
    echo 
'<p>'.$lang->loginPassword.':<br><input name="pass" type="password" size="30"></p>';
    echo 
'<p>'.$lang->loginPassword2.':<br><input name="pass2" type="password" size="30"></p>';
    echo 
'<p>'.$lang->registerStreet.':<br><input name="street" type="text" size="30"></p>';   
    echo 
'<p>'.$lang->registerPlz.':<br><input name="plz" type="text" size="6">';  
    echo 
'<input name="city" type="text" size="24"></p>'
    echo 
'<p>'$lang->registerMail .':<br><input name="mail" type="text" size="30">';
    echo 
'<p>'.$lang->costumerTel.':<br><input name="phone" type="text" size="30"></p>';  
    echo 
'<p>'.$lang->registerDomain.':<br><input name="domain" type="text" size="30">.elier-international.ws</p>';   
    echo 
'<img src="captcha/cap.php">';               
    echo 
'<p>'.$lang->registerCap.':<br><input name="captcha" type="text" size="30"></p>';
    echo 
'<p><input type="checkbox" name="agb" value="yes"> '.$lang->registerAGB.'</p>';
    echo 
'<p><input type="submit" value=" '$lang->loginBtn .' "></p>';
    echo 
'</form>';
    echo 
'<p>' $lang->registerLogin ' <a href="?page=login"> '$lang->registerLogin2 '</a></p>';

} else {
echo 
'<p>'.$lang->alreadyLoggedIn.'</p>';
}
?>


Danke im vorraus!Smile
Florian

bevor ich mich jetzt sinnlos durch deinen code wühl: schon mit error_reporting(E_ALL |E_STRICT) fehlerquellen analysiert?



Zeile 35: Absicht da die $domain Variable als String zu definieren?

schreib das so:

PHP-Code:
$check2 mysql_query("SELECT * FROM user WHERE url = 'http://".$domain.".elier-international.ws/'"); 


und ersetz die restlichen abfragen auch nach dem schema, denn das wird wohl das Problem auf dem ersten Blick sein.

2.
Zeile 40 Du versuchst dem Feld id den Wert nichts zuzuweisen. Schätze mal das hast du auf auto_increment in der datenbank gesetzt -> rausnehmen, sonst kollidiert das

Danke.

Es läuft leider immer noch nicht. Ich habe oben meinen Aktuellen Code editiert.

Gruß
in zeile 41 haste noch einmal $domain vergessen.
ansonsten hat das script keine fehler ausgespuckt?

wenn nicht, mach hinter das insert query mal ein

PHP-Code:
or die(mysql_error();) 


Mal schauen was mysql zurückgibt

Es kommt immer der Register Error aus Zeile 50. Mehr kommt leider nicht.

Code ist oben Aktualisiert Wink

Kannst dumir mal bitte die Zeile nenne in die Ich

PHP-Code:
or die(mysql_error();) 

eintragen soll?

Gruß

direkt hinter die queryabfrage mit dem insert.

da steht dann mysql_query(blabla) or die();
Wie wäre es wenn du $error einmal 1 und 2 zuweist?

Wo wird $einfuegen ausgeführt das der Query auch durchgeführt wird? Ein Query der in einer Variable gespeichert wird, wird nicht ausgeführt.

Desweiteren sollte man HTML Code von PHP trennen, dient auch der Übersichtlichkeit.

Wies prüfst du das Post eigentlich alles einzeln? $_POST ist ein Array, entferne doch einfach den Send Button und die 2 $_POST's die du darüber abfragst aus dem Array und prüfe die values mit nem foreach auf isset.

Aus $check und $check2 kannst du eigentlich auch ein Query machen. Achja, die Tabellen etc, in einem Query immer maskieren, verhindert SQL Injection.

//EDIT:
Statt action="?page=register" würde ich einfach prüfen ob der Send Button gesetzt ist, so kannst du dann z.B. das machen:

if(isset($_POST["ok"])) {
_MYSQL_QUERY_
} else {
_FORMULAR_
}

Finde ich persönlich effektiver, so verhinderst du auch das ggf. jemand auf die direkte URL geht und dir leere oder falsche Einträge setzt.

Code:
$einfuegen = mysql_query("INSERT INTO user (username, password, first_name, last_name, street, plz, city, land, status, email, url, phone) VALUES ('$user', '".md5($pass)."', '$first_name', '$last_name', '$street, '$plz', '$city' , 'germany', '1', '$mail', 'http://".$domain.".elier-international.ws/', '$phone')");


eigener script? wenn ja haste bestimmt nicht das automatisch "ausgeklammert"

Code:
$einfuegen = mysql_query("INSERT INTO user (username, password, first_name, last_name, street, plz, city, land, status, email, url, phone) VALUES ('".$user."', '".md5($pass)."', '".$first_name."', .....


und versuch mal mit `` zu arbeiten Wink kA obs bei city land oder url scheitern könnte

Code:
$einfuegen = mysql_query("INSERT INTO user (`username`, `password`, ....


MFG Sysix

Referenz-URLs