Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Авторизация без cookie
 
 автор: Akira   (18.11.2004 в 11:41)   письмо автору
 
 

Надо сделать Админ зону, но при условии , что куки нет. Пробывал через session получаеться чушь какая-то =(
А мне что-то не хочеться делать каждый раз запрос к бд.

   
 
 автор: cheops   (18.11.2004 в 11:55)   письмо автору
 
   для: Akira   (18.11.2004 в 11:41)
 

Самое простое по моему - запоролить всё средствами Apache.

http://www.softtime.ru/info/articlephp.php?id_article=27

   
 
 автор: Akira   (18.11.2004 в 12:13)   письмо автору
 
   для: cheops   (18.11.2004 в 11:55)
 

не все так просто =( я ведь не для нормального и-нета делаю а для wap.
Поэтому приходиться учитывать некоторые нюансы.
Так , что Апач мне не подходит.

   
 
 автор: cheops   (18.11.2004 в 12:20)   письмо автору
 
   для: Akira   (18.11.2004 в 12:13)
 

А к номеру телефона нельзя никак привязаться - это было бы идеальное решение?
Вон в соседних темах sedek в MASTER-Beeline к нику привязывает администрирование, если решать эту проблему средствами PHP к базе придётся обращаться и наверное придётся делать всё-таки через сессии - так как они не зависят от клиента...

   
 
 автор: Akira   (18.11.2004 в 12:36)   письмо автору
 
   для: cheops   (18.11.2004 в 12:20)
 

Самое интересное , что не как нельзя =( (если ты не связан с компанией).
Ай-пи одинаков разное только подключение к слоту, но он меняеться при каждой загрузке или перезагрузки страницы.
Через сессии

Auth

<?
include 'config.php';
$query "SELECT count(*) FROM admins WHERE 1 AND name = '".$login."' AND password = '".$pass."';";
if (!
$query) echo mysql_error();
$result mysql_query($query);
if (!
$result) echo mysql_error();
$ra mysql_fetch_array($result);
if (!
$ra) echo mysql_error();
$answer $ra ['count(*)'];
if (!
$answer) echo mysql_error();
if (
$answer == 1)
{
session_start();
$_SESSION['id'] = session_id();
?>
Все ОК <br><a href="step1.php">Дальше</a>
<?
}
else
{
echo 
'Этого не может быть!';
}
?>


Но у меня твориться что-то не ладное =(
Даже если я не проходил авторизацию меня пускает на страницу.

Step1

<?
session_start
();
if (
$PHPSESSID == $id) echo 'Ты зашел назащищенную страницу!<br><a href="news/">Дальше</a>';
elseif (empty(
$id)) echo 'Прочь!';
else echo 
'Прочь!';
?>


News

<?
session_start
();
if (
$PHPSESSID == $id) echo 'Ты зашел назащищенную страницу Новостей!!<br><a href="../destroy.php">Выход</a>';
elseif (empty(
$id)) echo 'Прочь!';
else echo 
'Прочь!';
?>


При этом заходя на destroy.php

<?
session_destroy
();
?>


если перейти на step1 то выведет Ты зашел назащищенную страницу!,
а если перейти к news то появиться Прочь! , что конечно закономерно.
Я не как не пойму , как еще можно с помощью session это сделать?

   
 
 автор: cheops   (18.11.2004 в 15:24)   письмо автору
 
   для: Akira   (18.11.2004 в 12:36)
 

Если посетитель зашёл на сайт, то результат возвращамый функцией session_id() будет одинаков, пока он не закончит сессию... Т.е. следует сделать так
<? 
session_start
(); 
if (
$_SESSION['id'] == session_id()) echo 'Ты зашел назащищенную страницу!<br><a href="news/">Дальше</a>'
elseif (empty(
$_SESSION['id'])) echo 'Прочь!'
else echo 
'Прочь!'
?>

При переходе на news значение сессии $_SESSION['id'] должно сохраняться.

   
 
 автор: Akira   (18.11.2004 в 17:49)   письмо автору
 
   для: cheops   (18.11.2004 в 15:24)
 

А разве $PHPSESSID не одно и тоже что и session_id() ?

   
 
 автор: cheops   (18.11.2004 в 19:30)   письмо автору
 
   для: Akira   (18.11.2004 в 17:49)
 

В общем да, кроме того что session_id() позволяет задать собственный id сессии.

   
 
 автор: Akira   (18.11.2004 в 20:19)   письмо автору
 
   для: cheops   (18.11.2004 в 19:30)
 

Я к тому , что стоит ли создовать переменную которая у нас уже есть?
Я ведь заметил что $PHPSESID автоматом переходит по ссылке...

<? 
session_start
(); 
if (
$PHPSESSID == $id) echo 'Ты зашел назащищенную страницу!<br><a href="news/">Дальше</a>'
elseif (empty(
$id)) echo 'Прочь!'
else echo 
'Прочь!'
?>


По-моему листинг индентичный Вашему, я прав?

<? 
session_start
(); 
if (
$_SESSION['id'] == session_id()) echo 'Ты зашел назащищенную страницу!<br><a href="news/">Дальше</a>'
elseif (empty(
$_SESSION['id'])) echo 'Прочь!'
else echo 
'Прочь!'
?>

   
 
 автор: cheops   (18.11.2004 в 20:43)   письмо автору
 
   для: Akira   (18.11.2004 в 20:19)
 

Да :) я не люблю пользоваться $PHPSESSID :))) - о том и речь, что у вас должно всё работать...

   
 
 автор: Akira   (18.11.2004 в 20:47)   письмо автору
 
   для: cheops   (18.11.2004 в 20:43)
 

=) тогда понятно =) Вообщем написал я =) Вроде работает =))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования