Opera Mini & amp; Сессии PHP

Я попытался передать конфиденциальную информацию с одной страницы на следующую, используя файлы cookie и сеансы PHP, но все еще не повезло. Это прекрасно работает во всех протестированных мною браузерах, кроме Opera Mini. Я также нашел это: http://caniuse.com/#search=cookie

Вот как у меня это сейчас настроено.

page1.php:

<?php
session_start();
$time = time();
$key = '';
$hash = md5($key . $time);
$_SESSION['inno'] = '';
header("Location: page2.php". $hash);
exit;
?>

page2.php:

<?php
session_start();
if (isset( $_SESSION['inno'])) {
include("../global/header.php");
include("../global/content.php");
}
session_destroy();
?>

Содержимое страницы является конфиденциальной информацией, поэтому она переходит от page1.php к page2.php.

Есть ли какой-то обходной путь, если такая передача не поддерживается в Opera Mini?

3

Решение

Используйте классы для повторно используемых ресурсов, они менее беспорядочные.

Похоже, вы забыли назначить данные, поэтому

Вот перспективная структура:

index.php

<?php

include_once 'session.php';

$my_session = new session_helper;

//SET YOUR SESSION VARIABLES

if($my_session->get_session_data('username') == null){
$sessionData = array(
'username'=>'me',
'logged'=>true,
'password'=>md5('password')
);
$my_session->set_session_data($sessionData);
}

?>
<a href="view_session.php">View my session</a>

view_session.php

<?php

include_once 'session.php';

$my_session = new session_helper;

?>

<!--GET YOUR SESSION VARIABLES-->

<p>Username: <?php echo $my_session->get_session_data('username'); ?></p>
<p>Logged: <?php echo $my_session->get_session_data('logged'); ?></p>
<p>Password: <?php echo $my_session->get_session_data('password'); ?></p>
<p>&nbsp;</p>
<?php $my_session->debug_session(); ?>

session.php избавиться от головной боли

<?php

//MANAGE YOUR SESSION

class session_helper
{

//Start session when class instance created
function __construct()
{

session_start();

}

//Session data set using an array to easily add multiple values e.g. on login page
function set_session_data($sessionData)
{

forEach($sessionData as $key => $value){//Go through each key

$_SESSION[$key] = $value;//And assign it to session

}

}

function get_session_data($session_data_key)
{

return $_SESSION[$session_data_key];//Call this to get your values

}

function debug_session()
{

print_r($_SESSION); //Check what session contains if something is wrong

}

function close_session()
{

session_destroy(); //Good to use for fresh start/logout.

}

}

?>
  • session.php управляет сессиями. Прямой доступ приведет к выводу пустой страницы.
  • index.php использует условие для установки переменных. Вам не нужно переделывать данные каждый раз, когда они у вас есть.
  • view_session.php содержит всю информацию, касающуюся сессии.
  • Лучшая практика получения информации — хранить защищенные / зашифрованные первичные ключи базы данных, а затем использовать их для извлечения всего остального из базы данных, например, по идентификатору пользователя получите адрес электронной почты, время создания профиля, имя, фамилию и т. д.
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]