Arm999
Новичок
Здравствуйте! Этот скрипт должен выбрать по случайному порядку цифры, и при этом цифры не должны повторятся. Но возникает такая проблема и не могу в нем разобраться . При заполнении формы скрипт выбирает случайные цифры , но проблема в том что если я $min и $max -у давал 1 и 10 то скрипт выбирает 8 цифры а потом показывает "больше цифров нет", а после этого если вводить что то в форму может показывать какую ту цифру. Не знаю сколько понятно объяснял проблему, если что то не понятно пожалуйста скажите. Заранее спасибо.
PHP:
<?PHP
session_start();
$min = 1;
$max = 10;
while(true) {
$n = rand($min, $max);
$_SESSION['i'][0] = 0;
if (array_search($n, $_SESSION['i'], true)== false) {
$_SESSION['i'][] = $n;
echo'цифра'. $n.'<br>';
break;
}
while(array_search($n, $_SESSION['i'], true)== true)
{
echo $n.'<br>';
$n = rand($min, $max);
if ($max - $min + 1 < count($_SESSION['i'])-1)
{
echo'больше ничего нет <br>';
break;
}
}
if ($max - $min + 1 >= count($_SESSION['i'])-1)
{
$_SESSION['i'][] = $n;
}
break;
}
if(!isset($_SESSION['i']))
$_SESSION['i'][0] = 0;
$_SESSION['i'][1] = NULL;
if(empty($_POST['name']) && isset($_POST['add']) && $max - $min + 1 !== count($_SESSION['i'])-1)
echo 'Вы ничего не ввели';
elseif($_POST['name']!==$_SESSION['a'][count($_SESSION['a'])-1] && $max - $min + 1 !== count($_SESSION['i'])-1)
{
$_SESSION['a'][] = $_POST['name'];
}
if(empty($_POST['name']) && isset($_POST['add']))
$img_name='00';
elseif(empty($_POST['name']) && !isset($_POST['add']) && !isset($_GET['begin']))
$img_name='001';
else
$img_name=$_SESSION['i'][count($_SESSION['i'])-1];
?>
<DOCTYPE html>
<head>
<title></title>
</head>
<body>
<?php
var_dump($_SESSION['a']);
echo '<br>';
var_dump($_POST['name']);
var_dump($_SESSION['i']);
?>
</body>
</html>
Последнее редактирование: