Witam. Poniżej kod skryptu, który znalazłem w sieci. U mnie działa jednak czasem po zalogowaniu nie wyświetla się zawartość tajnej strony (wyświetla się pusta strona), szczególnie jak kliknę na enter zamiast przycisku loguj. Prośba do bardziej doświadczonych aby sprawdzili czy coś można z tym zrobić.
<codebox>
<?php
session_start();
ob_start();
mysql_connect('host','user','haslo');
mysql_select_db(nazwa bazy);
$login = isset($_SESSION['login']) ? $_SESSION['login'] : mysql_escape_string($_POST['login']);
$haslo = mysql_escape_string(md5($_POST['pass']));
$zapytanie = mysql_query("SELECT * FROM nazawa tabeli WHERE login = '$login'");
$dane = mysql_fetch_array($zapytanie);
if(isset($_POST['login']) && isset($_POST['pass'])) {
if($login ==''.$dane['login'].'' && $haslo ==''.$dane['haslo'].'')
{
$_SESSION['admin']='ok';
$_SESSION['login']=''.$dane['login'].'';
setcookie("log" , "log", time()+3600, "/","", 0);
header("Location: log.php");
}
else { echo 'zle haslo'; }
}
if(!isset($_SESSION['admin']) && !isset($_SESSION['login']) && $_SESSION['admin'] != 'ok' && !isset($_POST['submit']) && $_GET['p']!='wyloguj' && !isset($_COOKIE['log']))
{
echo'
<br><br><br><center><table class="text"><form action="log.php" method="POST">
<tr><td align="right">Login:</td>
<td><input type="text" name="login"></td></tr>
<tr><td align="right">Password:</td>
<td><input type="password" name="pass"></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Login"></td></tr></form></table></center>';
}
if($_SESSION['admin'] == 'ok' && isset($_COOKIE['log']))
{
echo '<p align="right" class="text">Witaj '.$_SESSION['login'].', <a href="?p=wyloguj">Log out</a></p>';
include "costam.php";
if($_GET['p']=='wyloguj') {
session_destroy(); //kasujemy sesje
setcookie("log" , "log", time()-3600, "/","", 0);
header("Location: log.php");
}
}
?>
</codebox>
Na innych zabezpieczonych stronach wklejam
<codebox>
<?
session_start();
ob_start();
if($_SESSION['admin'] == 'ok' && isset($_COOKIE['log']))
{
}
else {
header("Location: log.php");
}
?>
</codebox>
Proszę również o opinię czy ten skrypt jest bezpieczny i czy mozna go jeszcze jakoś zmodyfikować.