Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 10.01.2015
Сообщений: 21
1

Вывод введеных чисел

08.11.2015, 18:34. Показов 1276. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане! Помогите пожалуйста доделать 1 фичу для кода. Здесь код игры угадай больше меньше, пользователь вводит число и сервер выводит, угадал пользователь задуманное компом число или нет. Нужно сделать так, чтобы если пользователь не угадал число(переменная $hidden_chislo), то в выводе результата появлялась строка с неудачным числом, потом если пользователь опять не угадал, то выведется 2 неугаданных числах и так далее, до тех пор, пока пользователь не угадает число. Когда число угадается, то строка с предложенными числами исчезнет. Заранне благодарю!
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
    $message = "Угадайте число в диапазоне  от 0 до 100!"; //Устанавливаем сообщение по-умолчанию
    
    if (isset($_POST["ugadat"])) 
    { //Если данные были отправлены на сервер
        //В переменную $chislo записываем данные полученные из текстового поля с именем chislo
        $chislo = $_POST["chislo"]; 
        //В переменную $hidden_chislo записываем данные полученные из скрытого поля с именем $hidden_chislo
        $hidden_chislo = $_POST["hidden_chislo"]; 
 
        //Если число из текстового поля меньше загаданного числа, то выводим сообщение
        if ($chislo < $_POST["hidden_chislo"]) { 
            $message = "Загаданное число больше $chislo(загадно $hidden_chislo)";
            echo $count;            
        } 
        //Если число из текстового поля больше загаданного числа, то выводим сообщение
        elseif ($chislo > $_POST["hidden_chislo"]) 
        { 
            $message = "Загаданное число меньше $chislo(загадно $hidden_chislo)";
        } 
        elseif ($chislo == $_POST["hidden_chislo"]) 
        { //Если числа равны, то мы угадали!!
            $message = "Ура! Вы победили! <br> Загаданно новое число!";
            $hidden_chislo = rand(0, 100); //Загадываем новое число!
        }
    } 
    else
    { //Если данные из формы не были отправлены
        $chislo = 0; //Устанавливаем значение текстового поля по-умолчанию 
        $hidden_chislo = rand(0, 100); //Загадываем число
    }
?>
<html>
    <head>
        <title>Игра: Угадай число (больше-меньше)</title>
    </head>
<body>
    <p><div style="float: left; width: 180px; margin-bottom: 4px; text-align: left;padding: 8px 10px;border: 1px solid #70aed4; margin-left: 20px;">
    <h2 style="font-size: 12px;margin: 0; padding: 0;margin-bottom: 7px;"><span style='color:red;'><h2><?php echo $message;?></h2></span></h2>
   
    <form method="post">
        <input type="text" name="chislo" /> 
 
        <input type="submit" name="ugadat" value="Угадать" /><br/>
 
        <input type="hidden" name="hidden_chislo" value="<?php echo $hidden_chislo ?>" />
    </form>
    
    
</body>
</html>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2015, 18:34
Ответы с готовыми решениями:

вывод введеных данных на экран
&lt;form action &quot;processorder.php&quot; method=&quot;post&quot;&gt; &lt;head&gt; &lt;title&gt;Автозапчасти от Вована -...

Отправка введеных данных
Привет уважаемые форумчане. Нужна ваша помощь. Имеется код ввода данных: ...

Найти сумму отрицательных чисел среди произвольно введеных 16 целых чисел
1. Найти сумму отрицательных чисел среди произвольно введеных 16 целых чисел. 2. Данные о...

Последовательно вводится N целых чисел. Найти минимальное и максимальное число из введеных чисел
Последовательно вводится N целых чисел. Найти минимальное и максимальное число из введеных чисел.

9
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 958
08.11.2015, 18:44 2
Цитата Сообщение от kiryxapro Посмотреть сообщение
и так далее, до тех пор, пока пользователь не угадает число
Беспроигрышная лотерея?
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
08.11.2015, 18:50 3
Цитата Сообщение от kiryxapro Посмотреть сообщение
Нужно сделать так, чтобы если пользователь не угадал число(переменная $hidden_chislo), то в выводе результата появлялась строка с неудачным числом, потом если пользователь опять не угадал, то выведется 2 неугаданных числах и так далее, до тех пор, пока пользователь не угадает число. Когда число угадается, то строка с предложенными числами исчезнет.
Можно если чел не угадал, число неудачное записать в сессию,выводим, если еще не угадал то дополнять сессию, когда число угадывается сессию удаляем.
0
1 / 1 / 0
Регистрация: 10.01.2015
Сообщений: 21
08.11.2015, 18:51  [ТС] 4
Raisin Zn, Вы не поняли, лотерея тут не причем. Требуется выводить числа, которые пользователь ввел и потом нажал кнопку угадать. То есть допустим 3 раза нажали кнопку угадать и 3 раза ввели разные числа и мы до сих пор не угадали загаданное число. Тогда нам будет писать, что введенное число >(<) загаданного + те неудачные числа, которые мы ввели. Помоему я все четко и ясно объяснил.
Azdeman, вы меня правильно поняли, но я в php не силен, так что покажите кодом пожалуйста)
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
08.11.2015, 18:59 5
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
session_start();
if (!isset ($_SESSION['chislo'])){
$_SESSION['chislo'] = array();
}
if ($chislo < $_POST["hidden_chislo"]) { 
            $message = "Загаданное число больше $chislo(загадно $hidden_chislo)";
            echo $count;
            $_SESSION['chislo'][] = $chislo;
        } 
