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
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
- Nie wolno walić przecinka w ostatnim argumencie
- 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.'")';