|
|
|
|
|
для: sl1p
(28.05.2011 в 14:00)
| | Спасибо - сделал! | |
|
|
|
|
|
|
|
для: OLi
(28.05.2011 в 02:33)
| | file_get_contents();
:) | |
|
|
|
|
|
|
|
для: OLi
(28.05.2011 в 02:33)
| | Если перенаправлять на index.php, то получаем цикл переходов - так не получается...если оставить { } то от check.php не можем перейти на index.php | |
|
|
|
|
|
|
|
для: sl1p
(28.05.2011 в 02:31)
| | Переделал так :
<?
include("db.php");
if(isset($_POST['submit']))
{
function generateCode($length=6) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789";
$code = "";
$clen = strlen($chars) - 1;
while (strlen($code) < $length) {
$code .= $chars[mt_rand(0,$clen)];
}
return $code;
}
# Вытаскиваем из БД запись, у которой логин равняеться введенному
$query=mysql_query("SELECT id,login,password FROM users WHERE login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1");
if (mysql_num_rows($query)>0){
$data = mysql_fetch_assoc($query);
# Соавниваем пароли
if($data['password'] === md5($_POST['password']))
{
# Генерируем случайное число и шифруем его
$hash = md5(generateCode(10));
mysql_query("UPDATE users SET user_hash='".$hash."' ".$insip." WHERE id='".$data['id']."'");
# Ставим куки user_hash
setcookie("id", $data['id'], time()+60*60*24*30);
setcookie("hash", $hash, time()+60*60*24*30);
# Переадресовываеaм браузер на страницу проверки нашего скрипта
header("Location: check.php"); exit();
}
}else
{
print "Вы ввели неправильный логин/пароль";
}
}
?>
|
check.php
<?
if (isset($_COOKIE['id']) and isset($_COOKIE['hash']))
{
include("db.php");
$query = mysql_query("SELECT * FROM users WHERE id = '".intval($_COOKIE['id'])."' LIMIT 1");
$userdata = mysql_fetch_assoc($query);
if(($userdata['user_hash'] !== $_COOKIE['hash']) or ($userdata['id'] !== $_COOKIE['id']))
{
setcookie("id", "", time() - 3600*24*30*12, "/");
setcookie("hash", "", time() - 3600*24*30*12, "/");
exit("Отказано в доступе!");
}
else
{
print "Привет, ".$userdata['user_login'].". Всё работает!";
}
}
else
{
exit("Отказано в доступе!");
}
?>
|
Код работает...но не могу сообразить как отобразить содержимое файла вместо
print "Привет, ".$userdata['user_login'].". Всё работает!"; | |
|
|
|
|
|
|
|
для: OLi
(28.05.2011 в 02:22)
| | ну да) я щас поставлю себе куки с именем id и буду залогинен)
надо писать в базу и в куки/сессию уникальный хеш, к примеру uniqid затем сравнивать их где надо проверить залогинен или нет. | |
|
|
|
|
|
|
|
для: OLi
(28.05.2011 в 01:02)
| | Вот что накидал:
Logn.php
<?
include("db.php");
if(isset($_POST['submit']))
{
# Вытаскиваем из БД запись, у которой логин равняеться введенному
$query=mysql_query("SELECT id,login,password FROM users WHERE login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1");
if (mysql_num_rows($query)>0){
$data = mysql_fetch_assoc($query);
# Соавниваем пароли
if($data['password'] === md5($_POST['password']))
{
setcookie("id", $data['id'], time()+60*60*24*30);
# Переадресовываеaм браузер на страницу проверки нашего скрипта
header("Location: check.php"); exit();
}
}else
{
print "Вы ввели неправильный логин/пароль";
}
}
?>
|
check.php
<?
if (isset($_COOKIE['id'])) {
// Юзер залогинен
echo $_COOKIE['id'];
echo "googd";
} else {
$user_id = false;
exit ("Avtorezeaza!");
}
|
Код на странице:
include("db.php");
include("check.php"); ?>
Все что ниже не отображается...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
......
|
В каждый файл подключаю check.php
но страница дальше не отображается | |
|
|
|
|
|
|
|
для: Miha_Kregov
(28.05.2011 в 00:43)
| | Алгоритм ясен, нет просто времени писать код - через 4 часа в универ на сдачу проекта...уже просто сил нет... | |
|
|
|
|
|
|
|
для: OLi
(27.05.2011 в 23:57)
| | А в чем именно проблема? Алгоритм не ясен или не получается что-то конкретное? | |
|
|
|
|
|
|
|
для: psychomc
(27.05.2011 в 23:54)
| | Надо, чтобы из формы посылались пароль и логин, возможно....надо защитить файлы от прямого вызова без авторизации | |
|
|
|
|
|
|
|
для: OLi
(27.05.2011 в 23:49)
| | может на уровне apache с помощью .htaccess&.htpasswd достаточно? | |
|
|
|
|