Автор Тема: емаил проверка  (Прочетена 531 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

black

  • Full Member
  • ***
  • Благодарности
  • -Казани: 18
  • -Получени: 3
  • Публикации: 110
емаил проверка
« -: 27 Август 2016, 18:03:38 »
Добър ден опитвам се да добавя проверка за съществуващ емаил адрес но без успех при регистрация си се регистрирам със
един и същ емаил без проблем въпреки че ми казва че емаил адреса се използва та въпроса ми е как трябва да стане проверката правилна?

идеята ми е да неможе да се регистрира потребителя ако имеила му съществува в базата с данни.

ето ми кода:

Код: PHP
  1. <?php
  2. mysql_connect ("localhost", "dbuser","dbpass") or die (mysql_error());
  3. //Проверка за натиснат бутон сюбмит.
  4. if(isSet($_POST['submit']))
  5. {
  6.         $eror = 0;
  7.         $str = addslashes(htmlspecialchars($_POST['regs']));
  8.         $password = addslashes(htmlspecialchars($_POST['password']));
  9.         $cpassword = addslashes(htmlspecialchars($_POST['cpassword']));
  10.         $email = addslashes(htmlspecialchars($_POST['email']));
  11.         $user = addslashes(htmlspecialchars($_POST['user']));
  12.                 function verifyUsername($user)
  13.                 {        
  14.                         $chek = mysql_query("SELECT * FROM `pvpgn_BNET` WHERE `acct_username` = '{$user}';")or die(mysql_error());        
  15.                         return mysql_num_rows($chek)? 1 : 0;
  16.                 }
  17.         if(empty($str))
  18.         {
  19.                 echo "<div class='error'>Съжалявам но не сте попълнили въпроса</div>";
  20.                 $eror++;
  21.         }
  22.         if(empty($password))
  23.         {
  24.                 echo "<div class='error'>Въведете парола</div>";
  25.                 $eror++;
  26.         }
  27.         if(empty($cpassword))
  28.         {
  29.                 echo "<div class='error'>Въведете паролата повторно</div>";
  30.                 $eror++;
  31.         }
  32.         if(empty($email))
  33.         {
  34.                 echo "<div class='error'>Въведете eмайл</div>";
  35.                 $eror++;
  36.         }
  37.         if(empty($user))
  38.         {
  39.                 echo "<div class='error'>Въведете потребител</div>";
  40.                 $eror++;
  41.         }
  42.         if($password != $cpassword)
  43.         {
  44.                 echo "<div class='error'>Паролите не съвпадат</div>";
  45.                 $eror++;
  46.         }
  47.         if($str != "София")
  48.         {
  49.                         echo "<div class='error'>Това не е столицата на България</div>";
  50.             $eror++;
  51.                 }
  52.                 //Викане на функцията за проверка на съществуващ потребител.
  53.                 if(VerifyUsername($user) == 1)
  54.                 {
  55.                         echo "<div class='error'>Вече има регистриран потребител с това име в нашата база с данни</div>!";
  56.             $eror++;
  57.                 }
  58.         if($eror == 0)
  59.         {
  60.                 $uid = "SELECT uid, MAX(uid) FROM pvpgn_BNET";
  61.                 $acct_userid = mysql_query($uid) or die(mysql_error());
  62.                 while($row = mysql_fetch_array($acct_userid))
  63.                 {
  64.                     $acct_userid = "". $row['type']. "" .$row['MAX(uid)'] +1;
  65.                 }
  66.                 $acct_passhash1 = pvpgn_hash($password);
  67.                 $acct_reg_ip = $_SERVER['REMOTE_ADDR'];
  68.                 $webacct_creation_time = time();
  69.                 $time = time();
  70.                
  71.  
  72.                  
  73.                
  74.                $qmail = mysql_query("SELECT * FROM pvpgn_BNET WHERE аcct_email='$email'")or die(mysql_error());
  75.                $rowmail = mysql_num_rows($qmail);
  76.                if($rowmail == "1"){
  77.                echo "Е-майл адреса вече е зает!";
  78.                }
  79.                
  80.                 $nq1 = mysql_query ("INSERT INTO pvpgn_BNET (uid,acct_username, username, acct_userid,acct_passhash1,acct_email,acct_reg_ip,webacct_creation_time) VALUES
  81.                ('$uid', '$user', '$user', '$acct_userid', '$password', '$email','$acct_reg_ip', '$time'") or die (mysql_error());
  82.                 echo "<div class='success'>$user .Вие успешно регистрирахте вашия акаунт-паролата на вашия акаунт е: $password.</div>";
  83.                
  84.         }
  85. }
  86. ?>
  87.  <form name="registerform" method="POST">
  88.  <span>Потребителско име:</span><br />
  89.  <input type="text" class="txt" name="user" /><br />
  90.  <span>Парола:</span><br />
  91.  <input type="password" class="txt" name="password" /><br />
  92.  <span>Повтори парола:</span><br />
  93.  <input type="password" class="txt" name="cpassword" /><br />
  94.  <span>E-Mail:</span><br />
  95.  <input type="text" class="txt" name="email" /><br />
  96.  <span>Коя  е столицата на българия:</span><br />
  97.  <input type="text" name="regs"><br>
  98.  <input type="submit" name="submit" value="Промени парола" />
  99.  </form>

HanKrum

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 120
  • -Получени: 73
  • Публикации: 994
  • Кибик
Re: емаил проверка
« Отговор #1 -: 27 Август 2016, 22:30:59 »
Здравей, първо не ползвай mysql защото вече не се поддържа, а ползвай mysqli или PDO.
Всичко това може да стане само с една заявка към БД.
Например:
Код: MySQL
  1. acct_username AS name,
  2. аcct_email AS mail
  3. FROM pvpgn_BNET
  4. WHERE acct_username = {$user} OR аcct_email = {$email};
...после с php си правиш проверката кое е намерено в БД
Код: PHP
  1. if $fetchAllAssoc['name'] {
  2.     echo('Вече има регистриран потребител с това име в нашата база с данни');
  3. }
  4. if $fetchAllAssoc['mail'] {
  5.     echo('Вече има регистриран потребител с този имейл в нашата база с данни');
  6. }

п.п. Масива $fetchAllAssoc ще получиш ако .... но това се предполага да го знаеш, щом си написал това, което показваш! ;)
« Последна редакция: 27 Август 2016, 22:33:33 от HanKrum »
"Силата на правителството се крепи на невежеството на народа, и те знаят това и винаги ще се борят против просвещението." Лев Толстой