[Php/MySQL] Rejestracja użytkowników

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Grucha666
Posty: 2
Rejestracja: pn maja 21, 2007 12:24 pm

[Php/MySQL] Rejestracja użytkowników

Post autor: Grucha666 »

Witam. Mam skrypt rejestracji użytkowników, napisałem go w oparciu o kilka kursów i manual php. Niestety są z nim problemy. Niezależnie jaki login wpisze w formularzu rejestracji, skrypt wywala mi ze taki login już istnieje.

Cały skrypt wygląda następująco:

[php]<?php
$login=$_POST['login'];
$password=$_POST['password'];
$confrim=$_POST['confrim'];
$mail=$_POST['mail'];

$sql = mysql_connect (localhost, user, pass);

mysql_select_db("baza_cms");

$zapytanie1="SELECT `login` FROM `cms_users` WHERE login='$login'";
$loginch = mysql_query($zapytanie1);

$zapytanie2="SELECT `mail` FROM `cms_users` WHERE mail='$mail'";
$mailch = mysql_query($zapytanie2);


if($loginch==FALSE)
{
if($mailch==FALSE)
{
$passch=strcmp($password, $confrim);
if($passch==0)
{
$passhash=md5($password);
$zapytanie3="INSERT INTO `cms_users` (`id`, `login`, `password`, `mail`) VALUES ('', '$login', '$passhash', '$mail')";
$register=mysql_query($zapytanie3);
}
else
{
echo "Podane hasła się nie zgadzaja.";
}
}
else
{
echo "Użytkownik o takim adresie e-mail już istnieje";
}
}
else
{
echo "Ten login jest już zajęty.";
}

mysql_close($sql);
?>[/php]

Odziwo, kiedy w if-ach pozamieniam ==FALSE na ==TRUE to skrypt doda użytkownika, albo postara się go dodać (nawet jak taki sam już istnieje).
Bardzo prosiłbym o pomoc, wytłumaczenie co robie źle.
HaWaJ
Nowy
Nowy
Posty: 159
Rejestracja: pt kwie 06, 2007 5:12 pm

Re: [Php/MySQL] Rejestracja użytkowników

Post autor: HaWaJ »

Witam, poruszałem temat skryptow rejestracji na tym forum tutaj masz jak zrobić takie coś w plikach PHP jak i w SQLite (zapytania podmienic mozna na MySQL)

http://forum.webinside.pl/viewtopic.php?t=11228

PS. Twój skrypt troche zagmatwany jest :)
Chmura
Przelotem
Przelotem
Posty: 220
Rejestracja: ndz gru 31, 2006 12:46 am
Lokalizacja: o stamtąd
Kontakt:

Re: [Php/MySQL] Rejestracja użytkowników

Post autor: Chmura »

jak już nie raz na forum wspomniałem nie znam sie na MySQL ale jeśli bym się znał (hehe) zapewne wyciągną bym loginy z bazy zapętlił i sprawdzał czy podany Login z formularza nie równa się któremuś z bazy (jeśli tak "FALSE", jeśli nie "TRUE")
HaWaJ
Nowy
Nowy
Posty: 159
Rejestracja: pt kwie 06, 2007 5:12 pm

Re: [Php/MySQL] Rejestracja użytkowników

Post autor: HaWaJ »

zapętlać nie trzeba :) moża użyć prostej funkcji:

[php]<?php

$login = $_POST['login'];
//odczytanie rekordow z tabeli
$czytaj = mysql_query("SELECT `id` (bądź " * ") FROM `cms_users` WHERE login = '$login' ");

if (mysql_num_rows($czytaj) == 0){

//dalsza instrukcja jeżeli podany login nie istnieje

}else{

//Instrukcja jeżeli podany login już istnieje:
echo 'Login zajęty!';
}

?>[/php]

btw. Dobrym sposobem jest wetknięcie do tabeli PRIMARY KEY`a (w wyżej podanej instrukcji jest to `id`).
ODPOWIEDZ