Помещение сессии в оператор if и else

0

У меня возникла проблема с помещением сессии для хранения некоторой информации о странице в переменной heres code:

<?php

$t = $_GET['nm'];
if ($t=="1")
  {

    session_start();
        // store session data
    $_SESSION['nm']=1;
  }
else
  {
  ?>
  <script>
    if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
    window.location = "http://www.gouda-info.nl/mobile";
    }
    </script>
  <?php
  }

$session = $_SESSION['nm'];
if ($session=="1")
  {

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

http://www.example.com/index.php?nm=1

надеюсь, что кто-нибудь придумает яркое решение. :)

РЕДАКТИРОВАТЬ:

он просто терпит неудачу, если я пытаюсь запустить этот код, он дает мне пустую страницу.

  • 3
    Держите session_start () в верхней строке вашей страницы. Во-вторых, проверьте, входит ли ваше исполнение в условие или нет
  • 0
    Также определите «это не работает».
Теги:
if-statement

2 ответа

3
Лучший ответ

сеанс должен быть запущен сверху, а иногда вы имеете дело с == 1 и другими с $t == "1"

попробуйте этот код:

// first line
session_start();

$t = $_GET['nm'];
if ($t == 1) { // use 1 instead of "1"
    // store session data
    $_SESSION['nm'] = 1;
} else {
    ?>
    <script>
        if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {
            window.location = "http://www.gouda-info.nl/mobile";
        }
    </script>
    <?php
}

$session = $_SESSION['nm'];
if ($session == 1) { // use 1 instead of "1"

}
  • 0
    Yay спасибо, ты рок: D
  • 0
    @ user3498443 это сработало? здорово!
Показать ещё 2 комментария
1

Вы используете js-код в php, но ваш js будет запущен после выполнения всего файла php. Поэтому вместо этого используйте php;

<?php
session_start();
$t = $_GET['nm'];
if ($t == "1") {
    // store session data
    $_SESSION['nm'] = "1";
} else {
  if(isMobile()) {
    header('Location: http://www.gouda-info.nl/mobile');
    exit();
  }
}

$session = $_SESSION['nm'];
if ($session == "1") {
    ......
}

function isMobile($user_agent=NULL) {
    if(!isset($user_agent)) {
        $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
    }
    return (strpos($user_agent, 'Android') !== FALSE
            || strpos($user_agent, 'webOS') !== FALSE
            || strpos($user_agent, 'iPhone') !== FALSE
            || strpos($user_agent, 'iPad') !== FALSE
            || strpos($user_agent, 'iPod') !== FALSE
            || strpos($user_agent, 'BlackBerry') !== FALSE);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню