Я пытался создать сайт, как random.org в PHP, но когда я иду на страницу, я получаю сообщение об ошибке в строке 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-запрос (и, следовательно, вам нужно обработать ваши данные формы).
Глядя на php.net для функции, она принимает значения int. Я предлагаю вам проверить значения сообщений для желаемых типов.
Также проверьте максимальное значение, указанное на php.net.
Где вы определяете имя сообщения последним?
Я не вижу его в форме.
При первой загрузке этой страницы у вас не будет никаких данных POST
. Поэтому вам нужно обернуть ваши вещи в if и test, если эти переменные установлены.
function random() {
if(isset($_POST['first'])){
$first = $_POST['first'];
$last = $_POST['last'];
} else {
$first = 1;
$last = 10;
}
$random = rand($first,$last);
}
rand($min,$max)
принимает целые числа. По умолчанию значения $_POST
являются строками. Сначала преобразуйте их:
rand(intval($first),intval($last));
PHP построен в rand();
функция будет принимать только цифры в качестве аргумента.
Поскольку вы передаете значение, last
в вашей кнопке отправки, функция выдает ошибку.
Если вы дадите ему числовое значение, это должно быть разрешено. Или лучше, извлеките данные из скрытого поля, чтобы вы могли сохранить значение внутри вашей кнопки одинаково.
РЕДАКТИРОВАТЬ
Как отмечалось выше, вы также пропустили точку с запятой (;
) после вашего $_POST['last']
.