2013-12-25 6 views
-3

Я сделал сценарий входа в PHP, но лучшее, что я придумал, было не совсем тем, что я ожидал. Это чрезвычайное решение, чтобы иметь хотя бы очень простой логин, но я хотел бы получить его немного лучше.Нужна помощь, чтобы переписать сценарий

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

Вот сценарий у меня до сих пор:

<?php 
    $user_pass_list = array ("user1" => "pass1", "user2" => "pass2"); 
    $user = $_POST['user']; 
    $pass = $_POST['pass']; 
    if(array_key_exists($user,$user_pass_list)){ 
     if($user_pass_list[$user] == $pass){ 
      header("location: http://www.examplesite.net"); 
     } else{ 
      echo "login failed"; 
     } 
    } 
?> 

Как вы можете видеть, что это всегда прямо на examplesite.net, для каждого пользователя в массиве. Теперь я хочу, чтобы сценарий перенаправлял учетную запись на свою личную страницу, чтобы я мог писать другую информацию на странице и т. Д.

Может кто-нибудь это сделать?

+1

Вы хотите изменить, но не изменить? Более сложный, но не сложный ... Не совсем ясно, где вы застряли? Вы пытались решить это или вы ошиблись в Stack для E-lancer? Фактическая логика технически меньше усилий для реализации, чем публикация этого вопроса ... – Emissary

+0

Вы говорите, что хотите перенаправить пользователя на свою личную страницу. Чтобы люди могли ответить на ваш вопрос, было бы полезно узнать, какой URL-адрес должен быть. – rednaw

+0

Привет. Мы не склонны принимать запросы на перекодирование кода для людей здесь, так как мы будем на наших глазах волонтерской работой. Тем не менее, вы можете представить свою попытку проблемы, чтобы люди могли показать вам, как ее улучшить/исправить. – halfer

ответ

1

Все, что вам действительно нужно сделать, это добавить пользователя к URL-адресу, на который вы перенаправляете.

header("location: http://www.examplesite.net/" . $user); 

Это самый простой способ, но у него есть проблема. Это будет означать, что ваши другие URL-адреса могут быть сделаны пользователями! Что, если имя пользователя человека «FAQ». Это будет означать, что его пользовательская страница будет:

http://www.examplesite.net/faq 

Что произойдет, если пользователь выберет имя типа «около» или «помощь». Я думаю, вы видите, где я собираюсь с этим.

Чтобы избежать этой проблемы, вы могли бы перенаправить пользователей на страницу, как это:

header("location: http://www.examplesite.net/user/" . $user); 

Теперь вы можете иметь отдельный скрипт для обработки страниц пользователей. Мы на правильном пути!

Чтобы управлять этими URL-адресами, я бы рекомендовал использовать файл .htaccess для перенаправления запросов на правильную страницу. Что-то вроде этого:

RewriteCond $1 ^users/ # Matches URLs starting with users 
RewriteCond %{REQUEST_FILENAME} !-f # skip direct requests for files 
RewriteCond %{REQUEST_FILENAME} !-d # skip direct requests for directories 
RewriteRule ^(.*)$ user_page.php?username=$1 [L] # redirect with GET param 

С помощью этих линий в вашем Htaccess, любой запрос на http://www.examplesite.net/user/ будет перенаправлен на user_page.php сценарий в корневом каталоге сайта. Эта страница получит параметр get, называемый $_GET[ "username" ], который будет именем пользователя.

Смежные вопросы