Strict Standards: Resource ID#34 used as offset, casting to integer (34) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Как создать закрытый раздел на сайте(PHP+MySQL)? [2]
ТвойWeb » WebMaster класс » PHP/Perl » Как создать закрытый раздел на сайте(PHP+MySQL)?

Страниц (4): « 1 [2] 3 4 »
 

11. Kizim - 16 Апреля, 2008 - 02:40:47 - перейти к сообщению
Ситуация чтоб понятно было:
1) Есть AppServ(Apache+PHP5)
2) Есть MySQL
3) Есть зона сайта которую необходимо защитить

Я хочу:
1) Скрипт состоящий из 2х скриптов. Первый - скрипт защиты, вставляемый на те страницы которые необходимо защитить, с ссылкой на 2й скрипт. 2й скрипт с обозначением базы данных, пароля и логина к ней.
2) 1й скрипт должен проверять пользователя в БД (MySQL) и запоминать его на период всей сессии.
3) Шифтроваться пароли должны md5

Во что надо)
12. Systemnik - 16 Апреля, 2008 - 04:48:15 - перейти к сообщению
Ха-хагыыы мне лень такое писать))) Радость
Ладн.. соображу че нить.. Подмигивание
PS надеюсь на сервере register_globals = off ?? Растерялся

Чуть подожди напрограммирую..
13. Kizim - 16 Апреля, 2008 - 04:54:28 - перейти к сообщению
Регистрацию не надо разрешать, нужно чтоб он из базы логины ипароли брал, которые я буду в базу пихать
14. Furax - 16 Апреля, 2008 - 05:11:45 - перейти к сообщению
Kizim
Идея такая: в начале каждой страницы проверяем наличие переданных POST-переменных логина и пароля. Если они есть, ищем соответствие в базе, если не найдено - ошибка. Если есть соответствие - заполняем ещё одно поле в базе (временный пароль), которое очистится, скажем, через 10 минут после последнего запроса от этого пользователя. Идентификатор пользователя и временный пароль сохраняем в куках, даём доступ к странице. Можно добавить в базу ещё пару полей - браузер и IP, для повышения стойкости.

Если нет пост-переменных, проверяем наличие куков. Если есть куки - ищем юзера с такими id и временным паролем (и, если угодно, браузером и IP). Нашли - входим, обновив последнее время захода (чтобы потом сбросить временный пароль и так завершить сессию). Если нет такого юзера - ошибка.

Если нет и куков - выдаём форму входа и закругляемся.

В принципе, алгоритм простой. не думаю, что с кодированием возникнут проблемы.
15. Systemnik - 16 Апреля, 2008 - 05:12:57 - перейти к сообщению
Имя скрипта должно быть script.php
а имя конфига config.php

Код файла config.php
CODE:
<?php
$mysql_server = "ваш мускул сервер";
$mysql_user = "ваш мускул юзер";
$mysql_pass = "ваш мускул пасс";
$mysql_dbname = "имя вашей бд";
$mysql_table = "имя таблицы с данными юзеров";
?>

Код файла script.php
CODE:
<?php
include("config.php");
$userlogin = $_POST['userlogin'];
$userpass = md5($_POST['userpass']);
$idcon = @mysql_connect($mysql_server, $mysql_user, $mysql_pass);
@mysql_select_db($mysql_dbname);
if($_POST['page'] == "auth")
{
$sql = @mysql_query("SELECT * FROM `$mysql_table` WHERE `username` = '$userlogin' LIMIT 1");
if(mysql_num_rows($sql) != 0)
{
$userinfo = @mysql_fetch_row($sql);
if($userinfo[1] == $userpass)
{
echo("Вы залогинены");
} else {
echo("Неверный пароль");
}
} else {
echo("Введенный вами пользователь несуществует!!!");
}
@mysql_close($idcon);
}
echo('
<form action="script.php" method="post">
<input name="page" type="hidden" value="auth">
<input name="userlogin" type="text" value="Имя юзера"><br>
<input name="userpass" type="text" value="Пароль"><br>
<input type="submit" value="Проверить">
</form>');
?>


Так на всякий пожарный Дампы таблицы..
CODE:
CREATE TABLE IF NOT EXISTS `script_users` (
`username` varchar(100) character set cp1251 collate cp1251_bin NOT NULL default '',
`userpass` text character set cp1251 collate cp1251_bin NOT NULL,
PRIMARY KEY (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

INSERT INTO `script_users` (`username`, `userpass`) VALUES
('ваш юзер', 'ваш md5');
16. Systemnik - 16 Апреля, 2008 - 05:33:17 - перейти к сообщению
Цитата:
Регистрацию не надо разрешат

Какую регистрацию??
17. Kizim - 16 Апреля, 2008 - 07:14:15 - перейти к сообщению
Вот это тебе спасибо) Последний вопрос - как делать ключи в мд5?)) какой прогой?
18. Kizim - 16 Апреля, 2008 - 07:28:26 - перейти к сообщению
index.php:
CODE:
<?php

