2011-06-16 65 views
1

我的index.php文件我已经somethingk,如:与PHP的问题导致图像

<?php 
    session_start(); 
    $_SESSION[some_value] = 1; 
?> 
<img src="image.php" alt="some image"/> 
<?php 
    $_SESSION[some_value] = 0; 
?> 

我image.php文件我有看起来像(基本代码):

<?php 
    session_start(); 
    header("Content-Type: image/png"); 
    $im = @imagecreate(400, 20) 
    or die("Cannot Initialize new GD image stream"); 
    $background_color = imagecolorallocate($im, 255, 255, 255); 
    $text_color = imagecolorallocate($im, 233, 14, 91); 
    imagestring($im, 1, 5, 5,"session value is : {$_SESSION[some_value]}", $text_color); 
    imagepng($im); 
    imagedestroy($im); 
?> 

现在,当我加载我的index.php页面在浏览器中的图像中的值是session value is : 0,如何使它显示1,然后在index.php代码将其设置为0(将image.php代码添加到设置值为0是不是我要找的)

回答

0

您遇到了问题,因为在您的代码中,即使两个脚本都使用$_SESSION阵列,两个脚本也不共享会话的内存。

这就是PHP如何以及何时存储$_SESSION数组值的性质。

相反,您需要一个像数据库或共享内存这样的共享存储来交换脚本之间的值。

-1

问题是浏览器加载了image.php之后index.php被加载。

你可以做这样的事情:

<img src="image.php?some_value=<?php echo $_SESSION[some_value]; ?>" alt="some image"/> 

但是这取决于你的特定目的。