DB Felder vergleichen

Henselmania

Mitglied
Hallo,
ich möchte gerne das vorm Registrieren geprüft wird ob der User vorhanden ist und ob die mail vorhanden sind in der Datenbank.

Das Script überprüft aber nur den User und nicht die Mail obwohl ich sie mit abfrage. Wieso fragt er also nicht die Mail mit ab ?

PHP:
<?php
    include("config.php");

    $sql = "SELECT username, email FROM user WHERE username='".$_POST['username']."'";  
    $result = mysql_query($sql);
    $row = @mysql_fetch_assoc($result);

   
        if ($row["username"] == $_POST["username"] && $row["email"] == $_POST["email"]) {
            echo "User vorhanden oder Mail schon vorhanden";
        }        
    else {
       //....
    }

?>
 
Hallo,

du fragst in deinem SQL auch nur die IDs abe, d.h. die eMail Adressen gehen dir verloren!

ich würde:

PHP:
$username = ...
$email = ...

$sql = "select * from user where username = '$username' OR email = '$email'";

... wenn was zurückkommt, gibt es das eine oder das andere schon ...

Grüße CKJ
 
Es muss doch aber eine lösung geben wo ich die Eingabe einfach mit den Werten in der Datenbank vergleichen kann so wie schon oben mit dem Namen in dem Script
 
So hab jetzt was neues gemacht geht aber leider immernoch nicht !

Kann mir jemand sagen wo der Fehler liegt....

PHP:
$sql1 = "SELECT Nickname, Mail FROM benutzerdaten WHERE Nickname='".$_POST['Nickname']."' AND Mail='".$_POST['Mail']."' "; 
    $result1 = mysql_query($sql1);
    $row1 = @mysql_fetch_assoc($result1);

   // if (!empty($_POST["Nickname"]) && !empty($_POST["Mail"])) {
        if ($row1["Nickname"] == $_POST["Nickname"] && $row1["Mail"] == $_POST["Mail"]) {
            if ($row1["Mail"] == $_POST["Mail"] && $row1["Nickname"] == $_POST["Nickname"])   {
			echo "User vorhanden";
        }        
		echo "Mail vorhanden";
		}
    else {
 
Hi ho Probie das mal:

PHP:
<?php
if(isset($_POST["submit"])) {
	include("config.php");
	
	$sql				= "SELECT Nickname, Mail FROM benutzerdaten";
	$result 		= mysql_query($sql);
	$data				= mysql_fetch_assoc($result);

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

	if(empty($_POST["username"])) 
	{
	    $fehler 		 = true;
	    $fehlertext .= "<b>Bitte Username angeben!</b><br>";
	}	
	elseif (strlen($_POST["username"]) < 4) 
	{
	    $fehler 		 = true;
	    $fehlertext .= "  Ihr Username ist zu Kruz!<br>\n";
	} 
	elseif ($data["username"] == $_POST["username"]) 
	{
			$fehler 		 = true;
			$fehlertext .= "		Ihr gewünschter Username ist leider schon vergeben!<br>\n";
	}	
		
	if(empty($_POST["email01"])) 
	{
		$fehler 		 = true;
	  $fehlertext .= "<b>Die E-Mail-Adresse fehlt!</b><br>\n";
	} 
	elseif (preg_match($muster, $_POST["email01"]) == 0) 
	{
	  $fehler 		 = true;
  	$fehlertext .= "  Die E-Mail Adresse ist ungültig!<br>\n";
	} 
	elseif ($_POST["email01"] != $_POST["email02"]) 
	{
			$fehler			 = true;
			$fehlertext .= "  Ihre E-Mail Adresse stimmt mit der Wiederholung nicht überein!<br>\n";
	}	
	elseif ($data["email"] == $_POST["email02"]) 
	{
			$fehler 		 = true;
			$fehlertext .= "  Die angegebene E-Mail Adresse ist leider schon Registriert!<br>\n";
	}
		
	if($fehler) 
	{
		echo "<p>$fehlertext</p>";
	} 
	else 
	{
		/* DEINE INSERT DATEN UND WEITERLEITUNG JENACHDEM WAS DU MACHEN WILLST */
	}
}
?>

Ändere deine Formulardaten und E-Mail daten nach belieben
 
Schon mal danke, aber das läuft noch nicht so richtig hab es jetzt angepasst. Er prüft jetzt zwar ob die Mail adresse existiert doch nicht den Nickname. Also Email geht aber Nickname nicht. Versteh aber nicht warum

PHP:
$sql1                = "SELECT Nickname, Mail FROM benutzerdaten";
    $result1         = mysql_query($sql1);
    $data                = mysql_fetch_assoc($result1);

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

    if(empty($_POST["Nickname"])) 
    {
        $fehler          = true;
        $fehlertext .= "<b>Bitte Username angeben!</b><br>";
    }    
    elseif (strlen($_POST["Nickname"]) < 4) 
    {
        $fehler          = true;
        $fehlertext .= "  Ihr Username ist zu Kruz!<br>\n";
    } 
    elseif ($data["Nickname"] == $_POST["Nickname"]) 
    {
            $fehler          = true;
            $fehlertext .= "        Ihr gewünschter Username ist leider schon vergeben!<br>\n";
    }    
        
    if(empty($_POST["Mail"])) 
    {
        $fehler          = true;
      $fehlertext .= "<b>Die E-Mail-Adresse fehlt!</b><br>\n";
    } 
    elseif (preg_match($muster, $_POST["Mail"]) == 0) 
    {
      $fehler          = true;
      $fehlertext .= "  Die E-Mail Adresse ist ungültig!<br>\n";
    } 
    elseif ($data["Mail"] == $_POST["Mail"]) 
    {
            $fehler          = true;
            $fehlertext .= "  Die angegebene E-Mail Adresse ist leider schon Registriert!<br>\n";
    }
        
    if($fehler) 
    {
        echo "<p>$fehlertext</p>";
    } 
    else 
    {
 
Habe das script bei mir mal getestet und es funktioniert
Ich weis leider nicht warum dies nicht funktioniert,
weist du ob "save_php" = ON und "register_globals" = OFF ist?
 
hab einen fehler gefunde. Er schaut nur in der ersten Zeile der Datenbank nach. Versuche ich es mit dem user und der email geht das script aber nicht wenn mehrer benutzer und mail adressen in der DB stehen.

Aber das muss doch auch möglich sein oder ?
 
Weiß jetzt nicht ob ich das alles richtig verstehe, aber:

wenn Du mehrere Zeilen aus der Datenbank abfragen willst, musst Du das in einer While-Schleife machen...
 
Zurück