我试图用 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 中提到的最大值。
你在哪里定义帖子名称的最后?
我在表格中看不到它。