[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрет на прямое открытие страниц
Sj
Доброго времени суток всем Вам!
Подскажите пожалуйста как можно защитить все страницы от прямого их открытия в браузере?все кроме первой, так как на ней происходит авторизация пользователя. может поступить просто: в начале кажной страницы вписать:
if ($_session=['logged']) {
//то выполняем скрипт страницы
}
else {
echo "Куда лезешь дурак!!??";
}

можно ли так сделать?
я больше чем уверен что условие не правильно написал, как его правильно сформеровать?



Спустя 56 минут, 1 секунда (4.05.2009 - 08:57) olgatcpip написал(а):
Я обычно делаю примерно так. При авторизации в сессию записываю так:
PHP
$_SESSION['user']['id']=$user_id;

но если тебе не важно какой ид пользивателя напиши так:
PHP
$_SESSION['user']=1;

и дальше
PHP
if ($_SESSION['user']) {
//то выполняем скрипт страницы
}
else {
echo 
"Куда лезешь дурак!!??";
}


Спустя 11 минут, 51 секунда (4.05.2009 - 09:08) stepan написал(а):
Можно покапать в сторону .htaccess но лучше использовать все в одном файле index.php:

PHP
<?
session_start();
if(isset(
$_POST['login']) && isset($_POST['password'])){
$_SESSION['login']=$_POST['login'];
$_SESSION['password']=$_POST['password'];
}
if(
$_SESSION['login']=="admin" && $_SESSION['password']=="123"){
//выполняемый скрипт
}
else{
//форма для регистрации
}

Если ты собираешся использовать много файлов т.е. помимо index.php будет всякие contact.php и т.д. чтобы облегчеть себе жизнь сделай отдельно один файл типа - access.php и втего запиши :
PHP
<?
session_start();
if(isset(
$_POST['login']) && isset($_POST['password'])){
$_SESSION['login']=$_POST['login'];
$_SESSION['password']=$_POST['password'];
}

а вовсех последующих файлах его инклудь наподоби вот такого index.php, contact.php:
PHP
includ('access.php');

Есть еще один распространенный способ спомощью $_GET[] но там есть огромный риск что сайт будет взломан.

Спустя 1 час, 48 минут, 19 секунд (4.05.2009 - 10:57) Sj написал(а):
olgatcpip, не совсем понял, а зачем 1 в $_SESSION['user']=1;
и далее будет проверятся если 1 то выполняем код? (извенити за каламбур)
if ($_SESSION['user']) {

stepan, спасибо за совет!

Спустя 14 минут, 8 секунд (4.05.2009 - 11:11) Гость_hara написал(а):
Зачем сессии...

В начале скрипта что то вроде
PHP
<?php
if(!defined('SYSPATH')){die(No direct access allowed);}


Тут подразумевается что в каком то конфигурационном файле который подключается ко всем скриптам утстанавливается константа SYSPATH, так вот если файл этот не подключен,
=> скрипт вызван напрямую => No direct access allowed

Спустя 5 минут, 55 секунд (4.05.2009 - 11:17) Гость_hara написал(а):
да кавычки забыл в die...

Спустя 15 минут, 44 секунды (4.05.2009 - 11:33) stepan написал(а):
Цитата (Sj @ 4.05.2009 - 07:57)
stepan, спасибо за совет!

Всегда пожалуйста.

Спустя 4 часа, 42 минуты, 46 секунд (4.05.2009 - 16:15) Joker написал(а):
Sj Замечание: нарушение правила 2 п.5с "При оформлении сообщения с программным кодом используйте обрамляющие тэги."

Спустя 17 часов, 10 минут, 20 секунд (5.05.2009 - 09:26) Sj написал(а):
Ребята, послушайте, я что-то не пойму. у меня задумка вот какая:
имеется около 7 страниц: index.php, index1.php, edit.php, add_user.php...
на index.php у меня идет авторизация пользователя и после успешного его выполнения, происходит обработка остального скрипта на этой же страницы. я вот как думал сделать, на index.php есть ссылка на edit.php и остальные, и вот задумка в том чтобы я с одной страницы мог открывать другую и из той переходить еще на следующую и так далее. но запрещать открытие страниц таким образом: http://mysite.ru/edit.php или http://mysite.ru/index1.php
вобщем чтобы была возможность открытия всех страниц только при условии что произошла авторизация на index.php

завтра выложу код index.php страницы

Спустя 2 часа, 41 минута, 31 секунда (5.05.2009 - 12:07) sergeiss написал(а):
Sj - код страницы можешь даже и не выкладывать. Надо просто порассуждать.
Для организации этого процесса надо сделать авторизацию на странице index.php, по результатам которой записывать определенные куки на комп пользователя. При входе на другие страницы читаешь куки и смотришь, разрешено ли пользователю работать на тех страницах.
Если авторизации нету, то тупо редиректишь на index.php.

При этом нету необходимости писать код на каждой странице. Делаешь его в отдельном файле, и через include подключаешь в начала любого файла, где нужна такая проверка.

PS. Если у пользователя есть запрет на куки, то тогда ничего не поможет. В том числе и сессии не помогут. Потому что они тоже используют куки smile.gif, и плюс к тому у них есть временнОе ограничение.

Спустя 26 минут, 21 секунда (5.05.2009 - 12:34) Sj написал(а):
куки можно использывать.
можете примерчик кинуть как с ними работать?

Спустя 8 минут, 36 секунд (5.05.2009 - 12:42) waldicom написал(а):
Цитата
PS. Если у пользователя есть запрет на куки, то тогда ничего не поможет. В том числе и сессии не помогут. Потому что они тоже используют куки smile.gif, и плюс к тому у них есть временнОе ограничение.

Позволю себе вмешаться: необязательно. Сессию можно передавать через $_GET, что многие движки делают. Мне лично такой вариант не нравится, но возможность есть.

Спустя 7 минут, 13 секунд (5.05.2009 - 12:49) Sj написал(а):
как работать с куки?

Спустя 55 секунд (5.05.2009 - 12:50) waldicom написал(а):

Спустя 2 часа, 28 минут, 29 секунд (5.05.2009 - 15:19) Mizka написал(а):
Цитата
вобщем чтобы была возможность открытия всех страниц только при условии что произошла авторизация на index.php


PHP
if (authorised//в зависимости какая там у тебя авторизация
{
        
//показываем контент
}
else
{
header('location:index.php');
}

Спустя 13 часов, 2 минуты, 1 секунда (6.05.2009 - 04:21) Sj написал(а):
у меня на index.php происходит старт сессии таким образом:
PHP
@session_start();

а вот без @ выдает ошибку. с @ правильно ли проходит запись сессии?

Спустя 1 час, 6 минут, 21 секунда (6.05.2009 - 05:27) kirik написал(а):
Цитата (Sj @ 5.05.2009 - 20:21)
а вот без @ выдает ошибку.

Случаем не
Цитата
Cannot send session cache limiter - headers already sent
? biggrin.gif

Спустя 23 часа, 34 минуты, 1 секунда (7.05.2009 - 05:01) Sj написал(а):
да эта и еще про cookie
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.