X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

10 страниц V   1 2 3 4 5 6 7 8 9 10 >
Открыть тему
Тема закрыта
> Авторизация на сайте
Ekgor
Ekgor
Topic Starter сообщение 10.9.2007, 15:28; Ответить: Ekgor
Сообщение #1


Кто-нибудь знает код, уж не знаю, java или HTML, чтобы создавать регистрацию на сайте? Очень НАДО!!!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 10.9.2007, 15:38; Ответить: Webmaster_hb
Сообщение #2


(Ekgor @ 10.9.2007, 18:28) *
Кто-нибудь знает код, уж не знаю, java или HTML, чтобы создавать регистрацию на сайте? Очень НАДО!!!


Авторизацию для сайта можно сделать на JavaScript'e (для детей)
можно на сервере с использованием .htaccess
можно в серверных скриптах asp, php, cgi

но всё это дело не одной строчки, а приличного куска кода
примеров таких предостаточно, но использовать их не разбираясь в этом не получится
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ekgor
Ekgor
Topic Starter сообщение 10.9.2007, 17:13; Ответить: Ekgor
Сообщение #3


Webmaster, Возможно Вы можете подсказать какие-то ссылочки, где это демонстрируется или электронные книги, где это написано, хоть что-то!?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 10.9.2007, 18:16; Ответить: Webmaster_hb
Сообщение #4


[php]
<?
session_start();
header("Content-Type: text/html; charset=cp1251");

function show_form($message){
?>
<?=$message?><br/>
<form method="post" name='form' id='form' action='login.php'>
<B>Имя:</B>
<input type='text' name='user' />
<br />
<B>Пароль:</B>
<input type='password' name='pass' />
<input type='submit' value="Вход" name='subm'/>
</form>
<?
die();
}

//Проверка нажатия кнопки submit
if(!isset($_POST['subm'])) show_from('');
//Проверка на введенные данные
if(!isset($_POST['user']) OR !isset($_POST['pass']) OR empty($_POST['user']) OR empty($_POST['pass']))
show_form("Не правильная пара логин-пароль.");
// подключение к БД - соответственно прописываем свои данные доступа к базе данных
$connection = mysql_connect("localhost","","") ;
mysql_select_db('database') ;
// НЕ смог достучаться до БД
if (mysql_error()) die();

$user = mysql_escape_string($_POST['user']);
$pass = md5($_POST['pass']."ahha");

// Проверяем есть ли пользователь с таким логином и паролем
$result = mysql_query("SELECT `id` FROM `users` WHERE `login`='".$user."' AND `pass`='".$pass."'");

// если есть - впускаем
if(mysql_num_rows($result)==1)
$_SESSION['admin']=$adm;

// Если нет - пишем так.
else
show_form("Incorrect login-password.");

// Далее сообщение которое увидит вошедший пользователь
?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >
<meta http-equiv="refresh" content="3; url=index.php" >

Здравствуйте <?=mysql_escape_string($user);?>!
[/php]
SQL
CREATE TABLE `users` (
   `username` varchar(20) NOT NULL default '',
   `pass` varchar(20) NOT NULL default ''
) ENGINE=MyISAM;
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Exterior
Exterior
сообщение 14.8.2008, 10:24; Ответить: Exterior
Сообщение #5


Данный пример не претендует на звание идеального метода защиты, но все же обойти его будет достаточно трудно. Представим следующее: у вас есть закрытый сайт "для своих" и вы не хотите чтобы туда заходили всякие нехорошие личности. В этом нам помогут сессии. Пароли и логины будем хранить в таблице mysql.

На первой странице index.php делаем форму для ввода данных:
<form method="post" аction="index2.php">
<table align="center" cellspacing="2" cellpadding="2" border="0" width="320">
<tr>
<td width="100">Имя:</td>
<td width="200"><input type="text" name="name" /></td>
</tr>
<tr>
<td width="100">Пароль:</td>
<td width="200"><input type="password" name="pass" /></td>
</tr>
<tr>
<td colspan="2" width="300" align="center">
<input type="submit" value="Вход" />
<input type="reset" value="Сбросить" />
</td>
</tr>
</table>
</form>

Думаю здесь пояснять ничего не нужно. Идем дальше: Сначала краткое пояснение. Мы создаем функцию проверки пользователя check(). У нас есть база данных my_site, содержащая поля id, name и pass, где name и pass - логин и пароль пользователя соответственно. Функция пропускает только тех, кто указал верный логин и пароль в форме ($name, $pass) на входе, потом эти переменные сохраняются в сессию, следовательно, пока сессия жива пользователь может заходить на ваш сайт без авторизации. Даже указав другой верный логин и пароль, он будет авторизирован под указанным ранее логином.

Предполагается, что соединение с базой mysql уже произведено и база данных выбрана.
[php]<?
function check()
{
if (empty($pass)||empty($name))
error("Не указан логин или пароль");
$sql = "select * from my_site where login='".$name."'";
if ($show = mysql_query($sql))
{
$a = mysql_fetch_array($show);
if ($a['pass']!=$pass) {
error("Не верное сочетание логин - пароль");
}
else {
session_register("name","pass");
}
}
else {
error("Ошибка запроса к базе данных");
}
}
?>[/php]

