Малко помощ за система за регистрация

Nazi_93

Registered
Здравейте,правя простичка система за регистрация с PHP u MySql
Имам проверка за полетата от формата (кое с каква дължина да е и с условията там..)
Въпросът ми е:Как да проверя дали в БД-то в таблицата users вече съществува такова име/и-мейл?
Ето и register.php
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
     <?php
$username='root';
$server='localhost';
$password='nababatidrenjulite';
$database='users';
mysql_connect($server, $username, $password) or die (mysql_error());
mysql_select_db($database) or die (mysql_error());
$user=$_POST['user'];
$pass=$_POST['password'];
$pass2=$_POST['password2'];
$email=$_POST['email'];
if ($pass!=$pass2){
    echo "Паролите не съвпадат!";
}
else if (strlen($user)<5){
    echo "Името ви трябва да е поне 5 символа!";
}
else if (strlen($pass)<5){
    echo "Паролата Ви трябва да е поне 5 символа!";
}
else if (strlen($email)<2){
    echo "Невалиден E-mail адрес!";
}


?>
  </body>
</html>
 
Листваш си имената и после проверяваш само..
Примерно:
PHP:
if($row['user'] == $_POST['username'])
{
echo "Има потребител с това име!";
}
 
$select="SELECT username
FROM users
WHERE username='$user'";
$query= mysql_query($select) or die (mysql_error());
while ($row=mysql_fetch_array($query)){
if($row['user'] == $_POST['username'])
{
echo "Има потребител с това име!";
}
else
{
echo "регистрацията успешна";
}
нещо такова нали
 
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
     <?php
$username='root';
$server='localhost';
$password='nababatidrenjulite';
$database='users';
mysql_connect($server, $username, $password) or die (mysql_error());
mysql_select_db($database) or die (mysql_error());
$user=$_POST['user'];
$pass=$_POST['password'];
$pass2=$_POST['password2'];
$email=$_POST['email'];
if ($pass!=$pass2){
    echo "Паролите не съвпадат!";
}
else if (strlen($user)<5){
    echo "Името ви трябва да е поне 5 символа!";
}
else if (strlen($pass)<5){
    echo "Паролата Ви трябва да е поне 5 символа!";
}
else if (strlen($email)<2){
    echo "Невалиден E-mail адрес!";
}
else {
$select="SELECT username
FROM users
WHERE username='$user'";
$query=  mysql_query($select) or die (mysql_error());
while ($row=  mysql_fetch_array($query)){
    if ($row['username']==$_POST['user']){
        echo "Има потребител с такова име";
        
        }
    else{
        $insert="INSERT INTO users (username,password,email)
            VALUES ('$user','$pass','$email')";
        $result3=mysql_query($insert) or die (mysql_error());
        if ($result3<=1)
            echo "Грешка при регистрацията!";
        else {
            echo "Регистрацията успешна!";
        }



    }
}
}
?>
  </body>
</html>
Пробвах така,но сега даже не иска да запише в БД-то от формата..
 
Тази заявка:
PHP:
        $insert="INSERT INTO users (username,password,email)
            VALUES ('$user','$pass','$email')";
Трябва да стане така:
PHP:
$insert = "INSERT INTO users SET `username`='$user', `password`='$pass', `email`='$email'";
 
tedo96 каза:
Тази заявка:
PHP:
        $insert="INSERT INTO users (username,password,email)
            VALUES ('$user','$pass','$email')";
Трябва да стане така:
PHP:
$insert = "INSERT INTO users SET `username`='$user', `password`='$pass', `email`='$email'";

Че може и по неговия начин.

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
     <?php
	 
$username='root';
$server='localhost';
$password='nababatidrenjulite';
$database='users';
mysql_connect($server, $username, $password) or die (mysql_error());
mysql_select_db($database) or die (mysql_error()); 
$user=$_POST['user'];
$pass=$_POST['password'];
$pass2=$_POST['password2'];
$email=$_POST['email'];

$select="SELECT username FROM users WHERE username='$user'";
$proverka = mysql_num_rows(mysql_query($select));
if ($pass!=$pass2){
    echo "Паролите не съвпадат!";
}
else if (strlen($user)<5){
    echo "Името ви трябва да е поне 5 символа!";
}
else if (strlen($pass)<5){
    echo "Паролата Ви трябва да е поне 5 символа!";
}
else if (strlen($email)<2){
    echo "Невалиден E-mail адрес!";
}
else if($proverka > 0) {
	echo "Има потребител с това име!";
} else {
	mysql_query("INSERT INTO users (username,password,email) VALUES ('$user','$pass','$email')");
	echo "Регистрацията премина успешно!";
    



    }

?>
  </body>
</html>
 
Сега ги запазва в БД-то дори и с едни и същи имена,и ми изписва : 'Вече съществува такъв потребител Регистрацията е успешна' на едно
Ето кода,къде може да греша?
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
     <?php
$username='root';
$server='localhost';
$password='nababatidrenjulite';
$database='users';
mysql_connect($server, $username, $password) or die (mysql_error());
mysql_select_db($database) or die (mysql_error());
$user=$_POST['user'];
$pass=$_POST['password'];
$pass2=$_POST['password2'];
$email=$_POST['email'];
if ($pass!=$pass2){
    echo "Паролите не съвпадат!";
}
else if (strlen($user)<5){
    echo "Името ви трябва да е поне 5 символа!";
}
else if (strlen($pass)<5){
    echo "Паролата Ви трябва да е поне 5 символа!";
}
else if (strlen($email)<2){
    echo "Невалиден E-mail адрес!";
}
$select="SELECT `username`
    FROM users";
$query=  mysql_query($select) or die("Error");
while ($row=  mysql_fetch_array($query)){

    if ($row['username']==$_POST['user']){
        echo "Вече има такъв потребител";
        exit ();
    }
    else {
        $insert="INSERT INTO users (username,password,email)
        VALUES ('$user','$pass','$email')";
        $result3=mysql_query($insert) or die (mysql_error());
        echo "Регистрацията е успешна!";


    }
}
?>
  </body>
</html>
 
Порбва ли кода, който ти дадох?

Може да пробваш и така:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
     <?php
$username='root';
$server='localhost';
$password='garchaviqgosho';
$database='users';
mysql_connect($server, $username, $password) or die (mysql_error());
mysql_select_db($database) or die (mysql_error());
$user=$_POST['user'];
$pass=$_POST['password'];
$pass2=$_POST['password2'];
$email=$_POST['email'];
$select="SELECT username FROM users WHERE username='$user'";
$proverka = mysql_num_rows(mysql_query($select));
if ($pass!=$pass2){
    echo "Паролите не съвпадат!";
}
else if (strlen($user)<5){
    echo "Името ви трябва да е поне 5 символа!";
}
else if (strlen($pass)<5){
    echo "Паролата Ви трябва да е поне 5 символа!";
}
else if (strlen($email)<2){
    echo "Невалиден E-mail адрес!";
} else if($proverka >0 ) {
        echo "Вече има такъв потребител";
 }  else {
        
		$insert="INSERT INTO users (username,password,email)
        VALUES ('$user','$pass','$email')";
        $result3=mysql_query($insert) or die (mysql_error());
        echo "Регистрацията е успешна!";


    }
}
?>
  </body>
</html>
 
Друг вариант да направиш тази проверка:
Код:
           $q=mysql_query("SELECT username FROM users WHERE username='$user' LIMIT 1") or die (mysql_error());
		   if(mysql_num_rows($q) > 0 )
		   {
		     $error="Заето потребителско име.";
		   }
 
akatsuki каза:
Друг вариант да направиш тази проверка:
Код:
           $q=mysql_query("SELECT username FROM users WHERE username='$user' LIMIT 1") or die (mysql_error());
		   if(mysql_num_rows($q) > 0 )
		   {
		     $error="Заето потребителско име.";
		   }
Да, това е доста лесен и елегантен вариант. Мерси! :)
 

Back
Горе