Może większy fragment, bo chyba nie rozumiecie o co mi chodzi.
<?php
function form_logowanie(){
<div class = "pogrub">Logowanie do konta: </div>
<form action="login.php" method="post">
Wpisz Nick:<br/>
<input type="text" name="nick" /><br/>
Wpisz hasło:<br />
<input type="password" name="haslo" /><br/>
<input type="submit" value="Wyślij" name = "wyslij"/> <br/>
</form>
</div>
');
}
include 'zmienne.php';
include ('inc/sql.php');
if(isset($_SESSION['zalogowany'])) {
//część z danymi po zalogowaniu
}else{
if(isset($_POST['wyslij'])) { $pass_crypt = crypt($haslo); $login = $db->prepare("SELECT `nick`, `haslo` FROM `gracze` WHERE `nick` = BINARY :nick && `haslo` = BINARY :haslo");
$login->bindValue(":nick", $_POST['nick'], PDO::PARAM_STR);
$login->bindValue(":haslo", $pass_crypt, PDO::PARAM_STR);
$login->execute();
$idlogin = $db->prepare("SELECT `id` FROM `gracze` WHERE `nick` = BINARY :nick && `haslo` = BINARY :haslo");
$idlogin->bindValue(":nick", $_POST['nick'], PDO::PARAM_STR);
$idlogin->bindValue(":haslo", $pass_crypt, PDO::PARAM_STR);
$idlogin->execute();
//walidacja...
if ($login->rowCount() == 1)
{
if ($idlogin->rowCount() == 1)
{
$_SESSION['zalogowany'] = true;
$_SESSION['nick'] = $_POST['nick'];
$_SESSION['haslo'] = $_POST['haslo'];
} else {
echo '<div class="red">Wpisałeś złe hasło. Spróbuj ponownie.</div>';
}
echo ('<div class="blue">Zostałeś zalogowany. Za chwilę zostaniesz przeniesiony do swojego panelu.</div>'); } else {
echo ('<div class="red">* Użytkownik '.$_POST['nick'].' nie istnieje lub wpisałeś błędne hasło!</div>');
}
} else {
form_logowanie();
?>
Problem w tym, że nie wiem gdzie wstawić to sprawdzenie czy wpisane hasło jest takie samo jak zahashowane.
Byłby w stanie ktoś może poprawić mi kod? Ja sobie z tym nie daję rady.
Ten post edytował Kerth 4.07.2014, 13:31:53