[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: доступ к админке
eLDeR
Что я делаю не так ?
<?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");

Спустя 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

Спустя 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
<form action="index.php" method="post">
<
input name="login" type="text" /> Логин<BR />
<
input name="pass" type="password" /> Пароль<BR>
<
input name="sub" type="submit" value="Войти" />
</
form>
index.php
include ("def/def.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");
}
admin.php
include ("def/def.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");
}
killadmin.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 написал(а):
есть кто живой ?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.