jak sprawdzic czy dany email istnieje??

0

probuje zrobic rejestrcje na stronie :) no i mam plik register i w nim forumlarz i sie wpisuje nick haslo email i jak sie klinkie rejestruj to idzie to pliku sprregister.php i tam ma sprawdzic czy taki ktos juz w bazie nie istnieje :) no i tu problem... jak sprawdzic czy ktos o takim email czy nicku juz istnieje??? prosze o pomoc :)

0

Dwa sposoby:

SELECT id FROM tabelauzytkownikow WHERE email='jaksemail' LIMIT 1;

oraz num_rows(), jak zwróci 1 to istnieje, jak 0 to nie istnieje

albo

SELECT COUNT(id) FROM tabelauzytkownikow WHERE email='jakisemail';

i pobranie wyniku zapytania, w pierwszej kolumnie będzie ilość userów o takim emailu, jak 1 to istnieje, jak 0 to nie istnieje. jak więcej niż 1 to masz źle coś z rejestracją ;-)

w zasadzie w tym drugim też można klauzulę LIMIT zastosować, a które jest lepsze - chyba zależy od rodzaju bazy danych, wielkości tabeli itp. trzeba by było przetestować, możliwe, że bez COUNT() będzie szybsze.

0

a tu co jest zle ???

<?


if($_POST['rejestruj'] == 'tak')
{
$name = $_POST['name'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$email = $_POST['email'];

	 $rej = "SELECT `id` FROM `user` WHERE `name`='".$name."'";
	 

	 
	 $rej = mysql_query($rej);
	 
	 if(!$rej)
	 {
	 echo mysql_error();
	 }
	 
	 $ile = mysql_num_rows($rej);
	 
	 if($ile > 0)
	 {
	 
		 die('Ten login jest już zajęty');
	 
	 }
	 
	 	 $rej = "SELECT `id` FROM `user` WHERE `email`='".$email."'";
	 
	 $rej = mysql_query($rej);
	 
	 if(!$rej)
	 {
	 echo mysql_error();
	 }
	 
	 $ile = mysql_num_rows($rej);
	 
	 if($ile > 0)
	 {
	 
		 die('Taki adres email jest już przypisany jednemu użytkownikowi. Wprowadż inny');
	 
	 }
	 
	 	 $rej = "INSERT INTO `users`
	 (
	 `id`,
	 `name`,
	 `password`,
	 `email`,

	 )VALUES(
	 '',
	 '".$name."',
	 '".$password."',
	 '".$email."',

	 
	 )
	 ";
	 
	 $rej = mysql_query($rej);
	 
	 if(!$rej)
	 {
	 
		 echo 'nie zostałes zarejstrowany';
	 
	 }
	
}
?>
0

Ja na oko nic nie widzę. Podaj co się (nie) wyświetla.

0
   
 $rej = "INSERT INTO `users`
      (
         `id`,
         `name`,
         `password`,
         `email`,

         )VALUES(
         '',
         '".$name."',
         '".$password."',
         '".$email."',

         
         )
         ";

a po co insertujesz ID ??

0
  1. Nie wolno walić przecinka w ostatnim argumencie
  2. Nie ma potrzeby ustawiać pól robiących za indeksy z ac
    Poprawiony kod:
$rej = 'INSERT INTO `users` (`name`, `password`, `email`) VALUES ("'.$name.'", "'.$password.'", "'.$email.'")';

1 użytkowników online, w tym zalogowanych: 0, gości: 1