Dzień dobry piszę, ponieważ wyświetla mi się cały czas błąd podczas sprawdzania emailu na stronie. Wszystko robiłem tak jak na odc Pana Mirosława PHP 3 Sprawdziłem 2 razy kod wygląda on tak.
<?php
session_start();
if(isset($_POST['email']))
{
//Udana walidacja tak!
$wszystko_ok=true;
//sprawdź nick
$nick = $_POST['nick'];
//sprawdzenie długości nicka
if ((strlen($nick)<3) || (strlen($nick)>10))
{
$wszystko_ok=false;
$_SESSION['e_nick'] = "Nick musi posiadać od 3 do 10 znaków!";
}
if(ctype_alnum($nick)==false)
{
$wszystko_ok = false;
$_SESSION['e_nick']="Nick może składać się tylko z liter lub cyfr";
}
//Sprawdź Email
$email = $_POST['email'];
$emailB = filter_var($email, FILTER_SANITIZE_EMAIL);
if((filter_var($emailB, FILTER_VALIDATE_EMAIL)==false) || ($emailB!=$email))
{
$wszystko_ok = false;
$_SESSION['e_email'] = "Podaj porpawny adres e-mail";
}
//Sprawdź hasła
$haslo1 = $_POST['haslo1'];
$haslo2 = $_POST['haslo2'];
if((strlen($haslo1)<6) || (strlen($haslo1)>16))
{
$wszystko_ok=false;
$_SESSION['e_haslo'] = "Hasło musi posiadać od 6 do 16 znaków";
}
if ($haslo1!=$haslo2)
{
$wszystko_ok=false;
$_SESSION['e_haslo'] = "podane hasła nie są identyczne";
}
$haslo_hash = password_hash($haslo1, PASSWORD_DEFAULT);
//czy akcept regulamin
if(!isset($_POST['regulamin']))
{
$wszystko_ok=false;
$_SESSION['e_regulamin'] = "Regulamin musi zostać zakceptowany";
}
//bot or not?
$sekret = "6Ldx3YAUAAAAABBpo81Tu8TYCgPnj2hEOlSoMHrn";
$sprawdz = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret'.$sekret.'&response='.$_POST['g-recaptcha-response']);
$odpowiedz = json_decode($sprawdz);
if($odpowiedz->success==false)
{
$wszystko_ok=false;
$_SESSION['e_bot'] = "Potwierdź, że nie jesteś botem";
}
require_once "connect.php";
mysqli_report(MYSQLI_REPORT_STRICT);
try
{
$polaczenie = new mysqli($host , $db_user, $db_password, $db_name);
if($polaczenie->connect_errno!=0)
{
throw new Exception(mysqli_connect_errno());
}
else
{
//czy mail istnieje w bazie?
$rezultat = $polaczenie->query("SELECT id FORM uzytkownicy WHERE EMAIL='$email'");
if(!$rezultat) throw new Exception($polaczenie->error);
$itm = $rezultat->num_rows;
if($itm>0)
{
$wszystko_ok=false;
$_SESSION['e_email'] = "Email został już wykorzystany";
}
$polaczenie->close();
}
}
catch(Exception $e)
{
echo '<span style="color:red">Błąd serwera! Przepraszamy za niedogodności</span>';
echo '<br />Informacja developerska: '.$e;
}
if($wszystko_ok==true)
{
//gites jest
echo "Udana walidacja"; exit();
}
}
?>
<!DOCTYPE html>
<html lang="pl" dir="ltr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
<title>Madlawan rejestracja</title>
<script src='https://www.google.com/recaptcha/api.js'></script>
<body style="background-image: url(img/q.png); background-size: cover">
</head>
<body>
<form method="post">
<div class="rejestracja">
<input class="l" placeholder="Nick" type="text" name="nick"> <br /><br />
<?php
if(isset($_SESSION['e_nick']))
{
echo '<div class="error">'.$_SESSION['e_nick'].'</div>';
unset($_SESSION['e_nick']);
}
?>
<input class="l" placeholder="Email" type="text" name="email"> <br /><br />
<?php
if(isset($_SESSION['e_email']))
{
echo '<div class="error">'.$_SESSION['e_email'].'</div>';
unset($_SESSION['e_email']);
}
?>
<input class="l" placeholder="Hasło" type="password" name="haslo1"> <br /><br />
<?php
if(isset($_SESSION['e_haslo']))
{
echo '<div class="error">'.$_SESSION['e_haslo'].'</div>';
unset($_SESSION['e_haslo']);
}
?>
<input class="l" placeholder="Powtórz hasło" type="password" name="haslo2"> <br /><br />
<label>
<input class="check" type="checkbox" name="regulamin">Akceptuję regulamin
</label>
<?php
if(isset($_SESSION['e_regulamin']))
{
echo '<div class="error">'.$_SESSION['e_regulamin'].'</div>';
unset($_SESSION['e_regulamin']);
}
?>
<div class="g-recaptcha" data-sitekey="6Ldx3YAUAAAAAOx0wK7EDu8cpogObUSPMi1RADwS"></div>
<?php
if(isset($_SESSION['e_bot']))
{
echo '<div class="error">'.$_SESSION['e_bot'].'</div>';
unset($_SESSION['e_bot']);
}
?>
<input class="zaloguj" type="submit" value="Zarejestruj się">
<h4><a href="index.php">Zaloguj się</a></h4>
</div>
</form>
</body>
</html>
mimo wszystko po wpisaniu emaila który jest już zajęty wyskakuje
Informacja developerska: Exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'uzytkownicy WHERE EMAIL='adam@gmail.com'' at line 1 in D:\xamp\htdocs\www\rejestracja.php:87 Stack trace: #0 {main}
Czy ktoś wie jak to rozwiązać?