PHP:如果会话未启动,则尝试隐藏图像


PHP: trying to hide image if session is not started

我有一个脚本图片.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;
}
?>

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

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

问题是图像不会显示在显示中.php甚至会话也会在显示中启动.php为什么?

如果您要

检查某些会话变量,请不要忘记在顶部启动会话

尝试:

<?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();

如果会话被视为已启动,您实际上可能希望"标记"。

图片.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" />' ;