Passwort und Email auf Unique Prüfen

  • Themenstarter Themenstarter DaWeed
  • Beginndatum Beginndatum
D

DaWeed

Guest
ich bin ja jetzt soweit mit meinem registrierungsscript fertig nur is das Problem , dass in meinem php script keine fehlermeldung ausgegebn wird , wenn der user oder die Email addy schon vorhanden ist obwohl ich eine vermeidlich funktioniernde sicherung dagegn hab , da es ja nicht schön ist , wenn ein MySQL felher angezeigt wird kann mir da vl. jemand helfen

hier das script :
PHP:
 <?php
    //Registrierung.php
error_reporting(E_ALL);
      session_start();
include "config.php"; //config variabeln einbinden
      mysql_connect("$db_host","$db_user","$db_pass") or DIE ("Keine Verbindung zur     Datenbank möglich");
      mysql_select_db("$db_name") or DIE ("Die Datenbank existiert nicht");
      $user = $_POST["Name"];//Username definieren
      $email = $_POST["EMail"];//E-mail Adresse definieren
      srand(microtime()*100000000);//passwort erzeugen
      $password = rand(154263,10848756);//passwort begrenzung
      $hashpass = md5($password);

if ($_POST["Name"]== "")
 {
//echo "<center>Bitte gebe einen Benutzernamen ein.</center>";
exit();
}
if ($_POST["EMail"]=="")
 {
//echo "<center>Bitte gebe deine E-Mail Adresse ein.</center>";
exit();
}     
    $queryname= "Select Name FROM users
               WHERE  Name='".mysql_escape_string($user)."'";
      $resultname=mysql_query($queryname);
while ($rowname = mysql_fetch_row ($resultname))         
  {
if ($rowname)
 {
echo  "<center>Username ist bereits Vergeben , bitte ändere deine Angaben</center>";
    }
   }
      $querymail="SELECT EMail FROM users Where EMail ='".mysql_escape_string($email)."'";
      $resultmail=mysql_query($querymail);
while ($rowmail = mysql_fetch_row ($resultmail))
 {
if  ($rowmail)
 {
echo "<center>E-mail Adresse ist bereits Vergeben, bitte ändere deine Angaben</center>";
}
if (!$rowmail OR !$rowname) {   
     $eintrag = "INSERT INTO users (ID, Name, EMail, Password) VALUES ('', '$user', '$email', '$hashpass')";
     $eintragen = mysql_query($eintrag) or DIE ("MySQL-Fehler: " . mysql_error()); 
echo  "<center>Registrierung erfolgreich!</center>\n<br />";
echo  "<center>Dir wird nun eine E-Mail mit deinen Zugangsdaten gesendet,</center>\n<br />";
echo  "<center>Du kannst dich dann mit deinem Passwort und deinem Benutzernamen Einloggen</center>\n<br />";
echo  "<a href='http://maofem.ma.ohost.de/login_script.php'>Login</a>";
     }
    }
exit(); 
mysql_close();
.....
?>
 
PHP:
$sqlresult= "Select Name, EMail FROM users";         // HIER IST DER FEHLER!!

if ($sqlresult == "$user OR $email'")

ergebit doch auch keinen Sinn diese If abfragen wird nie anspringne
 
ich hab was verändert ich editiren das oben also wäre nett wenn man sich das durchguckt weil dann wird nichts mehr ausgegebn oÔ
 
Hi,
habe hier ein Buch (PHP und MySQL für Kids Praxisbuch), in dem die Registrierung für ein Forum beschrieben wird. Die unten gepostete Datei wird in das Registrierungsformular includet und überprüft u.a. auch ob ein Nutzername bereits vergeben ist.

PHP:
<?php

if (empty($_POST['unregister']) && !empty($_POST['user'])) {

  $user = trim($_POST['user']);

  $pw1 = trim($_POST['pw1']);

  $pw2 = trim($_POST['pw2']);

  $email = trim($_POST['email']);

  if (strlen($user) < 5) {

    $status .= "Der Nutzername ist zu kurz!<br>";

  } 

  if (strpos($user, " ") > 0) {

    $status .= "Der Nutzername enthält Leerzeichen!<br>";

  } 

  if (strlen($pw1) < 5) {

    $status .= "Das Passwort ist zu kurz!<br>";

  } 

  if (strpos($pw1, " ") > 0) {

    $status .= "Das Passwort enthält Leerzeichen!<br>";

  } 

  if ($pw1 != $pw2) {

    $status .= "Die Passwörter stimmen nicht überein!<br>";

  } 

  if ($user == $pw1) {

    $status .= "Nutzername und Passwort müssen voneinander abweichen!<br>";

  } 

  $muster = "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";

  if (preg_match($muster, $email) == 0) { // keine Übereinstimmung mit dem Suchmuster

    $status .= "Die E-Mail-Adresse ist ungültig!<br>";

  } 



  if (empty($status)) {

    $sql_usercheck = "SELECT * FROM $user_tbl WHERE user='$user'";

    $result = mysql_query($sql_usercheck);

    if (mysql_num_rows($result) == 1) {

      $status .= "Nutzername schon vergeben!<br>";

    } 

    $pw = md5($pw1);

    $sql_pwcheck = "SELECT * FROM $user_tbl WHERE pw='$pw'";

    $result = mysql_query($sql_pwcheck);

    if (mysql_num_rows($result) == 1) {

      $status .= "Bitte wähle ein anderes Passwort!<br>";

    }

    $sql_emailcheck = "SELECT * FROM $user_tbl WHERE email='$email'";

    $result = mysql_query($sql_emailcheck);

    if (mysql_num_rows($result) > 0) {

      $status .= "Bitte gib eine andere E-Mail-Adresse an!<br>";

    } 

  } 



  if (empty($status)) {

    $sql_putin = "INSERT INTO $user_tbl

(user, pw, email, member, timestamp)

VALUES ('$user', MD5('$pw1'), '$email', 0, NOW())";

    if (mysql_query($sql_putin)) {

      $status = "Registrierung erfolgreich!<br>";

      $status .= actimail($user, $email);

    } else {

      $status = "Registrierung nicht erfolgreich!<br>";

    } 

  } 



} 

?>
 
Zurück
Oben