include "script.php";
include "config.php";
$connect = mysql_connect($mysql_server, $mysql_user, $mysql_pass);
if ($connect){
echo "Congratulations!\n<br>";
echo "Successfully connected to MySQL database server.\n<br>";
}else{
$error = mysql_error();
echo "Could not connect to the database. Error = $error.\n<br>";
exit();
}

// Closing connection
$close = mysql_close($connect);
if ($close){
echo "\n<br>";
echo "Now closing the connection...\n<br>";
echo "MySQL connection closed successfully as well.\n<br>";
}else{
echo "There's a problem in closing MySQL connection.\n<br>";
}
exit();
?>


показывает:
CODE:

Ваш логин
пароль
Проверить

Congratulations!
Successfully connected to MySQL database server.

Now closing the connection...
MySQL connection closed successfully as well.


почему он дает доступ дальше? я понять не могу. он по идее же должен тормозиться на script.php пока не введешь логин и парольЖ( жесть нах
19. Kizim - 16 Апреля, 2008 - 07:53:40 - перейти к сообщению
index.php поправил так:
CODE:
<?php

include "script.php";
include "config.php";
$authok=0;
if($authok==1)
{
$connect = mysql_connect($mysql_server, $mysql_user, $mysql_pass);
if ($connect){
echo "Congratulations!\n<br>";
echo "Successfully connected to MySQL database server.\n<br>";
}else{
$error = mysql_error();
echo "Could not connect to the database. Error = $error.\n<br>";
exit();
}

// Closing connection
$close = mysql_close($connect);
if ($close){
echo "\n<br>";
echo "Now closing the connection...\n<br>";
echo "MySQL connection closed successfully as well.\n<br>";
}else{
echo "There's a problem in closing MySQL connection.\n<br>";
}
exit();
}
?>


script.php так:
CODE:
<?php
include("config.php");

$userlogin = $_POST['userlogin'];
$userpass = md5($_POST['userpass']);
$idcon = @mysql_connect($mysql_server, $mysql_user, $mysql_pass);
@mysql_select_db($mysql_dbname);
if($_POST['page'] == "auth")
{
$sql = @mysql_query("SELECT * FROM `$mysql_table` WHERE `username` = '$userlogin' LIMIT 1");
if(mysql_num_rows($sql) != 0)
{
$userinfo = @mysql_fetch_row($sql);
if($userinfo[1] == $userpass)
{
echo("Вы залогинены");
$authok = 1;
} else {
echo("Неверный пароль");
}
} else {
echo("Введенный вами пользователь несуществует!!!");
}
@mysql_close($idcon);
}
echo('
<form action="script.php" method="post">
<input name="page" type="hidden" value="auth">
<input name="userlogin" type="text" value="Имя юзера"><br>
<input name="userpass" type="text" value="Пароль"><br>
<input type="submit" value="Проверить">
</form>');
?>


Вроде все норм...
Мож где накосячил

Открыт вопрос про md5 генерацию
20. Systemnik - 16 Апреля, 2008 - 08:23:38 - перейти к сообщению
Какую md5 генерацию.. я ведь тебе написал куда md5 хеш готовый вставлять...
есть ли хочеш сгенрировать md5 вот тебе линк http://systemnik.alfaspace.net
моя хоум пага.. слева.. есть блок туда вводи любое слово.. и нажми кнопочку скрипт выдаст хеш..
Зы приходи ко мне на форум http://forum.systemnik.alfaspace.net
там тоже че нить спрашивай Ха-ха (реклама - двигатель прогресса Ха-ха )
А если серьезно...
Код файла md5.php
CODE:
<html>
<head>
<title>
md5 hash's generator by Systemnik :)
</title>
</head>
<body>
<form action="md5.php">
<input type="text" name="textomd5" value="Символы">
<input type="submit" value="Сгенерировать">
</form>
<?php
echo(md5($_GET['textomd5']));
?>
</body>
</html>

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0407]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33