php check if email exists

explozen

Registered
Здравейте,

Опитвам се да направя проверка при заявка към базата да проверява дали вече има такъв имейл който е подаден при заявката.
Ако има такъв да връща грешка, ако няма да прави заявката.

Ще бъда благодарен ако някой удари едно рамо :)

Това е кода който мажа:
PHP:
$result = $conn->query("SELECT * FROM campaign WHERE `Email`='$_POST[Email]'");
                            // var_dump($result);
                              if ($result->num_rows < 0 || $conn->query($sql) === TRUE)
                              {
                                  echo'<div class="sub-text white error-msg">Error</div>';
                              }
                              else
                              {
                        
                            $add_date = date("d.m.y - H:i:s");
                            $ip = $_SERVER['REMOTE_ADDR'];

                            $sql = "INSERT INTO campaign (
                            Names,
                            Phone,
                            Email,
                            Adress,
                            Position,
                            terms,
                            other,
                            add_date,
                            ip
                            )
                            VALUES (
                            '$_POST[Names]',
                            '$_POST[Phone]',
                            '$_POST[Email]',
                            '$_POST[Adress]',
                            '$_POST[Position]',
                            '$_POST[terms]',
                            '$_POST[other]',
                            '$add_date',
                            '$ip'
                            )";
                        
                        }
                            $conn->close();
 
А какъв е проблемът/въпросът?

Междувременно - два помощни въпроса - какъв е замисълът на тази проверка:
PHP:
$conn->query($sql) === TRUE

и какво има в $sql?
 
Проверката ти нещо не ми се струва Ок, иска да провериш дали в таблицата има поне 1 запис с този мейл и ако има да изкараш грепшка, а ти проверяваш дали заявката е минала упешни и дали НЯМА и май трябва да са на обратно хах ? :idea:

При else -а хубаво си написал заявката ама не я изпълняваш, липсваше $conn->query($sql);

Пробвай така:
PHP:
<?php 
    $result = $conn->query("SELECT * FROM campaign WHERE `Email`='$_POST[Email]'");
      // var_dump($result);
      if ($result->num_rows >= 1)
      {
          echo'<div class="sub-text white error-msg">Error</div>';
      }
      else
      {

          $add_date = date("d.m.y - H:i:s");
          $ip = $_SERVER['REMOTE_ADDR'];

            $sql = "INSERT INTO campaign (  Names, Phone, Email, Adress, Position, terms, other, add_date, ip )
            VALUES (  '$_POST[Names]', '$_POST[Phone]', '$_POST[Email]', '$_POST[Adress]', '$_POST[Position]', '$_POST[terms]', '$_POST[other]', '$add_date', '$ip'   )";

          $conn->query($sql);

     }
   $conn->close();

P.s. не слагай диреткно $_POST променливите в заявките, защото това е голяма предпоставка за sql injection или най-малкото да вкараш някой код без да искаш и да счупиш заявката без да искаш - за това винаги филтрация преди insert-ване :?:
 
joTunkiq каза:
Проверката ти нещо не ми се струва Ок, иска да провериш дали в таблицата има поне 1 запис с този мейл и ако има да изкараш грепшка, а ти проверяваш дали заявката е минала упешни и дали НЯМА и май трябва да са на обратно хах ? :idea:

При else -а хубаво си написал заявката ама не я изпълняваш, липсваше $conn->query($sql);

Пробвай така:
PHP:
<?php 
    $result = $conn->query("SELECT * FROM campaign WHERE `Email`='$_POST[Email]'");
      // var_dump($result);
      if ($result->num_rows >= 1)
      {
          echo'<div class="sub-text white error-msg">Error</div>';
      }
      else
      {

          $add_date = date("d.m.y - H:i:s");
          $ip = $_SERVER['REMOTE_ADDR'];

            $sql = "INSERT INTO campaign (  Names, Phone, Email, Adress, Position, terms, other, add_date, ip )
            VALUES (  '$_POST[Names]', '$_POST[Phone]', '$_POST[Email]', '$_POST[Adress]', '$_POST[Position]', '$_POST[terms]', '$_POST[other]', '$add_date', '$ip'   )";

          $conn->query($sql);

     }
   $conn->close();

P.s. не слагай диреткно $_POST променливите в заявките, защото това е голяма предпоставка за sql injection или най-малкото да вкараш някой код без да искаш и да счупиш заявката без да искаш - за това винаги филтрация преди insert-ване :?:


Така работи!

Благодаря ви!!!
 

Горе