Dzień dobry mam kod na rejestracje wszystko działa, wszystko się wyświetla poprawnie każde pole do wypełnienia działa. Problem jest taki, że recaptcha nawet po kliknięciu i weryfikacji wyświetla pod sobą, że to pole trzeba wypełnić.
Oto kod
<?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 FROM 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";
}
//czy nick istnieje w bazie?
$rezultat = $polaczenie->query("SELECT id FROM uzytkownicy WHERE user='$nick'");
if(!$rezultat) throw new Exception($polaczenie->error);
$itn = $rezultat->num_rows;
if($itn>0)
{
$wszystko_ok=false;
$_SESSION['e_nick'] = "Istnieje już konto o takim nikcu";
}
if ($wszystko_ok==true)
{
//Hurra, wszystkie testy zaliczone, dodajemy gracza do bazy
if ($polaczenie->query("INSERT INTO uzytkownicy VALUES (NULL, '$nick', '$haslo_hash', '$email')"))
{
$_SESSION['udanarejestracja']=true;
header('Location: witamy.php');
}
else
{
throw new Exception($polaczenie->error);
}
}
$polaczenie->close();
}
}
catch(Exception $e)
{
echo '<span style="color:red">Błąd serwera! Przepraszamy za niedogodności</span>';
echo '<br />Informacja developerska: '.$e;
}
}
?>
<!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>