Как изменить статическую навигационную систему на динамическую навигационную систему PHP? - PullRequest
0 голосов
/ 15 декабря 2011

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

Например,

Следующая переадресация заголовка перенаправления входа на основе переменной сеансааутентифицированный пользователь на целевую страницу связан со своим значением идентификатора, хранящимся в базе данных Mysql, где ID является первичным ключом и имеет соответствующее значение 1.

header('Location: user.php?id=' . $_SESSION['user_id']); 

Приведенный выше заголовок перенаправляет пользователя на следующий динамический URL,

www.anysite.com/anydirectory/user.php?id=1

там, где есть навигационное меню, например,

<a herf="user.php"> User Account</a>
<a href="setting.php">User Setting</a>  
<a href="profile.php">User profile</a>
<a href="logout.php">Log Out</a>

Здесь навигационная ссылка,

<a herf="user.php"> User Account</a>

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

www.anysite.com/anydirectory/user.php?id=1

Теперь, как соответствующий пользователь перейдет по ссылке,

www.anysite.com/anydirectory/user.php?id=1

, но не на

www.anysite.com/anydirectory/user.php

из других навигационных ссылок, например,

<a href="setting.php">User Setting</a>
<a href="profile.php">User Profile</a>

Кроме того, как мне изменить следующие статические навигационные ссылки,

<a herf="user.php"> User Account</a>
<a href="setting.php">User Setting</a>  
<a href="profile.php">User profile</a>

к динамическим ссылкам на основе переменных сеанса, связанным с соответствующим значением идентификатора аутентифицированных пользователей, чтобы абсолютные ссылки выглядели так,

www.anysite.com/anydirectory/user.php?id=1
www.anysite.com/anydirectory/setting.php?id=1
www.anysite.com/anydirectory/profile.php?id=1

, поскольку все статические ссылки относятся только к аутентифицированному пользователю?

Примечание: вы можете проверить сеанс входа в систему по адресу Как перенаправить пользователей на их конкретные URL-адреса / целевые страницы после входа в систему?

Заранее спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2011

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

Это может быть сделано путем вывода / запроса предопределенных переменных PHP, таких как переменная формы, переменная сеанса и т. Д., В качестве значения первичного или уникального ключа (здесь «id» является первичным ключом и уникальным ключом по умолчанию) внутри Herf Tag.

<a href="user.php?id=<?php echo $_SESSION['user_id']; ?>">User Account</a>
<a href="user.php?id=<?php echo $_SESSION['user_id']; ?>">User Setting</a>
<a href="user.php?id=<?php echo $_SESSION['user_id']; ?>">User Profile</a>
0 голосов
/ 15 декабря 2011

Вы не должны основывать свою аутентификацию на идентификаторе, установленном в get. Это можно легко изменить или удалить.

Вы рекомендуете написать следующую логику в своем коде:

  1. Вы успешно вошли в систему
  2. Идентификатор, пароль и некоторые умные средства защиты установлены в куки (или сеансе)
  3. При каждой загрузке страницы вы проверяете, являются ли куки (или переменные сеанса) действительными
  4. Если они недействительны, вы заставляете пользователя войти снова
  5. Если он действителен, у вас уже есть идентификатор пользователя.

Вы должны добавлять идентификатор пользователя в URL, только если вы хотите, чтобы пользователь "посетил" профиль или страницу другого пользователя. На facebook profile.php будет указывать на ваш профиль, а profile.php? Id = 111 будет указывать на профиль с идентификатором 111. Вы не хотите, чтобы пользователь мог посещать страницу настроек каждого пользователя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...