rand()PHP中的变量
我试图在PHP中创建一个类似random.org的网站,但当我转到页面时,我在第36行收到一个错误,$random=rand$first,$last;我怎样才能解决它? 这是密码rand()PHP中的变量,php,html,forms,Php,Html,Forms,我试图在PHP中创建一个类似random.org的网站,但当我转到页面时,我在第36行收到一个错误,$random=rand$first,$last;我怎样才能解决它? 这是密码 <form action="numero.php" method="post"> <input type="text" name="first"> <input type="submit" value="last"> </form> <?php func
<form action="numero.php" method="post">
<input type="text" name="first">
<input type="submit" value="last">
</form>
<?php
function random() {
$first = $_POST['first'];
$last = $_POST['last']
$random = rand($first,$last);
}
echo random();
?>
您缺少分号:
$last = $_POST['last']; // <- here you missed it.
$random = rand($first,$last);
您的代码存在更多问题,例如检查它是否是GET请求,是否需要显示表单或POST请求,从而需要处理表单数据。首次加载此页面时,您将没有任何POST数据。所以你需要将你的东西包装在一个if中,并测试这些变量是否被设置
function random() {
if(isset($_POST['first'])){
$first = $_POST['first'];
$last = $_POST['last'];
} else {
$first = 1;
$last = 10;
}
$random = rand($first,$last);
}
PHP内置的rand;函数将只接受数字作为参数
由于您是在提交按钮中最后传递值,因此函数将抛出一个错误
如果你给它一个数值,这个问题应该解决。或者更好的方法是,从隐藏字段中检索数据,这样您就可以保持按钮中的值不变
编辑
如上所述,您还缺少一个分号;在$u POST['last']之后。rand$min,$max接受整数。默认情况下,$\u POST的值是字符串。首先转换它们:
rand(intval($first),intval($last));
查看php.net中接受int值的函数。我建议您检查所需类型的post值 还要检查php.net上提到的最大值 您最后在哪里定义帖子名称
我没有在表单中看到它。PHPs psuedo随机数生成器缺乏可靠的熵,无法使其在生成random.org提供的随机数质量时更具可行性。@j_mcnally这是真的,但他可以使用。还要注意的是,Random.org提供的是真正的随机数,没有伪随机发生器,它提供了这种质量。我同意,我应该换一句话,没有PSUEDO随机数发生器会做Random.org正在做的事情。如果要创建高质量的随机数生成器,则不能使用rand
rand(intval($first),intval($last));