php - Opera Mini 和 PHP session

标签 php session cookies opera

我曾尝试使用 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>&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 管理 session 。直接访问会输出一个空页面。
  • index.php 使用条件来设置变量。当您拥有数据时,您无需每次都重新处理数据。
  • view_session.php 包含有关 session 的所有信息。
  • 检索信息的最佳做法是存储数据库的安全/加密主键,然后使用它们从数据库中检索其他所有内容,例如通过用户 ID 获取电子邮件、配置文件创建时间、姓名等。

关于php - Opera Mini 和 PHP session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30102971/

相关文章:

cookies - Safari 不设置 Cookie,但 IE/FF 设置

javascript - 使用千位分隔符格式的按键功能进行计算

javascript - 为网站突出显示事件按钮

session - JSESSIONID 后缀的用途是什么?

javascript - jquery mouseenter - mouseleave 不工作

php - 无法使用 Symfony Guard 登录,可能是因为 cookie 和多域

php - 本地计算机上的 cs 购物车(php、apache)链接不起作用。收到404错误

php - 如何在wordpress的三个不同列中查看三个不同类别的帖子?

java - Hibernate + Spring + session + 缓存

php - Laravel 5.5 Cookie 不存储