elseif ($chislo > $_POST["hidden_chislo"]) 
        { 
            $message = "Загаданное число меньше $chislo(загадно $hidden_chislo)";
            $_SESSION['chislo'][] = $chislo;
        } 
elseif ($chislo == $_POST["hidden_chislo"]) 
        { //Если числа равны, то мы угадали!!
            $message = "Ура! Вы победили! <br> Загаданно новое число!";
             unset($_SESSION['chislo']);
             session_destroy();
            $hidden_chislo = rand(0, 100); //Загадываем новое число!
        }
Вывод чисел.
PHP
1
2
3
foreach($_SESSION['chislo'] as $value){
echo $value;
}
1
1 / 1 / 0
Регистрация: 10.01.2015
Сообщений: 21
08.11.2015, 19:31  [ТС] 6
Deleted

Добавлено через 8 минут
Azdeman, все равно отлично) А вы не подскажите, как сделать так, чтобы введеное число снова не отправлялась на сервер, если я нажал на F5 и вылезло окошко с повторной отправкой формы, а то я ввел 1 раз число, не угадал, потом нажал F5(кнопку угадал не нажимал) и число это снова отправилось на сервер и вывелось это число снова в добавок к тому же числу-можно такого избежать в моем примере?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
    $message = "Угадайте число в диапазоне  от 0 до 100!"; //Устанавливаем сообщение по-умолчанию
    
    if (isset($_POST["ugadat"])) 
    { //Если данные были отправлены на сервер
        //В переменную $chislo записываем данные полученные из текстового поля с именем chislo
        $chislo = $_POST["chislo"]; 
        //В переменную $hidden_chislo записываем данные полученные из скрытого поля с именем $hidden_chislo
        $hidden_chislo = $_POST["hidden_chislo"]; 
        
        session_start();
        if (!isset($_SESSION['chislo']))
        {
            $_SESSION['chislo'] = array();
        }
        
        if ($chislo < $_POST["hidden_chislo"]) 
        { 
            echo "Загаданное число больше $chislo(загадно $hidden_chislo)";
            
            $_SESSION['chislo'][] = $chislo;
            
            echo "Попытки: "; foreach($_SESSION['chislo'] as $value) echo $value;
        }
        elseif ($chislo > $_POST["hidden_chislo"]) 
        { 
            echo "Загаданное число меньше $chislo(загадно $hidden_chislo)";
            
            $_SESSION['chislo'][] = $chislo;
            
            echo "Попытки: "; foreach($_SESSION['chislo'] as $value) echo $value;
        } 
        elseif ($chislo == $_POST["hidden_chislo"]) 
        { //Если числа равны, то мы угадали!!
            $message = "Ура! Вы победили! <br> Загаданно новое число!";
            unset($_SESSION['chislo']);
            session_destroy();
            $hidden_chislo = rand(0, 100); //Загадываем новое число!
        }
    } 
    else
    { //Если данные из формы не были отправлены
        $chislo = 0; //Устанавливаем значение текстового поля по-умолчанию 
        $hidden_chislo = rand(0, 100); //Загадываем число
    }
?>
<html>
    <head>
        <title>Игра: Угадай число (больше-меньше)</title>
    </head>
<body>
    <p><div style="float: left; width: 180px; margin-bottom: 4px; text-align: left;padding: 8px 10px;border: 1px solid #70aed4; margin-left: 20px;">
    <h2 style="font-size: 12px;margin: 0; padding: 0;margin-bottom: 7px;"><span style='color:red;'><h2><?php echo $message;?></h2></span></h2>
   
    <form method="post">
        <input type="text" name="chislo" /> 
 
        <input type="submit" name="ugadat" value="Угадать" /><br/>
 
        <input type="hidden" name="hidden_chislo" value="<?php echo $hidden_chislo ?>" />
    </form>
    
    
