Nie chciałem spamować całością, ale jak trzeba:
<?php
session_start();
include("register.php");
if(isset(($_SESSION['loged']))&&($_SESSION['loged']==true))
{
header('Location: home.php');
exit();
}
?>
<!DOCTYPE HTML>
<html lang="pl">
<head>
<meta charset="utf-8" />
<title>Title</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="https://fonts.googleapis.com/css?family=Mukta+Malar:400,700&subset=latin-ext" rel="stylesheet">
<link rel="stylesheet" href="css/style.css" type="text/css" />
<link rel="stylesheet" href="css/reg_box_style.css" type="text/css" />
<link rel="stylesheet" href="css/register_style.css" type="text/css" />
<link rel="stylesheet" href="css/login_style.css" type="text/css" />
<link rel="stylesheet" href="css/fontello/css/fontello.css" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src='https://www.google.com/recaptcha/api.js'></script>
<script type="text/javascript" src="skrypty.js"></script>
<script type="text/javascript" src="scripts/reg_box_script.js"></script>
<script type="text/javascript" src="scripts/drop_menu.js"></script>
<!---<script type="text/javascript" src="//ciasteczka.eu/cookiesEU-latest.min.js"></script>--->
</head>
<body>
<header>
<div class="logo">
<img src="img/logo.png" />
</div>
<nav>
<div class="menu">
<ol>
<li>x</li>
<li>y</li>
<li>Z</li>
<li>a</li>
<li>b</li>
</ol>
</div>
<nav>
</header>
<main>
<section>
<div id="container">
<form action="login.php" method="post">
<input type="text" name="login" placeholder="email" onfocus="this.placeholder=' ' " onblur="this.placeholder='email' "/>
<input type="password" name="pass" placeholder="hasło" onfocus="this.placeholder=' ' " onblur="this.placeholder='haslo' " id="myInput"/>
<label>
<input type="checkbox" onclick="myFunction()" class="previewpass">
<div class="previewpass2">Pokaż Hasło</div>
</label>
<?php
if(isset($_SESSION['logerror']))
echo $_SESSION['logerror'];
unset($_SESSION['logerror']);
?>
<div class="unfold-menu">
<select class="server-choice">
<option>Beta</option>
<option>Alfa</option>
<option>1.0</option>
</select>
</div>
<input type="submit" value="Zaloguj się"/>
<span><br>Lub</span>
</form>
<div id="overlay" class="overlay"></div>
<a style="cursor: pointer;" onclick="openOffersDialog();" class="tipTip"><input type="button" class="register" value="Zarejestruj"/></a>
<input type="button" class="forgot" value="Przypomnienie danych logowania."/>
</div>
<div id="boxpopup" class="box">
<a onclick="closeOffersDialog('boxpopup');" class="boxclose">X</a>
<div class="box2">
<form method="post">
Nickname: <br /> <input type="text" value="<?php
if (isset($_SESSION['fr_nick']))
{
echo $_SESSION['fr_nick'];
unset($_SESSION['fr_nick']);
}
?>" name="nick" /><br />
<?php
if(isset($_SESSION['e_nick']))
{
echo '<div class="error">'.$_SESSION['e_nick'].'</div>';
unset($_SESSION['e_nick']);
}
?>
E-mail: <br /> <input type="text" value="<?php
if (isset($_SESSION['fr_email']))
{
echo $_SESSION['fr_email'];
unset($_SESSION['fr_email']);
}
?>" name="email" /><br />
<?php
if(isset($_SESSION['e_email']))
{
echo '<div class="error">'.$_SESSION['e_email'].'</div>';
unset($_SESSION['e_email']);
}
?>
Twoje hasło: <br /> <input type="password" value="<?php
if(isset($_SESSION['fr_pass1']))
{
echo $_SESSION['fr_pass1'];
unset($_SESSION['fr_pass1']);
}
?>" name="pass1" /><br />
<?php
if(isset($_SESSION['e_pass']))
{
echo '<div class="error">'.$_SESSION['e_pass'].'</div>';
unset($_SESSION['e_pass']);
}
?>
Powtórz hasło: <br /> <input type="password" value="<?php
if(isset($_SESSION['fr_pass2']))
{
echo $_SESSION['fr_pass2'];
unset($_SESSION['fr_pass2']);
}
?>" name="pass2" /><br />
<label>
<input type="checkbox" name="regulamin" <?php
if(isset($_SESSION['fr_regulations']))
{
echo "checked";
unset($_SESSION['fr_regulations']);
}
?>/> Akceptuję regulamin <a href=""></a><br />
</label>
<?php
if(isset($_SESSION['e_regulations']))
{
echo '<div class="error">'.$_SESSION['e_regulations'].'</div>';
unset($_SESSION['e_regulations']);
}
?>
<div class="g-recaptcha" data-sitekey="6LeRZz8UAAAAAKvnzyVgHYpA8F87l9mHgnxpU-mF"></div>
<?php
if(isset($_SESSION['e_bot']))
{
echo '<div class="error">'.$_SESSION['e_bot'].'</div>';
unset($_SESSION['e_bot']);
}
?>
<br />
<input type="submit" value="Zarejestruj się" >
</form>
</div>
</div>
</section>
<section>
<div class="news">
</div>
</section>
</main>
</body>
</html>
<?php
function register()
{
/*session_start();*/
if(isset(($_SESSION['loged']))&&($_SESSION['loged']==true))
{
header('Location: home.php');
exit();
}
if(isset($_POST['email'])) //jeśli przesłano formularz - sprawdzenie poprzez sprawdzenie chociaż jednej zmiennej
{
//Udana Walidacja? Załóżmy, że tak!
$all_OK=true;
//Sprawdzanie poprawności nicka
$nick = $_POST['nick'];
//Sprawdzenie długości nicka:
if(strlen($nick)<3 || (strlen($nick)>20))
{
$all_OK=false;
$_SESSION['e_nick']="Nick musi posiadać od 3 do 20 znaków!";
}
//
//ctype_alnum //zwraca true jeśli wszystkie znaki sa alfanumeryczne
if(ctype_alnum($nick)==false)
{
$all_OK=false;
$_SESSION['e_nick']="Nick może składać się tylko z liter i cyfr (bez polskich znaków)";
}
//sprawdz poprawność emaila
$email=$_POST['email'];
$emailsafe = filter_var($email, FILTER_SANITIZE_EMAIL); //SPECJALNY filtr stosowany do maila, aby wyczyscic go z niebezpiecznych znakow
// Jeżeli (ZWALIDUJ POPRAWNOŚĆ TEGO ADRESU EMAIL) nie jest poprawny lub wyczyszony email nie równa się wpisanemu (np. PAWEŁ@tlen.pl vs PAWE@tlen.pl)
if((filter_var($emailsafe, FILTER_VALIDATE_EMAIL)==FALSE || $emailsafe!=$email))
{
$all_OK=false;
$_SESSION['e_email']="Podaj poprawny adres email";
}
//Sprawdz poprawnosc hasla
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
if((strlen($pass1)<8) || (strlen($pass1)>30))
{
$all_OK=false;
$_SESSION['e_pass']="Hasło musi posiadać od 8 do 30 znaków.";
}
if($pass1!=$pass2)
{
$all_OK=false;
$_SESSION['e_pass']="Hasła nie są takie same!";
}
$pass_hash = password_hash($pass1, PASSWORD_DEFAULT);
//Czy zaakceptowano regulamin
if (!isset($_POST['regulations']))
{
$all_OK=false;
$_SESSION['e_regulations']="Potwierdz akceptację regulaminu";
}
// Bot or not? Oto jest pytanie!
$secret = '';
$check = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$answer = json_decode($check);
if($answer->success==false)
{
$all_OK=false;
$_SESSION['e_bot']="Potwierdz, że nie jesteś botem";
}
//Zapamiętaj wprowadzone dane
$_SESSION['fr_nick'] = $nick;
$_SESSION['fr_email'] = $email;
$_SESSION['fr_pass1'] = $pass1;
$_SESSION['fr_pass2'] = $pass2;
if (isset($_POST['regulations'])) $_SESSION['fr_regulations'] = true;
//Sprawdzenie czy mail już istnieje w bazie. Aby to zrobić trzeba się z nią połączyć:
require_once "connect.php";
mysqli_report(MYSQLI_REPORT_STRICT);
try
{
$connect = new mysqli($host, $db_user, $db_password, $db_name);
if ($connect->connect_errno!=0)
{
throw new Exception(mysqli_connect_errno()); // Błąd połączenia - rzuć nowym wyjątkiem
}
else
{
//Sukces połączenia. Wykonaj zapytanie
//Czy email juz istnieje?
$result = $connect->query("SELECT DBUserID FROM users WHERE DBEmail='$email'"); //połączenie sprawdzające do bazy,
if(!$result) throw new Exception($connect->error); //jeżeli połączenie sprawdzające sie nie uda to rzuc wyjatkiem i pokaz blad na ekranie
{
$how_many_mails = $result->num_rows; // jeżeli zapytanie się udalo to pobierzemy ilość zwroconych rekordów - ile rekordów z takim emailem istnieje w bazie
}
if($how_many_mails>0) // jeśli ilość rekordów zwróconych jest wieksze od 0 to ktoś juz zarejestrowal sie na tkai mail
{
$all_OK=false;
$_SESSION['e_email']="Ten adres email został już przypisany do innego konta";
}
//Czy login juz istnieje?
$result = $connect->query("SELECT DBUserID FROM users WHERE DBLogin='$nick'"); //połączenie sprawdzające do bazy,
if(!$result) throw new Exception($connect->error); //jeżeli połączenie sprawdzające sie nie uda to rzuc wyjatkiem i pokaz blad na ekranie
{
$how_many_nicks = $result->num_rows; // jeżeli zapytanie się udalo to pobierzemy ilość zwroconych rekordów - ile rekordów z takim emailem istnieje w bazie
}
if($how_many_nicks>0) // jeśli ilość rekordów zwróconych jest wieksze od 0 to ktoś juz zarejestrowal sie na tkai mail
{
$all_OK=false;
$_SESSION['e_nick']="Istnieje już gracz o takim loginie! Wybierz inny";
}
//Gdy wszystko ok
if($all_OK==true)
{
//Hurra, wszystkie testy zaliczone, dodajemy gracza do bazy.
if($connect->query("INSERT INTO users (DBUserID, DBLogin, DBPass, DBEmail) VALUES (NULL, '$nick', '$pass_hash','$email')")) //połączenie dodające do bazy,
{
$_SESSION['successfulreg'] = true;
header('Location: welcome.php');
}
else
{
throw new Exception($connect->error);
}
}
$connect->close();
}
}
catch(Exception $errors) //złap wyjatki, jesli jakies zostały rzucone
{
echo '<span style="color: red;">"Błąd serwera! Przepraszamy za niedogodności i prosimy i rejestracje w innym terminie"</span>';
echo '<br /> Informacja developerska: '.$errors;
}
}
}
?>