Аутификация - php + mysql
Добавлено: 18 мар 2010, 20:49
как сделать аутификацию
если авторизирован то
Меню:
Добавить новость
если не авторизирован то
Юзай форму авторизации
ps буду инклюдить на все страници сайта%)
Пример:
Форум сообщества системных администраторов и просто людей, которым не безразличен их компьютер.
https://sysadmins.ws/
Код: Выделить всё
<?
unset($s); // думаю, это писать не надо, но это явно не повредит
session_start(); // это равносильно HEADERS() и SETCOOKIES(), до вызова функции
// ничего на экран не выводить
session_register("s"); // объявляем, что $s является частью сессии
if (isset($c) && $c=='clear') {
// функция обнуления идентификации посетителя.
unset($s);
header("Location: sess.phtml");
echo "clear...";
exit;
}
echo "<a href=sess.phtml>обновить страницу</a><p>";
echo "<a href=sess.phtml?c=clear>обнулить идентификацию</a><p>";
if (!isset($s['count'])) {
// Посетитель пришел впервые. Объявляем переменную, которая
// должны быть всегда. Это счетчик загрузок страницы.
$s['count']=1;
}
else $s['count']++;
echo "Вы загружили эту страницу раз: $s[count]<p>";
// обработка формы, заполняемой посетителем
// если введено имя, заносим в сессию
if (strlen($name)>1) $s['name']=$name;
if (!isset($s['name']))
// если имя еще не введено, выводим форму для ввода
echo "Вы новый пользователь. Пожалуйста,
введите ваше имя:
<form action=sess.phtml>;<input type=text name=name>
<input type=submit></form>";
else
// иначе пишем имя из сесси
echo "Вы зарегистрированы под именем: $s[name]";
?>
Код: Выделить всё
if (strlen($name)>1) $s['name']=$name;
Это прописная замена символу ">". Попробуй заменить.Quiss писал(а):>
и что дальше после ввода слова я получаю >> http://127.0.0.2/Quiss/sess.php?name=qweобновить страницу
обнулить идентификацию
Вы загружили эту страницу раз: 1
Вы новый пользователь. Пожалуйста, введите ваше имя:
Проанализировано за 0.109 секунд, используется GeSHi 1.0.8.4
Это-то зачем скопипастил?Raven писал(а):Проанализировано за 0.109 секунд, используется GeSHi 1.0.8.4
1) CTRL + ARaven писал(а):Это-то зачем скопипастил?Raven писал(а):Проанализировано за 0.109 секунд, используется GeSHi 1.0.8.4
Код: Выделить всё
CREATE TABLE user {
id_user INT NOT NULL AUTO_INCREMENT,
login TINYTEXT
pass TINYTEXT,
PRIMARY KEY (id_user)
} TYPE=MyISAM;
Код: Выделить всё
INSERT INTO user VALUES (NULL, 'sysadmins1', MD5('password1'));
INSERT INTO user VALUES (NULL, 'sysadmins2', MD5('password2'));
INSERT INTO user VALUES (NULL, 'sysadmins3', MD5('password3'));
Код: Выделить всё
<?php
if(isset($_SESSION['user_id']))
{
echo "Здрасте, ".$_SESSION['user_log']."!";
echo "<br /> <a href='logout.php'>Выход</a>";
}
else
{
echo "<form action=gg.php method=post>
Login: <input type=text name=login><br/>
Пароль: <input type=password name=password><br/>
<input type=submit value=Залогеница>
</form>";
}
?>
Код: Выделить всё
<?php
$db = mysql_connect ("Хост","логин пользователя","пароль");
mysql_select_db("база",$db);
?>
<?php
if (isset($_POST['login']) && isset($_POST['password']))
{
$login = mysql_real_escape_string($_POST['login']);
$password = md5($_POST['password']);
$query = "SELECT id_user FROM user WHERE login='$login' AND password='$password' LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) == 1)
{
if (session_start())
{
@$row = mysql_fetch_assoc($sql);
$_SESSION['user_id'] = $row['user_id'];
$_SESSION['user_log'] = $row['login'];
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=login.php'>
</HEAD></HTML>";
}
}
else {
die('Возможно! Вы не правильно ввели логин или пароль');
}
}
?>