</body>
</html>
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
08.11.2015, 20:29 7
PHP
1
2
3
echo "Попытки: "; foreach($_SESSION['chislo'] as $value) echo $value;
header("Location: ".$_SERVER["HTTP_REFERER"]);
exit;
0
1 / 1 / 0
Регистрация: 10.01.2015
Сообщений: 21
08.11.2015, 20:39  [ТС] 8
Azdeman, к сожалению не работает. При нажатии кнопки угадать крашится и выводится:Warning: Cannot modify header information - headers already sent by (output started at ....) , ругается на строчку header("Location: ".$_SERVER["HTTP_REFERER"]);
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
    $message = "Угадайте число в диапазоне  от 0 до 100!"; //Устанавливаем сообщение по-умолчанию
    
    if (isset($_POST["ugadat"])) 
    { //Если данные были отправлены на сервер
        //В переменную $chislo записываем данные полученные из текстового поля с именем chislo
        $chislo = $_POST["chislo"]; 
        //В переменную $hidden_chislo записываем данные полученные из скрытого поля с именем $hidden_chislo
        $hidden_chislo = $_POST["hidden_chislo"]; 
        
        session_start();
        if (!isset($_SESSION['chislo']))
        {
            $_SESSION['chislo'] = array();
        }
        
        if ($chislo < $_POST["hidden_chislo"]) 
        { 
            echo "Загаданное число больше $chislo(загадно $hidden_chislo)";
            
            $_SESSION['chislo'][] = $chislo;
            
            echo "Попытки: "; foreach($_SESSION['chislo'] as $value) echo $value;
            header("Location: ".$_SERVER["HTTP_REFERER"]);
            exit;
        }
        elseif ($chislo > $_POST["hidden_chislo"]) 
        { 
            echo "Загаданное число меньше $chislo(загадно $hidden_chislo)";
            
            $_SESSION['chislo'][] = $chislo;
           
            echo "Попытки: "; foreach($_SESSION['chislo'] as $value) echo $value;
            header("Location: ".$_SERVER["HTTP_REFERER"]);
            exit;
        } 
        elseif ($chislo == $_POST["hidden_chislo"]) 
        { //Если числа равны, то мы угадали!!
            $message = "Ура! Вы победили! <br> Загаданно новое число!";
            unset($_SESSION['chislo']);
            session_destroy();
            $hidden_chislo = rand(0, 100); //Загадываем новое число!
        }
    } 
    else
    { //Если данные из формы не были отправлены
        $chislo = 0; //Устанавливаем значение текстового поля по-умолчанию 
        $hidden_chislo = rand(0, 100); //Загадываем число
    }
?>
И еще заметил такой баг: когда закрываешь и открываешь страницу то задается новое рандомное число, и когда вводишь неугаданное число, то список старых попыток сохраняется, хотя число уже новое загадано, а нужно чтобы когда загадывалось новое число то старые попытки удалились-такое можно сделать?
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
08.11.2015, 20:42 9
Точно , заголовки уже отправлены.
PHP
1
2
3
echo "<script>window.location.href='Название вашего файла'<script>";
// наприме вот так
echo "<script>window.location.href='index.php'<script>";
0
1 / 1 / 0
Регистрация: 10.01.2015
Сообщений: 21
08.11.2015, 20:46  [ТС] 10
Azdeman не помогло к сожалению-данные все равно отправляются + кнопка угадать вообще пропадает(
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
if (isset($_POST["ugadat"])) 
    { //Если данные были отправлены на сервер
        //В переменную $chislo записываем данные полученные из текстового поля с именем chislo
        $chislo = $_POST["chislo"]; 
        //В переменную $hidden_chislo записываем данные полученные из скрытого поля с именем $hidden_chislo
        $hidden_chislo = $_POST["hidden_chislo"]; 
        
        session_start();
        if (!isset($_SESSION['chislo']))
        {
            $_SESSION['chislo'] = array();
        }
        
        if ($chislo < $_POST["hidden_chislo"]) 
        { 
            echo "Загаданное число больше $chislo(загадно $hidden_chislo)";
            
            $_SESSION['chislo'][] = $chislo;
            
            echo "Попытки: "; foreach($_SESSION['chislo'] as $value) echo $value;
            echo "<script>window.location.href='index.php'<script>";
            exit;
        }
        elseif ($chislo > $_POST["hidden_chislo"]) 
        { 
            echo "Загаданное число меньше $chislo(загадно $hidden_chislo)";
            
            $_SESSION['chislo'][] = $chislo;
           
            echo "Попытки: "; foreach($_SESSION['chislo'] as $value) echo $value;
            echo "<script>window.location.href='index.php'<script>";
            exit;
        } 
        elseif ($chislo == $_POST["hidden_chislo"]) 
        { //Если числа равны, то мы угадали!!
            $message = "Ура! Вы победили! <br> Загаданно новое число!";
            unset($_SESSION['chislo']);
            session_destroy();
            $hidden_chislo = rand(0, 100); //Загадываем новое число!
        }
    }
0
08.11.2015, 20:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2015, 20:46
Помогаю со студенческими работами здесь

Ввод и вывод строки в зависимости от введеных данных
Ввести одну из строк символьных данных: &quot;единица&quot;, &quot;два&quot;, &quot;три&quot;, &quot;четыре&quot;, &quot;пять&quot;, &quot;шесть&quot;,...

Максимальное среди 6 введеных чисел
Дорогие программисты, очень срочно нужна ваша помощь, нужно сделать программу : -Найдите...

определить максимум из 3 введеных чисел
определить максимум из 3 введеных чисел. Если максимум-отрицательное число, то найти количество...

Разность четных и нечетных введеных чисел
Валидатор почему-то задачку не принимает, хотя я считаю мое решение верное. Посчитать разность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru