嘿我用imagecreate()创建了动态图像,并且我生成了随机值,我想将该随机数传递给变量,并在我使用图像源的页面内使用该变量。
图片在random.php上,我在页面index.php上使用<img src="random.php" />
,如果这很重要,我想从random.php(图片)传递到index.php。我已经尝试了会话和cookie但是当我刷新时,它总是落后于图像产生的一步......
我使用for循环来回显随机数,我需要将这些数字传递给变量。基本上我如何实时获取图像外的数字,而不是退后一步。
答案 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
将同时返回相同的值。