|
|
|
| Как сделать регистрацию пользователей. Логин и пароль юзеров хранятся в таблице. Как сделать так, чтобы зарестрированные пользователи могли добавлять новые данные в таблици ( оставить сообщение ), а не зарестрированные, только читать данные из таблиц. | |
|
|
|
|
|
|
|
для: wcools
(23.12.2008 в 01:22)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: sl1p
(23.12.2008 в 04:30)
| | Я уже читал.
Меня интерисует не код, а сам принцип. | |
|
|
|
|
|
|
|
для: wcools
(23.12.2008 в 12:17)
| | если пользователь авторизован, выводим ссылки (формы) для добавления сообщений не забывая проверять авторизован он или нет, если пользователь не авторизован-не выводим ссылки(формы) и тоже проверяем авторизован или нет )) | |
|
|
|
|
|
|
|
для: psychomc
(23.12.2008 в 13:08)
| | Напишу подробнее что нужно.
Есть например голосование и гостевая. Голосовать и оставлять сообщения могум только зарегеные юзеры. Зарегеные юзеры хранятся в таблице (mysql), т.е их логин и пароль. Добавить новых юзеров в таблицу проблем не вызывает.
Вопрос в следующем: Заходит незарегистрированный чел на сайт, выполняется PHP скрипт, который
1) Подключается к БД
2) Считывание данных голосования и сообщений
3) Показ этих данных
4) Если юзер зарегистрирован и выполнил вход, он может голосовать и оставить сообщение
5) Показ всех зарегеных юзеров, которые в данный момент нах-ся на сайте
Как отследить, что пользователь сделал вход или выход???
Какого пользователя использовать при подключении к БД(там где root)???
Как сделать так, чтобы когда пользователь добавляет сообщение, автоматически добавлялся его логин (типа Автор: user Сообщении: hello word.)???
Вроде это все сессиями делается, тока как непонятно, может поясните что к чему. | |
|
|
|
|
|
|
|
для: wcools
(23.12.2008 в 15:19)
| | >Какого пользователя использовать при подключении к БД(там где root)???
чтобы показывать юзеров на сайте можно сделать таблицу в которую заносить их после авторизации а потом удалять
>Какого пользователя использовать при подключении к БД(там где root)???
хм...по идее для базы данных у вас будет один пользователь, хотя это уже от хостинга зависит и к регистрации на сайте никак не относится
>Как отследить, что пользователь сделал вход или выход???
создать переменную например $_SESION['username'] и если авторизация успешная записывать в неё значение из таблицы mysql. а проверять например так:
if (!empty($_SESSION['username'])
{
// выводим данные для голосования
}
{
// не выводим данные для голосования
}
вообще лучше всего поюзайте поисковик форума,тут очень много подробных тем про сессии, авторизацию и мн.др | |
|
|
|
|
|
|
|
для: psychomc
(23.12.2008 в 16:53)
| | <?
if(@($sb!=NULL)&&(@$login!=NULL)&&(@$upass!=NULL))
{
$host="localhost";
$name="root";
$pass="";
$con=mysql_connect($host,$name,$pass) or die("Íåò ñîåäèíåíèÿ"); //Ñîåäèíåíèå ñ áä
mysql_select_db("MyBD",$con) or die("Íå ìîãó âûáðàòü ÁÄ"); //Âûáîð áä
$ZP="SELECT * FROM MyTable WHERE login='$login'";
$a=mysql_query($ZP); //Ïðîâåðÿåì åñòü ëè óæå òàêîé ëîãèí
$b=mysql_fetch_array($a);
if(@$b["pass"]==$upass)
{
unset($s);
session_start();
$s=$b["login"];
session_register($s);
$VF=0;
echo "Перенаправление на секретную страницу<br>";
}
else $VF=1;
}
//---------------------------------------------------------------------------------
if(@$s==NULL)
{
print ("
<table align=center border=1>
<tr><td align=center colspan=2>Вход</td></tr>
<form method=post action=av.php>
<tr><td width=140>логин</td><td width=150><input type=text name=login><br> </td></tr>
<tr><td width=140>Пароль</td><td width=150><input type=text name=upass><br></td></tr>
<tr><td align=center colspan=2><input type=submit name=sb value=Âîéòè></td></td>
</table>
");
if(@$VF==1) echo "Неверные данные";
}
else echo "Вы зашли как - ",$s; //Секретная часть
?>
Первая часть работает без проблем. Вторая часть и есть секретной, т.е если правильно выполнились сессии, $s становится не равным NULL, и пишется Вы зашли как...
Это услови сразу видно - дыра. Сделав av.php?s=1 условие сдается. Вопрос такой, какое лучше условие сделать. Слышал про хранение в таблице юзеров уникальные номера и каждый раз его проверять, Выход - ли это??? Что такое хеш, лучше ли он, как с ним работать. Посоветуйте, что лучше. | |
|
|
|
|
|
|
|
для: wcools
(24.12.2008 в 00:00)
| |
<?
or die("Íåò ñîåäèíåíèÿ"); //Ñîåäèíåíèå ñ áä
> mysql_select_db("MyBD",$con) or die("Íå ìîãó âûáðàòü ÁÄ"); //Âûáîð áä
//Ïðîâåðÿåì åñòü ëè óæå òàêîé ëîãèí
?>
|
не разобрался в том что написано сверху )
но знаю точно, что session_start(); надо запускать ДО вывода в браузер
честно сказать стрёмный у Вас какой-то код...либо я нифига в нём не понимаю ))
опять же, лучше всего почитайте другие темы | |
|
|
|
|
|
|
|
для: psychomc
(24.12.2008 в 10:34)
| | Эти каракули - русские буквы. Они не особо важны, там сообщения ошибок и коменты.
А принцип работы проги прост. Если зайти первый раз, до вкл. сессий, выводится форма. Если ввезти в нее правильные логин и пароль, она больше не выводится, а выводится Вы - Логин.
ЗЫ: Сессии включаются до вывода текста в браузер. | |
|
|
|
|
|
|
|
для: wcools
(24.12.2008 в 11:27)
| | ну всё равно, как-то всё сложно...сессию можно включать для всех, если авторизация верная - регистрировать переменную сессии ( логин ), если неверная - не регистрировать. и ещё читал, многие пишут что лучше не пользоваться функцией unset, но на практике её не проверял.
и ещё, у меня была ошибка работы с сессиями даже когда session_start() включалось до вывода в браузер, но после выполнения каких-либо других функций в скрипте, теперь постоянно вставляю в самый верх, всё как надо работает. | |
|
|
|