Нещо не ми запомня данните за вход т.е. след затварянето на браузъра, автоматично се описвам , а на всичкото от-горе не успявам да създавам бисквитка?
/нарочно не съм направил връзка с базата данни, 'щото си правя експерименти за най-добър вход-изход/
Също така приемам и съвети за най-добра защита за използването на бисквитки плюс сесиите при вход..
Код за вход:
П.С. Направи ми впечатление, че когато се опитам да създам бисквитката преди
- няма проблеми, обаче мушна ли го някъде при if(); въобще не създава бисквитка.. или въобще надолу след
/нарочно не съм направил връзка с базата данни, 'щото си правя експерименти за най-добър вход-изход/
Също така приемам и съвети за най-добра защита за използването на бисквитки плюс сесиите при вход..
Код за вход:
PHP:
<?php
session_start();
function filter($string) {
return preg_replace('/[^a-zA-Z0-9\s\.]/', '', $string);
}
$_GET = array_map("filter", $_GET);
$_POST = array_map("filter", $_POST);
$_COOKIE = array_map("filter", $_COOKIE);
echo '<meta http-equiv="Content-Type" content="text/html;charset=windows-1251"/>';
if(isSet($_SESSION['logged']) || isSet($_COOKIE['username'])) {
echo "Изход";
} else {
if(isSet($_POST['submit'])) {
if(isSet($_SESSION['token']) && $_POST['token'] == $_SESSION['token']) {
if(isSet($_COOKIE['username'])) {
$username = $_COOKIE['username'];
} else {
if(isSet($_POST['username'], $_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
} else {
$username = "";
$password = "";
}
}
if(!$username || !$password) {
echo "Трябва да въведете задължителните полета.";
} else {
if($username == "admin" AND $password == "admin") {
setcookie('username', $username, time() + 3600, '/', '.site.com');
$_SESSION['logged'] = 1;
echo "Success";
} else {
echo "invalid user/pass";
}
}
} else {
echo "CSRF Attack Detected";
}
} else {
$token = $_SESSION['token'] = md5(uniqid('gushter',true));
$GET_SELF = htmlentities($_SERVER['PHP_SELF']);
echo "
<form method=\"POST\" action=\"{$GET_SELF}\">
<table>
<tbody>
<tr>
<td>Потребител</td>
<td><input type=\"text\" name=\"username\" /></td>
</tr>
<tr>
<td>Парола</td>
<td><input type=\"password\" name=\"password\" /></td>
</tr>
<tr>
<td>
<input type=\"submit\" name=\"submit\" value=\"SignUp\" />
<input type=\"hidden\" name=\"token\" value=\"{$token}\" />
</td>
</tr>
</tbody>
</table>
</form>";
}
}
?>
П.С. Направи ми впечатление, че когато се опитам да създам бисквитката преди
PHP:
if(isSet($_SESSION['logged']) || isSet($_COOKIE['username'])) {
- няма проблеми, обаче мушна ли го някъде при if(); въобще не създава бисквитка.. или въобще надолу след
PHP:
if(isSet($_SESSION['logged']) || isSet($_COOKIE['username'])) {