Strona 1 z 1

[Php/MySQL] Rejestracja użytkowników

: pn maja 21, 2007 3:26 pm
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.

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

: pn maja 21, 2007 8:17 pm
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 :)

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

: pn maja 21, 2007 8:41 pm
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")

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

: pn maja 21, 2007 9:03 pm
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`).