Начнем пояснения с первой строки.
[PHP]if (empty($pass)||empty($name))[/PHP]
проверяем задан ли пароль и логин. Если одно из полей пустое, то
[PHP]error("Не указан логин или пароль");[/PHP]
Здесь error - это любая функция вывода ошибки:
[php]<?
function error($er)
{
echo $er;
exit(0);
}
?>[/php]
Если поля не пусты, то скрипт продолжает работу.
[PHP]$sql="select pass from mysite where login='".$name."'";[/PHP]
пишем запрос к базе mysql, который вернет нам значение поля pass, строки, где login=$name.
[PHP]if ($show=mysql_query($sql))[/PHP]
если запрос обработан без ошибок, то
[PHP]$a=mysql_fetch_array($show);[/PHP]
Присваиваем переменной (ассоциативный массив) значение поля pass
i[PHP]f ($a['pass']!=$pass)
error("Не верное сочетание логин - пароль");[/PHP]
Если поле pass не соответствует тому, что ввел пользователь или тому, что хранится в сессии, то мы опять через функцию error выводим ему ошибку.
[PHP]else
session_register("name","pass");[/PHP]
Иначе записываем переменные $name и $pass в сессию и продолжаем выполнять скрипт.
[PHP]}
else
error("Ошибка запроса к базе данных");
}
?>[/PHP]
Если есть ошибка в запросе к базе mysql, то мы опять же выводим ошибку пользователю.

Итак, вначале каждой страницы, к которой нужно запретить доступ посторонним пишем:
[PHP]<?
session_start();
/* эта функция открывающая или продолжающая работу с сессиями. Она должна быть задана в самом начале страницы до отправки заголовка страницы. */
check(); //наша функция проверки.
?>[/PHP]

Теперь проверим логику скрипта. Если человек не заполняет одно из полей и нажимает кнопку "вход", то перейдя на страницу index2.php он получит надпись "Ошибка: Не указан логин или пароль".

Если он указывает неверный логин или пароль, то ему выпадает "Ошибка: Не верное сочетание логин - пароль".

Если же он все указывает верно, то попадет на страницу index2.php где вы храните свои тайны. За счет того, что логин и пароль записываются в сессию, юзер может бродить по вашему сверх тайному сайту авторизировавшись только один раз.

Возможные проблемы:

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

Автор: неизвестен
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
batis
batis
сообщение 28.12.2008, 11:47; Ответить: batis
Сообщение #6


если сессию закрыть то можно будет потом зайти под другим логином и паролем?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Гость_0_* Гость_0_*
сообщение 3.1.2009, 15:56; Ответить: Гость_0_*
Сообщение #7


Да, можно.
Ну если вы хотите 100% безопасности, то создайте файл .htaccess, и напишите в нем следующее:
[PHP]AuthType Basic
AuthName "auth"
AuthUserFile /www/site/.htpasswd
require valid-user[/PHP]

Потом создайте файл .htpasswd, и сгененируйте логин и пароль на http://www.htaccesstools.com/htpasswd-generator/

И все.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mawa
mawa
сообщение 4.1.2009, 1:40; Ответить: mawa
Сообщение #8


(vvsh_hb @ 3.1.2009, 17:56) *
Да, можно.
Ну если вы хотите 100% безопасности, то создайте файл .htaccess, и напишите в нем следующее:
[php]AuthType Basic
AuthName "auth"
AuthUserFile /www/site/.htpasswd
require valid-user[/php]Потом создайте файл .htpasswd, и сгененируйте логин и пароль на http://www.htaccesstools.com/htpasswd-generator/

И все.


если это 100% защита, то почему я в и-нете не встречал всплывающие окошко от браузера с запросом на ввод логина и пароля? Я только видел использование форм на ввод логина и пароля!!!!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Гость_0_* Гость_0_*
сообщение 4.1.2009, 19:39; Ответить: Гость_0_*
Сообщение #9


Потому-что это неудобно. Например http://vvsh.ru/admin/
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 4.1.2009, 20:52; Ответить: Webmaster_hb
Сообщение #10


(mawa @ 4.1.2009, 03:40) *
если это 100% защита, то почему я в и-нете не встречал всплывающие окошко от браузера с запросом на ввод логина и пароля? Я только видел использование форм на ввод логина и пароля!!!!

это авторизация средствами самого сервера, и поэтому точно надежнее, ее минус - удобство, а второй минус это работа с добавлением изменением новых пользователей и паролей
т.к. для этого надо использовать инструменты сервера
ну и еще один минус, это то что кроме имени и пароля и папки больше нельзя указать уровень доступа
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
10 страниц V   1 2 3 4 5 6 7 8 9 10 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) CryptoCloud — прием USDT, BTC, ETH, LTC на любом сайте
34 CryptoCLoud 10077 18.3.2024, 16:56
автор: CryptoCLoud
Открытая тема (нет новых ответов) Странный трафик на сайте длительное время
26 TABAK 7522 16.3.2024, 17:31
автор: Boymaster
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыБыстрый и качественный обмен на сайте Baksman.org
Обмен Bitcoin, BTC-e, PM, Qiwi, Yandex money, Карты банк
51 Baksman 33208 15.3.2024, 21:14
автор: Baksman
Открытая тема (нет новых ответов) Алтуально ли заработок на сайте?
Оцение пожалуйста идею
10 hitman20 1780 1.2.2024, 5:37
автор: Liudmila
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыГотовые комплекты для создания узконишевых сайтов | (Готовые статьи, семантическое ядро) | Опубликуйте статьи на сайте и получите трафик из ПС без затрат на продвижение
8 rainbowinthedark 2818 14.7.2023, 16:08
автор: rainbowinthedark


 



RSS Текстовая версия Сейчас: 29.3.2024, 3:53
Дизайн