Sponsor-Board.de
Registrieren Script Problem!

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: Registrieren Script Problem! (/showthread.php?tid=18509)


Registrieren Script Problem! - florianjung - 12.11.2011 22:59

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


RE: Registrieren Script Problem! - Dennis - 12.11.2011 23:06

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


RE: Registrieren Script Problem! - florianjung - 12.11.2011 23:31

Danke.

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

Gruß


RE: Registrieren Script Problem! - Dennis - 12.11.2011 23:40

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


RE: Registrieren Script Problem! - florianjung - 12.11.2011 23:54

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ß


RE: Registrieren Script Problem! - Dennis - 13.11.2011 00:07

direkt hinter die queryabfrage mit dem insert.

da steht dann mysql_query(blabla) or die();


RE: Registrieren Script Problem! - Storage-Base.de - 13.11.2011 11:14

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.


RE: Registrieren Script Problem! - Sysix - 13.11.2011 12:49

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