将变量从图像传递到下一页

时间:2009-12-03 05:07:29

标签: php image text variables

嘿我用imagecreate()创建了动态图像,并且我生成了随机值,我想将该随机数传递给变量,并在我使用图像源的页面内使用该变量。

图片在random.php上,我在页面index.php上使用<img src="random.php" />,如果这很重要,我想从random.php(图片)传递到index.php。我已经尝试了会话和cookie但是当我刷新时,它总是落后于图像产生的一步......

我使用for循环来回显随机数,我需要将这些数字传递给变量。基本上我如何实时获取图像外的数字,而不是退后一步。

3 个答案:

答案 0 :(得分:1)

使用临时会话变量怎么样?

在您的第一页上,

<?php
    session_start();
    $_SESSION['mykey'] = 'myrandomval';
    session_write_close(); // Helpful if you're using a header redirect
?>

并在第二页

<?php

    session_start();
    $value = $_SESSION['mykey'];

?>

答案 1 :(得分:0)

您遇到的问题是请求index.php,然后浏览器意识到需要random.php,所以 - 是的,random.php将是index.php之后的一步...... < / p>

如果您切换“随机创建”逻辑,(让索引创建存储在会话中的密钥,然后可以从random.php中读取),它可以解决您的问题。

答案 2 :(得分:0)

您可以将随机数生成器种子设置为两个脚本上的相同值,而不是将变量从页面传递到图像。以下是完整示例:

<?php

function randomcolor()
{
    srand( $_SERVER['REQUEST_TIME'] );
    $colors = array('red', 'green', 'blue', 'black', 'orange');
    return $colors[ array_rand($colors) ];
}

$color = randomcolor();

if(isset( $_GET['image'] ))
{
    header('Content-type: image/png');
    $im = imagecreate(75, 50);
    imagecolorallocate($im, 0xee, 0xee, 0xee);
    $black = imagecolorallocate($im, 0, 0, 0);
    imagestring($im, 2, 10, 10, $color, $black);
    imagepng($im);
    exit;
}

?>

<p>color: <?php echo $color; ?></p>
<img src="test5.php?image=1" />

这是使用REQUEST_TIME播种的两个单独请求,这意味着array_rand将同时返回相同的值。