rejestracja- Czy dany login jest juz w bazie

0

Witam mam problem ze spraszaniem użytkowników czy dany login występuje już w bazie ,nigdy nie maiłem potrzeby masłowej rejestracji , zawsze było kilka osób dodawane przez phpmyadmin i zapytania sql, mam nadzieje ze pokażecie co robie zle :> ;-P // teraz firma sie rozkreca to będzie więcej zleceń i wiecej nauki , ale to dobrze przynajmniej sie nie zapomina programowania [green]
[code]

<?php include_once('config_database.php'); //odbieranie danych $login=$_POST['login']; $haslo=$_POST['haslo']; $haslotwo=$_POST['haslotwo']; ////////////////////////////////////////////////////////////////////////////// $polaczenie=mysql_connect(connect,user,password)or die('connect_error'.mysql_error()); mysql_select_db(database)or die('database_error'.mysql_error()); //tu powinno sprawdzać czy jest taki login czy go nie ma $zapytanielog= "SELECT * FROM user login='$login'"; $sprawdzlog= mysql_query($zapytanielog)or die(mysql_error()); $numrows=mysql_num_rows($sprawdzlog); if($numrows > 0) { echo "Podany login już istnieje"; } if($haslo!=$haslotwo) { echo "Hasło jest błędne"; } $zapisrej="INSERT INTO user(`login`,`haslo`)VALUES('$login','$haslo')"; $touser=mysql_query($zapisrej); if($touser) { echo"błąd nie można dodać użytkownika"; } ?>

[/code]
Lub jak znacie jakieś inne sposoby to proszę sie podzielić

0

zgubiłeś WHERE w zapytaniu. No i jak użytkownik już istnieje, to tylko wyświetlasz komunikat, że istnieje. Skrypt leci sobie dalej. (Pominę już sam fakt podatności na SQL injection)

0

poza tym "if($touser) { echo 'błąd...'; }" - raczej if (!$touser)

0
Rene napisał(a)

poza tym "if($touser) { echo 'błąd...'; }" - raczej if (!$touser)

To już dawno zmodyfikowałem ; , ale nadal nie robi tego co bym chciał, czy któryś z was programujących w php ma jakieś inne swoje sposoby na dobry skrypt rejestracji albo logowania ? ;]

0

Przecież Ci nav napisał...

$zapytanielog= "SELECT * FROM user WHERE login='$login'";
0
Coldpeer napisał(a)

Przecież Ci nav napisał...

$zapytanielog= "SELECT * FROM user WHERE login='$login'";

g**no daje , nawet jak taki sam login juz w bazie jest to niepokazuje błedu tylko dodaje ten login , nie wiem czy cos jest z moim serverem czy z tym skryptem

0

Logiczne, że dodaje. Rozumiesz w ogóle ten kod, który napisałeś? Sugeruję coś w stylu:

<?php

include_once('config_database.php');
//odbieranie danych
$login=$_POST['login'];
$haslo=$_POST['haslo'];
$haslotwo=$_POST['haslotwo'];

//////////////////////////////////////////////////////////////////////////////


$polaczenie=mysql_connect(connect,user,password)or die('connect_error'.mysql_error());
mysql_select_db(database)or die('database_error'.mysql_error());
//tu powinno sprawdzać czy jest taki login czy go nie ma

//TU DODANE   WHERE
$sprawdzlog = mysql_query("SELECT * FROM user WHERE login='$login'")or die(mysql_error());


if(mysql_num_rows($sprawdzlog) > 0)
    echo "Podany login już istnieje";
elseif($haslo!=$haslotwo)
    echo "Hasło jest błędne";
else
{
  $touser=mysql_query("INSERT INTO user(`login`,`haslo`)VALUES('$login','$haslo')");
  if(!$touser)
    echo"błąd nie można dodać użytkownika";
}

?>

//też zgubiłeś to where (dodałem) - n
// a fakt, kopiowałem kod z pierwszego postu, nie przypatrzyłem się zapytaniu - Cold

0

-Witam,

Ja u siebie mam rozwiązane to tak: (działa :-) )

$polacz = mysql_connect($host, $user, $password) or die(mysql_error());
  $db = mysql_select_db($dbName, $polacz) or die(mysql_error());


$query = "SELECT COUNT(*) FROM dane WHERE nazwisko='$nazwisko' && imie='$imie'";
$result = mysql_query($query);
$isUser = mysql_fetch_row($result);
if ($isUser[0] == 1) {
    print($imie. $nazwisko. ' istnieje w bazie<br />');
} else {
    $query = "INSERT INTO dane VALUES (0,'$imie', '$nazwisko', '$miejscowosc', '$email', '$tel_praca', '$tel_priv')";
$result = mysql_query($query);
if($result) { echo "Osoba została pomyślnie zapisana do bazy danych"; }
}

?>

// Niepotrzebnie pobierasz wszystkie rekordy, wystarczy COUNT(login) - Cold

0

i załóż klucz na te kolumny, bo jak beda w bazie 2 osoby o identycznych imionach i nazwiskach, to kolejne beda sie dodawac bez ograniczen. Inna sprawa, ze moglbys dac >0 niz =1...

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