【发布时间】:2014-06-20 11:07:02
【问题描述】:
我正在尝试将 PHP 输出的值捕获到会话或 cookie 中,以便我可以在其他页面中调用它。请看下面的例子
session-page1.php
<?php
session_start();
ob_start();
?>
<!DOCTYPE HTML>
<!--
Strongly Typed 1.1 by HTML5 UP
html5up.net | @n33co
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html lang="en" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<?php $servurl = basename($_SERVER['REQUEST_URI']); ?>
<?php include_once "includes/ghead.php" ?>
<body itemscope itemtype="http://schema.org/CreativeWork" class="upload">
HEAD AND HEADER HTML CODE GOES HERE
<?php
$fpath="upload/myImage.jpg";
$size = getimagesize("$fpath");
$nheight = $size[1];
$nwidth = $size[0];
// Setting sessions
$_SESSION['filepath'] = $fpath;
$_SESSION['nwidth'] = $nwidth;
$_SESSION['nheight'] = $nheight;
session_write_close();
?>
<header>
<h2><?php echo $fpath; ?></h2>
<br> some html code goes here
<br> <a href='session-page2.php'>go to page 2</a>
</header>
<?php echo $_SESSION['filepath']; ?>
</body>
</html>
我现在想获取第 2 页中的会话值。
session-page2.php
<?php
session_start();
echo $_SESSION['filepath'].": ".$_SESSION['nwidth']."x".$_SESSION['nheight'];
session_write_close();
?>
问题是 page1.php 没有生成会话。我使用 cookie 尝试了同样的事情,但我也没有任何运气。
cookie-page1.php
<?php
ob_start();
session_start();
$fpath="upload/myImage.jpg";
$size = getimagesize("$fpath");
$nheight = $size[1];
$nwidth = $size[0];
// Setting cookies
$cookie_name = 'test_cookie';
$cookie_value = $fpath;
setcookie($cookie_name, $cookie_value, time() + (3600), '/'); // 1 hour (60 minutes * 60 seconds = 3,600 seconds)
$cookie_name2 = 'test_cookie2';
$cookie_value2 = $nwidth;
setcookie($cookie_name2, $cookie_value2, time() + (3600), '/'); // 1 hour (60 minutes * 60 seconds = 3,600 seconds)
$cookie_name3 = 'test_cookie3';
$cookie_value3 = $nheight;
setcookie($cookie_name3, $cookie_value3, time() + (3600), '/'); // 1 hour (60 minutes * 60 seconds = 3,600 seconds)
session_write_close();
ob_end_clean();
?>
我现在想获取第 2 页中的 cookie 值。
<?php
ob_start();
session_start();
echo $_COOKIE['test_cookie1'].": ".$_COOKIE['test_cookie2']."x".$_COOKIE['test_cookie3'];
session_write_close();
ob_end_clean();
?>
cookie 未生成,值未保存。有人可以告诉我我做错了什么吗?代码看起来不错,应该保存高度/宽度和文件名的值/输出。另外,如果这在 PHP 中是不可能的,我应该使用 Ajax 来保存值吗?如果是的话,有人能指出我正确的方向吗?
提前感谢大家的帮助!
【问题讨论】:
-
如果删除 session_write_close() 会发生什么; ob_end_clean();
-
嗨 Medda86 - 会话和 cookie 正在生成,值未保存。
-
如果你把 echo $_SESSION['filepath'];在 page1.php 的末尾你得到了什么?您在 page1.php 之前没有请求其他任何内容?
-
如果我把 $_SESSION['filepath'];在 page1.php 的末尾我得到“upload/myImage.jpg”我用 page1.php 上的其他变量对代码进行了编辑
-
我编辑了 session_page1.php 的代码以提供更好的视图。但是 session 和 cookie 的代码是一样的。
标签: php ajax session cookies session-cookies