2013-08-26 3 views
2

У меня есть вопрос о php.Проверьте, если пользователь на странице?

Я сделал логин/пароль, где пользователь может выбрать право для входа и оставить для регистрации. Я сделал левый и правый, включая login.php и register.php из корня моей карты.

Проблема заключается в том, когда пользователь вводит login.php или register.php за адрес веб-сайта, они получают фактическую страницу, без стиля и т.д.

Как я могу проверить, что пользователи на both.php странице, и если они пытаются войдите в login.php или register.php, набрав его вручную, автоматически перенаправив их на both.php?

ответ

5

То, что вы хотите сделать, это возможно, вы можете проверить $_SERVER['REQUEST_URI'] в верхней части login.php, например, так:

<?php 
if(strpos($_SERVER['REQUEST_URI'], '/login.php') !== false){ 
    header('Location: /both.php'); 
    exit; 
} 

Вы бы сделать то же самое для register.php, однако, перенаправлять пользователей из эти страницы не являются лучшим решением; вместо этого вы должны переместить login.php и register.php за пределами вашего веб-сайта. Любой файл, который вы не хотите, чтобы пользователь имел доступ, должен находиться за пределами веб-сайта.

Предположим, что ваш веб-сайт называется public_html. Затем создать структуру каталогов, как так:

public_html: 
- both.php 
includes: 
- login.php 
- register.php 

Тогда в both.php, чтобы включить другие два файла, сделайте следующее:

require __DIR__ . '/../includes/login.php'; 
require __DIR__ . '/../includes/register.php'; 

Поскольку эти файлы находятся вне вебсервера они не могут быть просмотрены, введя путь в адресную строку, но both.php все еще могут включать их.

+0

Спасибо! Это сработало, я все еще использовал перенаправление, которое лучше всего подходит для моего сайта atm! – Kets

+0

@Kets Добро пожаловать! Имейте в виду, что по соображениям безопасности лучше перемещать ваши скрипты за пределы вашего веб-сайта, а иногда и лучше для SEO (both.php не будет иметь большого смысла в качестве формы входа в Google), если вы переместите все, что находится за пределами вашего веб-сайта, и используйте фронт-контроллер вы можете легко контролировать, какой URL-адрес загружает ресурсы. – Paulpro