2016-05-29 2 views
0

Итак, у меня есть мой сайт (давайте позвоним abc.com) на goDaddy.Предотвратите прямой доступ к веб-странице, введя URL-адрес

У меня есть страница входа в систему (abc.com/login.html).

Который берет меня на вторую страницу под названием booking (abc.com/booking.html) после подтверждения учетных данных.

Поэтому я не хочу, чтобы люди могли просто набрать abc.com/booking.html и получить к нему доступ. Я хочу, чтобы перейти к abc.com/login.html, а затем перейти к abc.com/booking.html

Так я наткнулся на 2 пути, чтобы исправить это -

  1. Включают проверка подлинности php-скрипта в booking.html и изменение расширения с html на phtml. -> Это не сработало для меня
  2. Включите файл .htacess. -> Я не совсем уверен, как это сделать
+0

вам может понадобиться '$ _SESSION' для профилактики. –

+0

Вам нужно сделать что-то серверное. Файл .htaccess скорее заменит вашу страницу входа, я не думаю, что вы этого хотите. Итак, как говорили другие, вам нужно что-то сделать с PHP или другим языком сервера (node.js, Java, ... Я не знаю, какие из них доступны на goDaddy). Концепция заключается в предоставлении пользователю идентификатора сеанса после входа в систему. Этот идентификатор сеанса может быть, например, сохранен в файле cookie или где-то в другом месте. Когда пользователь обращается к странице, скрипт проверяет идентификатор сеанса. Только если идентификатор действителен, пользователь может продолжить работу. – TuringTux

+0

Remeber '$ _SESSION' запускает' PHP' не 'HTML'. –

ответ

1

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

<?php session_start();//at the very top of the page 
?> 
//... your own code 
//if the user successfully logs in then: 
$_SESSION['authenticated']=true; 

Затем на странице booking.php (она должна быть PHP, чтобы позволить PHP скриптов, это супер важно для проверки, является ли пользователь вы вошли бы в систему), вы должны проверить, был ли пользователь входить в систему. Если он это сделал, остальная часть страницы загружается, если он этого не сделал, вы перенаправили бы их для входа в систему.PHP:

на самом верху booking.php:

<?php session_start(); 
if (!isset($_SESSION['authenticated'])) 
{ 
    //if the value was not set, you redirect the user to your login page 
    header('Location https://www.example.com/login.php'); 
    exit; 
} 
else 
{ 
    //if the user did login, then you load the page normally 
} 
+0

Работы. Спасибо – kalpitha

+0

@kalpitha Нет проблем :). О, и если бы этот ответ сработал для вас, пожалуйста, примите его (с зеленой галочкой), чтобы будущие пользователи и читатели знали, что это сработало для вас. – Webeng

0
  1. Использование $ _SESSION или
  2. передать переменную из login.php в booking.php. И затем аутентифицируйте каждого пользователя на основе переменной, переданной с использованием метода $ _POST.

eg.

if (!isset($_POST['auth'])) { 
// redirect user back to login page 
} else { 
// successful login 
} 
0

Вы можете сделать это, как

переименования расширений всех страниц, на которых вы хотите этот аутентификации

например

login.html >> login.php 
booking.html >> booking.php 
booking-suceess.html >> booking-success.php 

создать один сценарий, а именно auth.php со следующим кодом

<?php 
session_start(); 
if(!isset($_SESSION['username'])){ 
    header("location:login.php"); 
} 
?> 

В login.php добавить сеанс

$_SESSION['username'] = $_POST['username']; 

Теперь вы можете добавить auth.php на любой php-странице, где вы хотите, чтобы логин был обязательным:

include ('auth.php'); 
Смежные вопросы