У меня возникла проблема с помещением сессии для хранения некоторой информации о странице в переменной 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
надеюсь, что кто-нибудь придумает яркое решение. :)
РЕДАКТИРОВАТЬ:
он просто терпит неудачу, если я пытаюсь запустить этот код, он дает мне пустую страницу.
сеанс должен быть запущен сверху, а иногда вы имеете дело с == 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"
}
Вы используете 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);
}