-2

我有一个包含此代码的脚本picture.php

<?php
if(isset($_GET['pic']) && isset($_SESSION))
{
    $img = imageCreateFromPng($_GET['pic']);
    header("Content-type: image/png");
    imagePng($img); 
    imagedestroy($img);
}

else
{
    echo 'hidden';
    die;
}
?>

当会话未启动时,我试图隐藏从picture.php生成的图像。我有另一个名为show.php的页面,其中包含一个代码

<?php
    session_start();

    echo '<img src="picture.php?pic=apple.png" />' ;
?>

问题是即使会话在show.php启动,图像也不会显示在show.php 中,为什么

4

2 回答 2

0

如果会话被认为已启动,您实际上可能想要“标记”。

图片.php:

session_start();
if(isset($_GET['pic']) && isset($_SESSION['initialized']))
{
    unset($_SESSION['initialized']);
    $img = imageCreateFromPng($_GET['pic']);
    header("Content-type: image/png");
    imagePng($img); 
    imagedestroy($img);
}
else
{
    echo 'hidden';
    die;
}

显示.php:

session_start();
$_SESSION['initialized'] = true;

echo '<img src="picture.php?pic=apple.png" />' ;
于 2013-10-28T08:01:35.543 回答
0

如果您要检查一些会话变量,那么不要忘记在顶部启动会话

尝试:

<?php
session_start();
if(empty($_GET['pic']) && empty($_SESSION))
{

    echo 'hidden';
    die;
}

else
{
    $img = imageCreateFromPng($_GET['pic']);
    header("Content-type: image/png");
    imagePng($img); 
    imagedestroy($img);  
}
?>

这可以帮助...start_session();

于 2013-10-28T07:52:25.690 回答