Перенаправление идентификатора сессии php - PullRequest
0 голосов
/ 03 октября 2011

То, что я пытаюсь сделать, это использовать $_SESSION['user_id'], чтобы проверить, является ли 'user_id' = "число", скажем, например, 56, если это так, загрузить страницу, если не перенаправить пользователя на "billing/".$_SESSION['user_id'].".php";

Пока у меня есть это

<?php
    if ($_SESSION['user_id']) === 56) {
        //do nothing
    } else {
          header("Location: billing/".$_SESSION['user_id'].".php");
          exit();   
    }
?>

Я знаю, что этот код неправильный, но, надеюсь, он передает то, что я пытаюсь выполнить. Заранее благодарим за помощь и фрагменты кода.

Ответы [ 4 ]

1 голос
/ 03 октября 2011
  1. не редактируйте код в вашем вопросе на основе ответов.Вы делаете невозможным понять, о чем говорите.
    Если вы хотите что-то добавить - ДОБАВЬТЕ это ниже исходного текста.

  2. Задайте ясный, определенный вопрос.Опишите проблему, с которой вы столкнулись, и какое решение вам нужно.

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

Теперь, каков ваш вопрос?

0 голосов
/ 03 октября 2011

Почему бы не проверить обратное? И для удобства чтения целесообразно использовать {}, а не "." (до тех пор, пока ваш редактор выделит это)

<?php 
if($_SESSION["user_id"] != 56) {
    header("location: billing/{$_SESSION['user_id']}.php");
    die();
}
?>
0 голосов
/ 03 октября 2011

PHP-документ для заголовка () дает много информации о том, как использовать функцию заголовка. Наиболее важным является:

  • Убедитесь, что нет html или текста не было отражено или отправлено в браузер, прежде чем вы позвоните header().
  • Вам нужно exit(); после header(), поскольку вы закончили рендеринг страницы, и некоторые браузеры предпочитают его.
  • HTTP / 1.1 требует абсолютный URI в качестве аргумента »Location: включая схему, имя хоста и абсолютный путь, поэтому вы захотите поставить полный URL после« Location: ». Смотрите php doc например.
0 голосов
/ 03 октября 2011

Вы довольно близки, но вы можете использовать вместо php функцию php http_redirect, чтобы быть более кратким (требуется библиотека PECL):

<?php
    if ($_SESSION['user_id'] == 56) {
        //do nothing
    } else {
        http_redirect("billing/".$_SESSION['user_id'].".php", array(), true, HTTP_REDIRECT_PERM);
    }
?>
...