rand() PHP 中的变量


variables in rand() PHP

我试图用 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);

因此,您会看到一个错误。为了防止这种情况,您可以使用

php -l your_file.php

您的代码存在更多问题,例如检查它是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();函数只会接受数字作为参数。

由于您在提交按钮中传递值last,因此该函数将引发错误。

如果你给它一个数值,这应该被解决。或者更好的是,从隐藏字段中检索数据,以便您可以保持按钮内的值相同。

编辑

如上所述,您在$_POST['last']后还缺少一个分号 ( ; )。

rand($min,$max)接受整数。默认情况下,$_POST的值是字符串。首先转换它们:

rand(intval($first),intval($last));

查看函数的 php.net,它需要 int 值。我建议您检查所需类型的帖子值。

还要检查 php.net 中提到的最大值。

你在哪里定义帖子名称的最后?

我在表格中看不到它。