|
|
|
| Привет! Вот искал искали регистрацию и авторизацию пользователей без мускула так и ненашел, а самому ума еще нехватает написать (( может у кого есть? или ссылками поделетесь? | |
|
|
|
|
|
|
|
для: ZetRider
(18.10.2005 в 16:16)
| | А в чём собственно проблема? Сам код нужен или алгоритм? | |
|
|
|
|
|
|
|
для: Football
(18.10.2005 в 18:23)
| | код было бы хорошо! Собственно начало я сделал, вот код:
*************
*index.php *
*************
<html>
<body>
<?
if($login != "" && $pass!= "")
{
$file = @fopen($login ,"r");
if(!$file)
{
print("<b>Неправильный логин</b><p>");
}
else
{
$password = @fgets($file);
}
if($pass==$password) // проверяем правильность пароля
{ print("Добро пожаловать <b>$login</b>");} //выводим приветствие
else {print("Неправильный пароль!!!");}
}
?>
<form action="index.php">
<p>Логин: <input type = "text" name = "login" size=20>
<p>Пароль: <input type = "text" name = "pass" size=20>
<input type = "submit" value = "Войти">
<p align="left"><font face="Comic Sans MS"><b><a href="reg.php">
<span style="text-decoration: none"><font color="#000000">Регистрация</font></span></a></b></font>
<?
?>
**********
*reg.php*
**********
Регистрация
<form action="reg.php">
<p>Логин: <input type = "text" name = "login" size=20>
<p>Пароль: <input type = "text" name = "pass" size=20>
<input type = "submit" value = "Зарегать">
<?
if($login != "" && $pass!= "")
{
$file = fopen($login,"w");
if(!file)
{
print("Ошибка открытия файла login.txt для записи");
}
else
{
fputs($file, "$pass");
print("<br>Регистрация прошла успешно ваш логин - $login и пароль - $pass");
}
}
?>
проблема состоит в том чтобы пользователю устанавливались куки, тоесть он могу бы войти один раз, и при следуещем заходе ему бы неприходилось авторизироватся занова!
Кто может доработать етот ког,? помогите плз.. | |
|
|
|
|
|
|
|
для: ZetRider
(18.10.2005 в 19:46)
| | Читай статьи, учебник на этом сайте по кукам. | |
|
|
|
|
|
|
|
для: ZetRider
(18.10.2005 в 16:16)
| | Регистрация пользователей в текстовом файле
<table>
<form method=post>
<tr><td>Имя:</td><td><input type=text name=name></td></tr>
<tr><td>Пароль:</td><td><input type=password name=pass></td></tr>
<tr><td>Пароль:</td><td><input type=password name=pass_again></td></tr>
<tr><td>e-mail:</td><td><input type=text name=email></td></tr>
<tr><td>URL:</td><td><input type=text name=url></td></tr>
<tr><td></td><td><input type=submit value='Зарегистрировать'></td></tr>
</form>
</table>
<?php
// Обработчик HTML-формы
/////////////////////////////////////////////////
// 1. Блок проверки правильности данных
/////////////////////////////////////////////////
// Удаляем лишние пробелы
$_POST['name'] = trim($_POST['name']);
$_POST['pass'] = trim($_POST['pass']);
$_POST['pass_again'] = trim($_POST['pass_again']);
// Проверяем не пустой ли суперглобальный массив $_POST
if(empty($_POST['name'])) exit();
// Проверяем правильно ли заполнены обязательные поля
if(empty($_POST['name'])) exit('Поле "Имя" не заполнено');
if(empty($_POST['pass'])) exit('Одно из полей "Пароль" не заполнено');
if(empty($_POST['pass_again'])) exit('Одно из полей "Пароль" не заполнено');
if($_POST['pass'] != $_POST['pass_again']) exit('Пароли не совпадают');
// Если введён e-mail проверяем его на соответсвие
if(!empty($_POST['email']))
{
if(!preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i", $_POST['email']))
{
exit('Поле "E-mail" должно соответствовать формату somebody@somewhere.ru');
}
}
/////////////////////////////////////////////////
// 2. Блок проверки имени на уникальность
/////////////////////////////////////////////////
// Имя файла данных
$filename = "text.txt";
// Проверяем не было ли переданное имя
// зарегистрировано ранее
$arr = file($filename);
foreach($arr as $line)
{
// Разбиваем строку по разделителю ::
$data = explode("::",$line);
// В массив $temp помещаем имена уже зарегистрированных
// посетителей
$temp[] = $data[0];
}
// Проверяем не содержится ли текущее имя
// в массиве имён $temp
if(in_array($_POST['name'], $temp))
{
exit("Данное имя уже зарегистрировано, пожалуйста, выберите другое");
}
/////////////////////////////////////////////////
// 3. Блок регистрации пользователя
/////////////////////////////////////////////////
// Помещаем данные в текстовый файл
$fd = fopen($filename, "a");
if(!$fd) exit("Ошибка при открытии файла данных");
$str = $_POST['name']."::".
$_POST['pass']."::".
$_POST['email']."::".
$_POST['url']."\r\n";
fwrite($fd,$str);
fclose($fd);
// Осуществляем перезагрузку страницы,
// чтобы сбросить POST-данные
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=$_SERVER[PHP_SELF]'>
</HEAD></HTML>";
?>
|
| |
|
|
|
|
|
|
|
для: ZetRider
(18.10.2005 в 16:16)
| | Авторизация состоит из двух файлов, основного
<?php
// Имя файла данных
$filename = "text.txt";
// Определяем константу FIRST для
// того, чтобы точно определить
// был ли выполнен файл 1.php
define("FIRST",1);
// Проверяем не пусто ли содержимое
// массива $_POST - если это так,
// выводим форму для авторизации
if(empty($_POST))
{
?>
<table>
<form method=post>
<tr>
<td>Имя:</td>
<td><input type=text name=name></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input type=password name=pass></td>
</tr>
<tr>
<td> </td>
<td><input type=submit value='Войти'></td>
</tr>
</form>
</table>
<?php
}
// В противном случае, если POST-данные
// переданы - обрабатываем их
else
{
// Проверяем корректность введённого имени
// и пароля
$arr = file($filename);
$i = 0;
$temp = array();
foreach($arr as $line)
{
// Разбиваем строку по разделителю ::
$data = explode("::",$line);
// В массив $temp помещаем имена и пароли
// зарегистрированных посетителей
$temp['name'][$i] = $data[0];
$temp['password'][$i] = $data[1];
$temp['email'][$i] = $data[2];
$temp['url'][$i] = trim($data[3]);
// Увеличиваем счётчик
$i++;
}
// Если в массиве $temp['name'] нет введённого
// логина - останавливаем работу скрипта
if(!in_array($_POST['name'],$temp['name']))
{
exit("Пользователь с таким именем не зарегистрирован");
}
// Если пользователь с именем $_POST['name'] обнаружен
// проверяем правильность введённого пароля
$index = array_search($_POST['name'],$temp['name']);
if($_POST['pass'] != $temp['password'][$index])
{
exit("Пароль не соответствует логину");
}
// Если переданный пароль соответсвует паролю из
// файла text.txt выводим форму для редактирования
// данных
include "2.php"; // Обработчик второй HTML-формы
?>
<table>
<form method=post>
<input type=hidden name=name
value='<?= htmlspecialchars($temp['name'][$index]); ?>'>
<input type=hidden name=pass
value='<?= htmlspecialchars($temp['password'][$index]); ?>'>
<input type=hidden name=edit value=edit>
<tr>
<td>Пароль:</td>
<td><input type=password name=passw
value='<?= htmlspecialchars($temp['password'][$index]); ?>'>
</td>
</tr>
<tr>
<td>Пароль:</td>
<td><input type=password name=pass_again
value='<?= htmlspecialchars($temp['password'][$index]); ?>'>
</td>
</tr>
<tr>
<td>E-mail:</td>
<td><input type=text name=email
value=<?= htmlspecialchars($temp['email'][$index]); ?>></td>
</tr>
<tr>
<td>URL:</td>
<td><input type=text name=url
value=<?= htmlspecialchars($temp['url'][$index]); ?>></td>
</tr>
<tr>
<td> </td>
<td><input type=submit value='Редактировать'></td>
</tr>
</form>
</table>
<?php
}
?>
|
И вспомогательного файла 2.php
<?php
// Если константа FIRST из файла 1.php
// не определена производится попытка
// непосредственного обращения к обработчику
// минуя первый файл - пресекаем эту попытку
if (!defined('FIRST')) exit();
// Если передан параметр $_POST['edit'],
// пользователь воспользовался формой для
// редактирования данных
if($_POST['edit'] == 'edit')
{
/////////////////////////////////////////////////
// Блок проверки правильности данных
/////////////////////////////////////////////////
// Удаляем лишние пробелы
$_POST['name'] = trim($_POST['name']);
$_POST['passw'] = trim($_POST['passw']);
$_POST['pass_again'] = trim($_POST['pass_again']);
// Проверяем не пустой ли суперглобальный массив $_POST
if(empty($_POST['name'])) exit();
// Проверяем правильно ли заполнены обязательные поля
if(empty($_POST['name'])) exit('Поле "Имя" не заполнено');
if(empty($_POST['passw']))
exit('Одно из полей "Пароль" не заполнено');
if(empty($_POST['pass_again']))
exit('Одно из полей "Пароль" не заполнено');
if($_POST['passw'] != $_POST['pass_again'])
exit('Пароли не совпадают');
// Если введён e-mail проверяем его на соответсвие
if(!empty($_POST['email']))
{
if(!preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i",
$_POST['email']))
{
exit('Поле "E-mail" должно соответствовать формату
somebody@somewhere.ru');
}
}
/////////////////////////////////////////////////
// Редактируем содержимое файла данных
/////////////////////////////////////////////////
$arr = file($filename);
$linefile = array();
foreach($arr as $line)
{
// Разбиваем строку по разделителю ::
$data = explode("::",$line);
if($data[0] == $temp['name'][$index])
{
// Формируем новую строку вместо старой
$linefile[] = $_POST['name']."::".$_POST['passw']."::".
$_POST['email']."::".$_POST['url'];
$temp['password'][$index] = $_POST['passw'];
$temp['email'][$index] = $_POST['email'];
$temp['url'][$index] = $_POST['url'];
}
else $linefile[] = trim($line);
}
/////////////////////////////////////////////////
// Перезаписываем файл данных
/////////////////////////////////////////////////
$fd = fopen($filename,"w");
if(!$fd) exit("Ошибка записи в файл");
fwrite($fd,implode("\r\n",$linefile));
fclose($fd);
}
?>
|
Пароли в файлах не шифруются, но это не сложно организовать... | |
|
|
|
|
|
|
|
для: cheops
(18.10.2005 в 21:30)
| | ОГРОМНОЕ СПАСИБА!) недумал что ктото придет напомощь) Вот теперь нуна думать как куки ставить! или сессии хотябы,.. мда в чужом коде будет сложно разобратся.. =( | |
|
|
|