我曾尝试使用 Cookie 和 PHP session 将敏感信息从一个页面传递到下一个页面,但仍然没有成功。这在我测试过的所有浏览器中都运行良好,除了 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 不支持以这种方式传递信息,是否有某种解决方法?
最佳答案
对可重用资源使用类,它们不那么困惑。
看起来你忘了分配数据,所以
这是有前途的结构:
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> </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 管理 session 。直接访问会输出一个空页面。
- index.php 使用条件来设置变量。当您拥有数据时,您无需每次都重新处理数据。
- view_session.php 包含有关 session 的所有信息。
- 检索信息的最佳做法是存储数据库的安全/加密主键,然后使用它们从数据库中检索其他所有内容,例如通过用户 ID 获取电子邮件、配置文件创建时间、姓名等。
关于php - Opera Mini 和 PHP session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30102971/