Аутификация - php + mysql

AJAX (Asynchronous JavaScript and XML), PHP, Perl, ASP, XML, JavaScript, HTML, Ruby on Rails

Модератор: Gen1us2k

Ответить
Quiss
Юзер
Юзер
Сообщения: 14
Зарегистрирован: 18 мар 2010, 20:00

Аутификация - php + mysql

Сообщение Quiss » 18 мар 2010, 20:49

вот такой вот вопросик


как сделать аутификацию

если авторизирован то
Меню:
Добавить новость

если не авторизирован то

Юзай форму авторизации

ps буду инклюдить на все страници сайта%)


Пример:

Изображение
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Аутификация - php + mysql

Сообщение Raven » 19 мар 2010, 14:58

Наверное что-то типа этого:
Пример работы с сессиями.
Все, что мы записываем в переменную $s (массив), будет доступно для чтения при следующем заходе посетителя на сервер. Про сессии, на самом деле, можно сказать очень много, чтобы описать возможности и особенноти.. Но если вы поюзаете пример и попробуете использовать в своих задачах, сами поймете.

Код: Выделить всё

<?
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]";
?>
Я не злопамятный, я просто часто ковыряю логи
Quiss
Юзер
Юзер
Сообщения: 14
Зарегистрирован: 18 мар 2010, 20:00

Re: Аутификация - php + mysql

Сообщение Quiss » 19 мар 2010, 16:04

Ошибка на этой строке Parse error: syntax error, unexpected ';' in *\sess.phtml on line 29

Код: Выделить всё

if (strlen($name)>1) $s['name']=$name;
gt;1 заменяю на gt==1 получаеца какаято левая форма%) каторая ничего не исполняет
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Аутификация - php + mysql

Сообщение Raven » 19 мар 2010, 16:21

Quiss писал(а):>
Это прописная замена символу ">". Попробуй заменить.
Я не злопамятный, я просто часто ковыряю логи
Quiss
Юзер
Юзер
Сообщения: 14
Зарегистрирован: 18 мар 2010, 20:00

Re: Аутификация - php + mysql

Сообщение Quiss » 19 мар 2010, 17:18

обновить страницу

обнулить идентификацию

Вы загружили эту страницу раз: 1

Вы новый пользователь. Пожалуйста, введите ваше имя:

Проанализировано за 0.109 секунд, используется GeSHi 1.0.8.4
и что дальше после ввода слова я получаю >> http://127.0.0.2/Quiss/sess.php?name=qwe
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Аутификация - php + mysql

Сообщение Raven » 19 мар 2010, 17:29

Raven писал(а):Проанализировано за 0.109 секунд, используется GeSHi 1.0.8.4
Это-то зачем скопипастил?
Я не злопамятный, я просто часто ковыряю логи
Quiss
Юзер
Юзер
Сообщения: 14
Зарегистрирован: 18 мар 2010, 20:00

Re: Аутификация - php + mysql

Сообщение Quiss » 20 мар 2010, 23:12

Raven писал(а):
Raven писал(а):Проанализировано за 0.109 секунд, используется GeSHi 1.0.8.4
Это-то зачем скопипастил?
1) CTRL + A
2) возоможно не то что мне нужно есть другие варианты?
Quiss
Юзер
Юзер
Сообщения: 14
Зарегистрирован: 18 мар 2010, 20:00

Re: Аутификация - php + mysql

Сообщение Quiss » 28 мар 2010, 14:36

1) Почистите тему
2) вот скрипт нашел + переписал под себя
3) у каво какие есть предложения по улутшению безопасности

Таблица user:

Код: Выделить всё

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'));

login.php:

Код: Выделить всё

<?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>";
}
?>
gg.php:

Код: Выделить всё

<?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('Возможно! Вы не правильно ввели логин или пароль');
}
}
?>
Ответить

Вернуться в «Веб-программирование»