<?php
session_start();
if (isset($_POST['email']))
{
//Udana walidacja? Załóżmy, że tak!
$wszystko_OK=true;
//Sprawdź poprawność nickname'a
$nick = $_POST['nick'];
//Sprawdzenie długości nicka
if ((strlen($nick)<3) || (strlen($nick)>20))
{
$wszystko_OK=false;
$_SESSION['e_nick']="Nick must consist of 3-20 characters!";
}
if (ctype_alnum($nick)==false)
{
$wszystko_OK=false;
$_SESSION['e_nick']="Name should consist of letters and digits only";
}
// Sprawdź poprawność adresu 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']="Enter correct email address";
}
//Sprawdź poprawność hasła
$haslo1 = $_POST['haslo1'];
$haslo2 = $_POST['haslo2'];
if ((strlen($haslo1)<8) || (strlen($haslo1)>20))
{
$wszystko_OK=false;
$_SESSION['e_haslo']="Password must consist of 8-20 characters";
}
if ($haslo1!=$haslo2)
{
$wszystko_OK=false;
$_SESSION['e_haslo']="Passwords aren't identical";
}
$haslo_hash = password_hash($haslo1, PASSWORD_DEFAULT);
//Czy zaakceptowano regulamin?
if (!isset($_POST['regulamin']))
{
$wszystko_OK=false;
$_SESSION['e_regulamin']="Confirm acceptance of the regulations";
}
//Bot or not?
$sekret = "6Lf3rX8UAAAAABK1x594jREg4FM2Eb-4y83YzSm5";
$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']="Prove that you're human";
}
//Zapamiętaj wprowadzone dane
$_SESSION['fr_nick'] = $nick;
$_SESSION['fr_email'] = $email;
$_SESSION['fr_haslo1'] = $haslo1;
$_SESSION['fr_haslo2'] = $haslo2;
if (isset($_POST['regulamin'])) $_SESSION['fr_regulamin'] = true;
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 email już istnieje?
$rezultat = $polaczenie->query("SELECT id FROM uzytkownicy WHERE email='$email'");
if (!$rezultat) throw new Exception($polaczenie->error);
$ile_takich_maili = $rezultat->num_rows;
if($ile_takich_maili>0)
{
$wszystko_OK=false;
$_SESSION['e_email']="An existing account assigned to this e-mail address!";
}
//Czy nick jest już zarezerwowany?
$rezultat = $polaczenie->query("SELECT id FROM uzytkownicy WHERE user='$nick'");
if (!$rezultat) throw new Exception($polaczenie->error);
$ile_takich_nickow = $rezultat->num_rows;
if($ile_takich_nickow>0)
{
$wszystko_OK=false;
$_SESSION['e_nick']="This name is already in use. Choose another!";
}
if ($wszystko_OK==true)
{
//Hurra, wszystkie testy zaliczone, dodajemy użytkownika do bazy
if ($polaczenie->query("INSERT INTO uzytkownicy VALUES (NULL, '$nick', '$haslo_hash', '$email', '$ranga', 'uzytkownik')"))
{
$_SESSION['udanarejestracja']=true;
header('Location: welcome.php');
}
else
{
throw new Exception($polaczenie->error);
}
}
$polaczenie->close();
}
}
catch(Exception $e)
{
echo '<span style="color:red;">Błąd serwera! Przepraszamy za niedogodności i prosimy o rejestrację w innym terminie!</span>';
echo '<br />Informacja developerska: '.$e;
}
}
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta name="description" content="fsociety page">
<meta name="keywords" content="fsociety, fso, ciety, fso, f$ociety">
<meta name="author" content="Krzysztof Cysiu Kwaśniewski"/>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<link rel="shortcut icon" href="favicon/fav.ico" />
<link rel="stylesheet" href="css/style.css"/>
<link rel="stylesheet" href="fontello/css/fontello.css" type="text/css" />
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<title>Register</title>
</head>
<body>
<div class="register_box">
<form method="post" class="block_of">
<div class="register_text_box">
<input type="text" placeholder="Username" 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']);
}
?>
</div>
<div class="register_text_box">
<input type="text" placeholder="E-mail" 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']);
}
?>
</div>
<div class="register_text_box">
<input type="password" placeholder="Password" value="<?php
if (isset($_SESSION['fr_haslo1']))
{
echo $_SESSION['fr_haslo1'];
unset($_SESSION['fr_haslo1']);
}
?>" name="haslo1" /> <br/>
<?php
if (isset($_SESSION['e_haslo']))
{
echo '<div class="error">'.$_SESSION['e_haslo'].'</div>';
unset($_SESSION['e_haslo']);
}
?>
</div>
<div class="register_text_box">
<input type="password" placeholder="Repeat Pass" value="<?php
if (isset($_SESSION['fr_haslo2']))
{
echo $_SESSION['fr_haslo2'];
unset($_SESSION['fr_haslo2']);
}
?>" name="haslo2" /> <br/>
</div>
<input type="checkbox" name="regulamin"
<?php
if (isset($_SESSION['fr_regulamin']))
{
echo "checked";
unset($_SESSION['fr_regulamin']);
}
?>/>Accept Rules
</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="6Lf3rX8UAAAAAFSEQIa7IZsVcy-dC-i1kK75Wvhx"></div>
<?php
if (isset($_SESSION['e_bot']))
{
echo '<div class="error">'.$_SESSION['e_bot'].'</div>';
unset($_SESSION['e_bot']);
}
?>
<input class="reg_button" type="submit" value="Create account"/>
</div>
</form>
</body>
</html>
Witam tak jak w tytule po wysłaniu wypełnionego formularza rejestracji nie mogę się zalogować tak jak by nie pobierało hasła z bazy danych przy próbie logowania, gdy w bazie ustawie hasło ręcznie np. test test logowanie odbywa się bez problemu jednak tworząc konto przez formularz już nie idzie szukałem błędu 3h i nie mogę się go doszukać ktoś ma jakiś pomysł?
--------logowanie--------------
<?php
session_start();
if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
{
header('Location: main.php');
exit();
}
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta name="description" content="fsociety page">
<meta name="keywords" content="fsociety, fso, ciety, fso, f$ociety">
<meta name="author" content="Krzysztof Cysiu Kwaśniewski"/>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<link rel="shortcut icon" href="favicon/fav.ico" />
<link rel="stylesheet" href="css/style.css"/>
<link rel="stylesheet" href="fontello/css/fontello.css" type="text/css" />
<title>F$OCIETY MAIN PAGE</title>
</head>
<body>
<form action="zaloguj.php" method="post">
<div class="login-box">
<h1>Login</h1>
<div class="textbox">
<i class="icon-user"></i>
<input type="text" placeholder="Username" name="login" value="">
</div>
<div class="textbox">
<i class="icon-lock"></i>
<input type="password" placeholder="Password" name="haslo" value="">
</div>
<input class="button" type="submit" name="" value="Sign in">
<a href="register.php"><input class="button_register" type="button" name="" value="Register"></a>
</form>
</body>
</html>
<?php
if(isset($_SESSION['blad'])) echo $_SESSION['blad'];
?>
-------funkcja zaloguj--------------------
<?php
session_start();
if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
{
header('Location: index.php');
exit();
}
require_once "connect.php";
$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
if ($polaczenie->connect_errno!=0)
{
echo "Error: ".$polaczenie->connect_errno;
}
else
{
$login = $_POST['login'];
$haslo = $_POST['haslo'];
$login = htmlentities($login, ENT_QUOTES, "UTF-8");
$haslo = htmlentities($haslo, ENT_QUOTES, "UTF-8");
if ($rezultat = @$polaczenie->query(
sprintf("SELECT * FROM uzytkownicy WHERE user='%s' AND pass='%s'",
mysqli_real_escape_string($polaczenie,$login),
mysqli_real_escape_string($polaczenie,$haslo))))
{
$ilu_userow = $rezultat->num_rows;
if($ilu_userow>0)
{
$_SESSION['zalogowany'] = true;
$wiersz = $rezultat->fetch_assoc();
$_SESSION['id'] = $wiersz['id'];
$_SESSION['user'] = $wiersz['user'];
$_SESSION['ranga'] =$wiersz['ranga'];
$_SESSION['nazwarangi'] =$wiersz['nazwarangi'];
unset($_SESSION['blad']);
$rezultat->free_result();
header('Location: main.php');
} else {
$_SESSION['blad'] = '<div class="wrongpass">Wrong Login or Password!</span>';
header('Location: index.php');
}
}
$polaczenie->close();
}
?>