Page 1 of 1

php check if email exists

Posted: Thu Sep 05, 2019 5:24 pm
by explozen
Здравейте,

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

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

Това е кода който мажа:
[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]

Posted: Thu Sep 05, 2019 7:04 pm
by anonimen
А какъв е проблемът/въпросът?

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

и какво има в $sql?

Posted: Mon Sep 09, 2019 6:35 am
by 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();[/php]

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

Posted: Mon Sep 09, 2019 10:11 pm
by explozen
joTunkiq wrote:Проверката ти нещо не ми се струва Ок, иска да провериш дали в таблицата има поне 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();[/php]

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

Така работи!

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