-1

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

 ?>
4

5 回答 5

3

您缺少一个分号:

$last = $_POST['last']; // <- here you missed it. 
$random = rand($first,$last);

因此,您会看到一个错误。为了防止这种情况,您可以检查语法

php -l your_file.php

您的代码还有更多问题,例如检查它是 GET 请求(并且需要显示表单)还是 POST 请求(因此需要处理您的表单数据)。

于 2013-10-23T21:37:17.193 回答
0

第一次加载此页面时,您将没有任何POST数据。因此,您需要将您的东西包装在 if 中并测试这些变量是否已设置。

function random() {

    if(isset($_POST['first'])){
        $first = $_POST['first'];
        $last = $_POST['last'];
    } else {
        $first = 1;
        $last = 10;
    }
    $random = rand($first,$last);
}
于 2013-10-23T21:38:14.397 回答
0

PHP 的内置rand();函数只会将数字作为参数。

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

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

编辑

如上所述,您;$_POST['last'].

于 2013-10-23T21:38:41.023 回答
0

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

rand(intval($first),intval($last));
于 2013-10-23T21:38:48.457 回答
0

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

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

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

我没有在表格中看到它。

于 2013-10-23T22:22:07.033 回答