rand()PHP中的变量

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

我试图在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 

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