С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/65: Рейтинг темы: голосов - 65, средняя оценка - 4.57
0 / 0 / 2
Регистрация: 13.01.2010
Сообщений: 129

Доступ к странице через авторизацию

16.01.2010, 12:33. Показов 13658. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, или скиньте пож ссылку где можно почитать об этом(только где написано нормальным человеческим языком))).Принцип регистрации и авторизации я уже понял, а вот как сделать чтобы у незарегистрированных не было доступа к странице - не совсем.Это делается с помощью сессий?Не могли бы вы описать сам процесс как это работает? Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2010, 12:33
Ответы с готовыми решениями:

Доступ на другие страницы только через Авторизацию
Здравствуйте, Допустим у меня есть страницы View.aspx, Add.aspx И еще я создам страницу авторизации Login.aspx Как сделать, чтобы...

Как заблокировать доступ к странице через .htaccess ?
На сайте был вирус, и наделал левых ссылок, такого плана....

Убрать авторизацию на главной странице!
День добрый!!! Ситуация след., набрав в адресной строке сайт - на главной странице отображается форма авторизации, ко всему еще...

10
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.01.2010, 12:42
Тут всё очень просто.
На закрытых страницах:
PHP
1
if($_SESSION['avtorization']!=true) header("Location: login.php");
Дальше код страницы.
Примерно так.
0
0 / 0 / 2
Регистрация: 13.01.2010
Сообщений: 129
16.01.2010, 15:41  [ТС]
А можно немного поподробнее?
К примеру есть скрипт авторизации.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (isset($_POST['login']) && isset($_POST['pass']))
{
$db= mysql_connect("localhost","root","");
mysql_select_db ("name",$db);
$query = "SELECT `id` 
              FROM `users`
              WHERE `login`='{$login}' AND `pass`='{$pass}'
              LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
                                                
         if (mysql_num_rows($sql) == 1)
     {
     $row = mysql_fetch_assoc($sql);
     $_SESSION['user_id'] = $row['id'];
     }
     else
     {
     die('Такой логин с паролем не найдены в базе данных.');
     }
    
}
и далее к примеру перенаправляем на страницу если логин и пас правильные.Что надо прописать на той странице куда перенаправили, чтобы привязать данную сессию конкретно к этому посетителю?
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.01.2010, 16:04
В вашем случае уже есть $_SESSION['user_id'], так что ничего добавлять в скрипт авторизации не надо.
PHP
1
if(!isset($_SESSION['user_id']))  header("Location: login.php");
1
0 / 0 / 2
Регистрация: 13.01.2010
Сообщений: 129
16.01.2010, 16:52  [ТС]
Цитата Сообщение от dimjan4 Посмотреть сообщение
В вашем случае уже есть $_SESSION['user_id'], так что ничего добавлять в скрипт авторизации не надо.
PHP
1
if(!isset($_SESSION['user_id']))  header("Location: login.php");
Чем дальше в лес, тем больше дров))
Вписал это на странице авторизации в условии после проверки логина и пароля
PHP
1
header  ("Location: form.php");
и получил это:

Warning: Cannot modify header information - headers already sent by
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.01.2010, 18:53
zemelea, и опять, всё просто! header надо установить до первого вывода. Лучше после <?php
1
Программист
 Аватар для motakuji
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
16.01.2010, 19:36
А на страницая,где тебе нужно скрыть информацию делаешь так:
PHP
1
2
3
4
if (isset($_SESSION[user_id])){
echo "этот текст видят только зарегистрированыые пользователи";}
else{
echo "вы не можете прочитать скрытый текст";}
1
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.01.2010, 19:44
motakuji, мой вариант- то же самое, что и твой; отличие только в том, что твой скрипт выдаёт сообщение, а мой выкидывает на другую страничку.
0
Программист
 Аватар для motakuji
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
16.01.2010, 19:46
dimjan4, да я знаю.Только вот пользователь спрашивал как это сделать.Вот я и на всякий случай написал.если не понятно вдруг станет.
1
0 / 0 / 2
Регистрация: 13.01.2010
Сообщений: 129
17.01.2010, 07:25  [ТС]
Спасибо, разобрался)
Вчера насчёт header лазил по форуму и пытался найти причину ошибки.Многие говорят, что проблема в кодировке, и документ обязаельно должен быть сохранён в utf-8.Мне это не помогло.Оказалось у меня просто до <?php была пропущена первая строка(была пустая).Как только <?php оказался на первой строке документа всё заработало).
0
0 / 0 / 1
Регистрация: 16.09.2013
Сообщений: 16
16.09.2013, 02:28
Ребят такая же проблема, немогу решить никак:
Скрипт авторизации:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
    session_start();//  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    }
    //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
$password = stripslashes($password);
    $password = htmlspecialchars($password);
//удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
// подключаемся к базе
    include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
 
$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db); //извлекаем из базы все данные о пользователе с введенным логином
    $myrow = mysql_fetch_array($result);
    if (empty($myrow['password']))
    {
    //если пользователя с введенным логином не существует
    exit ("Извините, введённый вами login или пароль неверный.");
    }
    else {
    //если существует, то сверяем пароли
    if ($myrow['password']==$password) {
    //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
    $_SESSION['login'] = $myrow['login']; 
    $_SESSION['id'] = $myrow['id'];
//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
    echo "Вы успешно вошли на сайт! <a href='new.php'>Главная страница</a>";
    }
 else {
    //если пароли не сошлись
 
    exit ("Извините, введённый вами login или пароль неверный.");
    }
    }
    ?>
Скрипт который пробую:
PHP
1
2
3
<?php
if(!$_SESSION['login'])
header('Location: log.php'); ?>
Все время показывает что сессии нету

Добавлено через 15 минут
кажется разобрался надо было на 2 странице запустить сессию

Добавлено через 44 минуты
снова не работает, может кто-то что-то подскажет.
Заранее, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.09.2013, 02:28
Помогаю со студенческими работами здесь

Как сделать доступ к PHP странице после логина на aspx странице?
Как сделать доступ к PHP странице после логина на aspx странице? Сделал система аутентификации и авторизации через логин для защиты к...

Как сделать регистрацию и авторизацию пользователей с личной странице пользователя и адресом на его страницу?
Как сделать регистрацию и авторизацию пользователей с личной странице пользователя и адресом на его страницу?

Настроить прокси-сервер на компе чтобы он авторизацию проводил не через текущего пользователя, а через заданного
Теперь сама задача, заключается в следующем: комп подключен к доменной сети. как настроить прокси-сервер на компе чтобы он авторизацию...

Как сделать авторизацию двух пользователей причем один имеет доступ ко всему, а второй только к одной форме?
Пожалуйста помогите Добавлено через 8 часов 46 минут Windows Worm c#

Комментирование через авторизацию на форуме
Доброго времени суток уважаемые пользователи. Подскажите пожалуйста суть, как реализовать следующее: есть страничка со статьей по адресу:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru