MMGP logo
Присоединяйтесь к нашему инвестиционному форуму, на котором уже 642,427 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение - зарегистрируйтесь прямо сейчас.
Все, что относится к Web-Программированию (PHP, Perl, JavaScript, MySQL, XML и т.д.)
Первый пост Опции темы
Старый 19.08.2011, 19:39
#1
Любитель
 
Имя: Захар
Пол: Мужской
Регистрация: 07.02.2011
Сообщений: 588
Благодарностей: 149
Авторизация на php

Добрый день! Возникли трудности следующего характера:
У меня есть страница, которая, с помощью php, вытягивает пару столбиков из MySQL и отображает их в браузере. Мне надо сделать так, что бы эту страницу видел только я. Как я понимаю, мне надо создать ещё одну страницу с авторизацией, и, при правильно введённых данных в эту форму, она отправляет меня на нужную мне страницу.
Каким образом это реализовать? Только надо учесть ещё то, что без авторизации человек не может перейти на нужную страницу, путём грубого вбивания её адреса в адресную строку браузера.

Буду очень благодарен за любую помощь. Спасибо.
__________________
Ушел с хайпов, начал заниматься сайтами. И вести свой блог zkzakhar.com
zlkifl вне форума
Старый 19.08.2011, 21:34
#2
Топ Мастер
 
Пол: Мужской
Регистрация: 24.09.2007
Сообщений: 9,250
Благодарностей: 1,334

награды Волшебный горшочек Ветеран MMGP.RU 
Re: Авторизация на php

Вот Вам самый простой, наверное, вариант парольной защиты...
Ввели правильный пароль - попали на страницу, не ввели - получили ошибку..
PHP код:
<?php
function authenticate() 
{
    
header('WWW-Authenticate: Basic realm="Какой-то заголовок"');
    
header('HTTP/1.0 401 Unauthorized');
    echo(
'А вот и не угадали...');
    die();
}

