Кто-нибудь знает код, уж не знаю, java или HTML, чтобы создавать регистрацию на сайте? Очень НАДО!!!
Вид для печати
Кто-нибудь знает код, уж не знаю, java или HTML, чтобы создавать регистрацию на сайте? Очень НАДО!!!
Авторизацию для сайта можно сделать на JavaScript'e (для детей)
можно на сервере с использованием .htaccess
можно в серверных скриптах asp, php, cgi
но всё это дело не одной строчки, а приличного куска кода
примеров таких предостаточно, но использовать их не разбираясь в этом не получится
Webmaster, Возможно Вы можете подсказать какие-то ссылочки, где это демонстрируется или электронные книги, где это написано, хоть что-то!?
<?
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);?>!
SQL
CREATE TABLE `users` (
`username` varchar(20) NOT NULL default '',
`pass` varchar(20) NOT NULL default ''
) ENGINE=MyISAM;
Данный пример не претендует на звание идеального метода защиты, но все же обойти его будет достаточно трудно. Представим следующее: у вас есть закрытый сайт "для своих" и вы не хотите чтобы туда заходили всякие нехорошие личности. В этом нам помогут сессии. Пароли и логины будем хранить в таблице 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 уже произведено и база данных выбрана.
<?
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("Ошибка запроса к базе данных");
}
}
?>
Начнем пояснения с первой строки.
if (empty($pass)||empty($name))
проверяем задан ли пароль и логин. Если одно из полей пустое, то
error("Не указан логин или пароль");
Здесь error - это любая функция вывода ошибки:
<?
function error($er)
{
echo $er;
exit(0);
}
?>
Если поля не пусты, то скрипт продолжает работу.
$sql="select pass from mysite where login='".$name."'";
пишем запрос к базе mysql, который вернет нам значение поля pass, строки, где login=$name.
if ($show=mysql_query($sql))
если запрос обработан без ошибок, то
$a=mysql_fetch_array($show);
Присваиваем переменной $а (ассоциативный массив) значение поля pass
if ($a['pass']!=$pass)
error("Не верное сочетание логин - пароль");
Если поле pass не соответствует тому, что ввел пользователь или тому, что хранится в сессии, то мы опять через функцию error выводим ему ошибку.
else
session_register("name","pass");
Иначе записываем переменные $name и $pass в сессию и продолжаем выполнять скрипт.
}
else
error("Ошибка запроса к базе данных");
}
?>
Если есть ошибка в запросе к базе mysql, то мы опять же выводим ошибку пользователю.
Итак, вначале каждой страницы, к которой нужно запретить доступ посторонним пишем:
<?
session_start();
/* эта функция открывающая или продолжающая работу с сессиями. Она должна быть задана в самом начале страницы до отправки заголовка страницы. */
check(); //наша функция проверки.
?>
Теперь проверим логику скрипта. Если человек не заполняет одно из полей и нажимает кнопку "вход", то перейдя на страницу index2.php он получит надпись "Ошибка: Не указан логин или пароль".
Если он указывает неверный логин или пароль, то ему выпадает "Ошибка: Не верное сочетание логин - пароль".
Если же он все указывает верно, то попадет на страницу index2.php где вы храните свои тайны. За счет того, что логин и пароль записываются в сессию, юзер может бродить по вашему сверх тайному сайту авторизировавшись только один раз.
Возможные проблемы:
Нельзя заходить на сайт под разными именами.
Если человек раз зашел на сайт, то с его компьютера можно посещать этот сайт еще в течении некоторого времени (пока жива сессия), что не очень хорошо, если ты работаешь из Интернет салона.
Автор: неизвестен
если сессию закрыть то можно будет потом зайти под другим логином и паролем?
Да, можно.
Ну если вы хотите 100% безопасности, то создайте файл .htaccess, и напишите в нем следующее:
AuthType Basic
AuthName "auth"
AuthUserFile /www/site/.htpasswd
require valid-user
Потом создайте файл .htpasswd, и сгененируйте логин и пароль на http://www.htaccesstools.com/htpasswd-generator/
И все.
Потому-что это неудобно. Например http://vvsh.ru/admin/
это авторизация средствами самого сервера, и поэтому точно надежнее, ее минус - удобство, а второй минус это работа с добавлением изменением новых пользователей и паролей
т.к. для этого надо использовать инструменты сервера
ну и еще один минус, это то что кроме имени и пароля и папки больше нельзя указать уровень доступа