переменные в rand () PHP

0

Я пытался создать сайт, как 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();

 ?>
  • 0
    Генератору псевдослучайных чисел в PHP не хватает надежной энтропии, чтобы сделать его даже жизнеспособным для генерации качества случайных чисел, которое обеспечивает random.org.
  • 0
    @j_mcnally Это правда, но он мог бы использовать расширение ssl для этого. Также обратите внимание, что Random.org предлагает действительно случайные числа, нет генератора псевдослучайных чисел, который обеспечивает эту квалификацию.
Показать ещё 1 комментарий
Теги:
forms

5 ответов

3

Вам не хватает точки с запятой:

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

Поэтому вы видите ошибку. Чтобы предотвратить это, вы можете проверить синтаксис с помощью

php -l your_file.php

У вас больше проблем с кодом, например, проверка того, является ли он запросом GET (и ему нужно показать форму) или POST-запрос (и, следовательно, вам нужно обработать ваши данные формы).

0

Глядя на php.net для функции, она принимает значения int. Я предлагаю вам проверить значения сообщений для желаемых типов.

Также проверьте максимальное значение, указанное на php.net.

Где вы определяете имя сообщения последним?

Я не вижу его в форме.

0

При первой загрузке этой страницы у вас не будет никаких данных POST. Поэтому вам нужно обернуть ваши вещи в if и test, если эти переменные установлены.

function random() {

    if(isset($_POST['first'])){
        $first = $_POST['first'];
        $last = $_POST['last'];
    } else {
        $first = 1;
        $last = 10;
    }
    $random = rand($first,$last);
}
0

rand($min,$max) принимает целые числа. По умолчанию значения $_POST являются строками. Сначала преобразуйте их:

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

PHP построен в rand(); функция будет принимать только цифры в качестве аргумента.

Поскольку вы передаете значение, last в вашей кнопке отправки, функция выдает ошибку.

Если вы дадите ему числовое значение, это должно быть разрешено. Или лучше, извлеките данные из скрытого поля, чтобы вы могли сохранить значение внутри вашей кнопки одинаково.

РЕДАКТИРОВАТЬ

Как отмечалось выше, вы также пропустили точку с запятой (;) после вашего $_POST['last'].

Ещё вопросы

Сообщество Overcoder
Наверх
Меню