$pass "SuperSecretPassword";
if (!isset(
$_SERVER['PHP_AUTH_PW']) || ($_SERVER['PHP_AUTH_PW'] != $pass)) 
{
    
authenticate();

else 
{
  
$url 'https://секретная страница.php';
  
// Перенаправляем на нужную страницу
  
header('Location: '.$url);
}
?>
Senator2 вне форума
Сказали спасибо:
zlkifl (20.08.2011)
Старый 20.08.2011, 23:03
#3
Любитель
 
Имя: Захар
Пол: Мужской
Регистрация: 07.02.2011
Сообщений: 588
Благодарностей: 149
Автор темы Re: Авторизация на php

Спасибо, но что будет если нужный адрес (который мне и надо защитить) вбить напрямик в адресную строку браузера? Человек сразу попадёт на эту страницу, и ничего вводить ему не потребуется, так?

Но если, допустим, таким образом и поступить. Тогда ещё вопрос: есть возможность каким-то образом "ненужному" человеку узнать этот "секретный" адрес, если он нигде светиться не будет?
__________________
Ушел с хайпов, начал заниматься сайтами. И вести свой блог zkzakhar.com
zlkifl вне форума
Старый 21.08.2011, 14:04
#4
Топ Мастер
 
Пол: Мужской
Регистрация: 24.09.2007
Сообщений: 9,250
Благодарностей: 1,334

награды Волшебный горшочек Ветеран MMGP.RU 
Re: Авторизация на php

Цитата:
Сообщение от zlkifl Посмотреть сообщение
Спасибо, но что будет если нужный адрес (который мне и надо защитить) вбить напрямик в адресную строку браузера? Человек сразу попадёт на эту страницу, и ничего вводить ему не потребуется, так?

Но если, допустим, таким образом и поступить. Тогда ещё вопрос: есть возможность каким-то образом "ненужному" человеку узнать этот "секретный" адрес, если он нигде светиться не будет?
Так можно ведь не редирект делать, а сразу вписать код страницы, которую Вы хотите видеть...
Т.е. - вот там, внутри else, и пишите сразу то что Вы хотите видеть при вводе правильного пароля..
PHP код:
<?php
function authenticate() 
{
    
header('WWW-Authenticate: Basic realm="Какой-то заголовок"');
    
header('HTTP/1.0 401 Unauthorized');
    echo(
'А вот и не угадали...');
    die();
}

$pass "SuperSecretPassword";
if (!isset(
$_SERVER['PHP_AUTH_PW']) || ($_SERVER['PHP_AUTH_PW'] != $pass)) 
{
    
authenticate();

else 
{
 
// пишем здесь код, который вытягивает нужные данные из MySQL и показывает их нам.
}
?>

Последний раз редактировалось Senator2; 21.08.2011 в 14:07.
Senator2 вне форума
Сказали спасибо 2 раз(а):
Greg144 (21.08.2011), zlkifl (21.08.2011)
Старый 21.08.2011, 14:20
#5
Профессионал
 
Пол: Мужской
Регистрация: 21.01.2010
Сообщений: 984
Благодарностей: 541
Re: Авторизация на php

PHP код:
<?php 
$pass 
"SuperSecretPassword";
if (!isset(
$_POST['password']) || ($_POST['password'] != $pass))  
{
echo 
'<form method="POST">Пасс? <input name="password" type="password"><input name="submit" type="submit"></form>';
}
else
{
include 
"security_page.php";
//или
//echo 'полный код страницы';
// в этом случае следите за скобками "" и '' в коде html
}
?>
upd: пока я тут писал шедевр - сенатор уже накатал пост)

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

PS: логин в случае сенатора любой канает...

добавлено через 9 минут
Цитата:
Сообщение от zlkifl Посмотреть сообщение
Тогда ещё вопрос: есть возможность каким-то образом "ненужному" человеку узнать этот "секретный" адрес, если он нигде светиться не будет?
Да, если это хостер, и скрипты не зазендены. Хотя и зазенденные скрипты можно дезендить. Это зависит от цены вопроса и порядочности хостера.

Последний раз редактировалось Greg144; 21.08.2011 в 14:31. Причина: Добавлено сообщение
Greg144 вне форума
Сказали спасибо:
zlkifl (21.08.2011)
Старый 21.08.2011, 14:45
#6
Любитель
 
Имя: Станислав
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 15.06.2010
Сообщений: 147
Благодарностей: 14
Re: Авторизация на php

Че парится, просто сессии используй и все
Страница авторизации auth.php:
PHP код:
<?php
  session_start
();
  
//код доступа
  
$secret_key "keysecret";
 if(
$_SESSION['file']){
     
header("Location: secure.php");
 }else{
 
?>
 <form  method="post">
 Пароль доступа: <input name="key" type="password" /><br />
 <input type="submit" value="Вход" style="border:1px solid;" name="button"/>
</form>
<?php
 
}
 if(!empty(
$_POST)){
     
$key htmlspecialchars($_POST['key']);
     if(
$key === $secret_key){
         
$_SESSION['file'] = $key;
         echo 
"Вы успешно вошли<br />";
        echo 
"Перейти на секретную страницу: <a href='secure.php'>Перейти</a>";
     }else
         die(
"Ошибка авторизации");
 }
 else
     return 
false;
?>
А секретную страницу назовем secure.php
PHP код:
<?php
session_start
();
if(!
$_SESSION['file'])
     die(
'Вы не авторизированны, доступ на данную страницу вам закрыт');
else
    
//Текст страницы секретной
    
echo "<h1><center>Ура, вы попали в секретный раздел!!!</center></h1>";
?>
Теперь даже если юзер узнает имя секретной страницы, попасть на нее он не сможет)
mzcoding вне форума
Сказали спасибо:
zlkifl (21.08.2011)
Старый 21.08.2011, 18:08
#7
Любитель
 
Имя: Захар
Пол: Мужской
Регистрация: 07.02.2011
Сообщений: 588
Благодарностей: 149
Автор темы Re: Авторизация на php

Спасибо огромное всем за помощь!
Цитата:
Сообщение от Greg144 Посмотреть сообщение
Да, если это хостер, и скрипты не зазендены. Хотя и зазенденные скрипты можно дезендить. Это зависит от цены вопроса и порядочности хостера.
Что значит "зазендены"?
__________________
Ушел с хайпов, начал заниматься сайтами. И вести свой блог zkzakhar.com
zlkifl вне форума
Старый 21.08.2011, 22:00
#8
Любитель
 
Пол: Мужской
Адрес: Киев
Инвестирую в: Свой бизнес
Регистрация: 15.05.2007
Сообщений: 796
Благодарностей: 87
Re: Авторизация на php

можно на странице обработки логина добавить переменную(любую), а на странице, на которой будет авторизация - сделать проверку, если эта переменная будет равна 1 - выводить информацию, если 0 - не выводить!
OrlandO вне форума
Сказали спасибо:
zlkifl (22.08.2011)
Метки
php, авторизация
Войдите, чтобы оставить комментарий.
Быстрый переход