<?php
// это убирается в файл ==============================================================
define('ENTER_LOGIN', 'YWRtaW5jbXM='); // admincms base64_encode
define('ENTER_PASS', '6abaae9a88e6609b62d347e356933eaa'); // Vfabz007q md5
// это убирается в файл ==============================================================
if (isset($_REQUEST['sub']))
{
if($_POST['login'] != '' and $_POST['pass'] != '')
{
// для безопасности экранируем потенциально опасные символы
$password = mysql_escape_string($_POST['pass']);
$login = mysql_escape_string($_POST['login']);
// берем только первые 20 символов
$password = substr($password, 0, 20);
$login = substr($login, 0, 20);
// преобразуем пароль и логин в MD5-хеш и base64
$password = md5($password);
$login = base64_encode($login);
if($login == ENTER_LOGIN && $password == ENTER_PASS)
{
header("Location: admin.php");
}
echo "не правильно";
}
else
{
echo "не заполнены поля";
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Install CMS</title>
</head>
<body>
<form action="install.php" method="post">
<input name="login" type="text" /> Логин<BR />
<input name="pass" type="password" /> Пароль<BR>
<input name="sub" type="submit" value="Отправить" />
</form>
</body>
</html>
Спустя 8 минут, 30 секунд (27.07.2011 - 11:15) Гость_NoCash написал(а):
а что не так то?? какая проблема то возникает?
Спустя 24 минуты, 52 секунды (27.07.2011 - 11:40) eLDeR написал(а):
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\newadm\install.php:9) in Z:\home\localhost\www\newadm\install.php on line 30
header("Location: admin.php");
header("Location: admin.php");
Спустя 5 минут, 30 секунд (27.07.2011 - 11:46) waldicom написал(а):
PHP перенести перенести на самый верх файла (перед <html>)
Спустя 16 минут, 19 секунд (27.07.2011 - 12:02) eLDeR написал(а):
работает, но почему то любые значения вводишь также перебрасывает без проверки
Спустя 6 минут, 3 секунды (27.07.2011 - 12:08) waldicom написал(а):
Цитата (eLDeR @ 27.07.2011 - 10:02) |
работает, но почему то любые значения вводишь также перебрасывает без проверки |
Потому что вот это
Цитата (eLDeR @ 27.07.2011 - 09:07) |
if($login = ENTER_LOGIN and $password = ENTER_PASS); |
всегда true (надо ==)
И что это за прикольные кавычки вот тут:
if($_POST[‘login’] != ” and $_POST[‘pass’] != ”)
Спустя 6 минут, 39 секунд (27.07.2011 - 12:15) eLDeR написал(а):
не догоняю все равно
не могу понять работает ли проверка или нет!
при не заполнении все равно кидает на admin.php
не могу понять работает ли проверка или нет!
при не заполнении все равно кидает на admin.php
Спустя 8 минут, 59 секунд (27.07.2011 - 12:24) waldicom написал(а):
Цитата (eLDeR @ 27.07.2011 - 10:15) |
при не заполнении все равно кидает на admin.php |
Правильно, потому что надо пистаь так:
if($login == ENTER_LOGIN && $password == ENTER_PASS);
Спустя 23 часа, 49 минут, 50 секунд (28.07.2011 - 12:14) eLDeR написал(а):
Отредактировано!
А как мне это прикрутить к сессии ?
А как мне это прикрутить к сессии ?
Спустя 9 дней, 9 часов, 59 минут, 35 секунд (7.08.2011 - 22:13) eLDeR написал(а):
Вот мой код можно доработать до полной защиты или этот код нормальный ??
acces.php
acces.php
<form action="index.php" method="post">index.php
<input name="login" type="text" /> Логин<BR />
<input name="pass" type="password" /> Пароль<BR>
<input name="sub" type="submit" value="Войти" />
</form>
include ("def/def.php");admin.php
if (isset($_REQUEST['sub']))
{
if($_POST['login'] != '' and $_POST['pass'] != '')
{
// для безопасности экранируем потенциально опасные символы
$password = mysql_escape_string($_POST['pass']);
$login = mysql_escape_string($_POST['login']);
// берем только первые 20 символов
$password = substr($password, 0, 20);
$login = substr($login, 0, 20);
// преобразуем пароль и логин в MD5-хеш и base64
$password = md5($password);
$login = base64_encode($login);
if($login == ADMIN_LOGIN && $password == ADMIN_PASS)
{
session_start();
$_SESSION['login'] = $login;
$_SESSION['pass'] = $password;
header("Location: admin.php");
}
else
{
header("Location: acces.php");
}
}
else
{
header("Location: acces.php");
}
}
else
{
header("Location: acces.php");
}
include ("def/def.php");killadmin.php
session_start();
if($_SESSION['login'] == ADMIN_LOGIN && $_SESSION['pass'] == ADMIN_PASS)
// if (isset($_SESSION['login']) && (isset($_SESSION['pass']))
{
echo 'Работаем!<br>';
echo '<a href="killadmin.php">Выйти</a>';
}
else
{
header("Location: acces.php");
}
include ("def/def.php");
session_start();
if($_SESSION['login'] == ADMIN_LOGIN && $_SESSION['pass'] == ADMIN_PASS)
{
unset($_SESSION['login']); // разрегистрировали переменную
unset($_SESSION['pass']);
/* теперь имя пользователя уже не выводится */
session_destroy(); // разрушаем сессию
header("Location: acces.php");
}
else
{
header("Location: acces.php");
}
Спустя 3 дня, 16 часов, 4 минуты, 48 секунд (11.08.2011 - 14:18) Гость_eLDeR написал(а):
есть кто живой ?