Приветствую коллеги. Создаю свой первый php c элементами css и html для наглядности (не стал выносить в файлы) Решил создать мгновенное мини лото погружаясь в php. Возникли проблемы с кодом, не знаю куда дальше двигаться, уперся в стену. Кто подскажет что делать дальше? Проблемы: проверка ошибок - выводит ошибку даже если все условия по вводу символов верны не знаю как подключить mt_rand и дальше делать вывод и сравнение Дополнительно свои комменты прописал в коде. Код (Text): <?php session_start (); if(isset ($_POST["send"])){ $firstnum = htmlspecialchars ($_POST["firstnum"]); $secondnum = htmlspecialchars ($_POST["secondnum"]); $thirdnum = htmlspecialchars ($_POST["thirdnum"]); $_SESSION["firstnum"] = $firstnum; $_SESSION["secondnum"] = $secondnum; $_SESSION["thirdnum"] = $thirdnum; $error = ""; //проблема с проверкой выполения условий, при вводе цифр от 0 до 10, ошибку показывает даже если цифра введена верно $error_1 = false; if ($firstnum == "" || $firstnum > 10) { $error = "Введите число от 0 до 10"; $error_1 = true; } if ($secondnum == "" || $secondnum > 10) { $error = "Введите число от 0 до 10"; $error_1 = true; } if ($thirdnum == "" || $thirdnum > 10) { $error = "Введите число от 0 до 10"; $error_1 = true; } // как тут завершить код? в случвае если все условия выполнены, нажать на кнопку и вывести сообщение о выигрыше или проигрыше if (!$error_1) { header(); exit; } } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Онлайн лото 3 из 10</title> <meta charset="utf-8"> </head> <style> .error { color: red; } #firstnum { width: 15px; padding: 5px; background: #f0f0f0; } #secondnum { width: 15px; padding: 5px; background: #f0f0f0; } #thirdnum { width: 15px; padding: 5px; background: #f0f0f0; } #lototable { background-color: #CAC6C6; height: 200px; width: 230px; margin: auto; } #nameloto { height: 50px; width: 230px; margin: auto; } </style> <body> <div id="nameloto"> <h2>Онлайн лото 3 из 10</h2> </div> <div id="lototable"> <form name="lotonum" action="" method="post"> <label> Введите первое число от 0 до 10</label> <br /> <input type="text" maxlength="2" name="firstnum" id="firstnum" size="3" value="<?php echo $_SESSION["firstnum"] ?>"/> <span class="error"> <?=$error?></span> <br /> <label> Введите второе число от 0 до 10</label> <br /> <input type="text" maxlength="2" name="secondnum" id="secondnum" size="3" value="<?php echo $_SESSION["secondnum"] ?>"/> <span class="error"> <?=$error?></span> <br /> <label> Введите третье число от 0 до 10</label> <br /> <input type="text" maxlength="2" name="thirdnum" id="thirdnum" size="3" value="<?php echo $_SESSION["thirdnum"] ?>"/> <span class="error"> <?=$error?></span> <br /><br /> <input type="submit" name="send" value="Хочу выиграть!" /> </form><br /> <!-- 1. как дальше подключить функцию mt_rand заставить выводить ее символы от 0 до 10 в случайном порядке после нажатия кнопки? 2. потом сравнить наши переменные, введенные пользователем 3. вовдить совпавшие числа и сообщение YOU WIN или YOU LOOSE, я так понимаю 2 и 3 пункты при помощи того же if --> </div> </body> </html>
Из $_POST приходят строковые значения, а вы их сравниваете с целыми числами. Пользуйтесь var_dump() В таких случаях помогает метод утки: садите рядом с экраном какого-нибудь маскота (уточку, пингвина, фото гуру кода) и начинайте обьяснять ему на пальцах что именно вы хотите и как вы собираетесь это делать. В течении рассказа вы наверняка набредёте на правильные вопросы и соответственно найдёте правильные ответы. Мне лично помогала фраза наставника : "{$username}, (мат)! Это же элементарно!". Я действительно верил что всё гораздо проще чем я думал и в следствии оно действительно таким являлось.
если бы у меня был рядом гуру, я бы сюда не писал этот раздел для новичков в моем представлении и рассчитан на помощь я и хочу разобраться как дальше должен выглядеть код
попробуй от обратного: если условия провалились, т.к. твоя переменная $error истинна, выведи сообщение и заверши работу - die(); если die() не сработал, то будет выполнено то, что написано после него. помести там вывод результата.
Вам надо делать в конце POST-обработчика только редирект, но на разные адреса, зависящие от ситуации. Сначала, в зависимости от наличия/отсутствия ошибки, делаете разветвление на /error/тут_id_ошибки (целевая помимо сообщения об ошибке может содержать исходную форму) и /success/..., потом в ветке success в зависимости от результатов mt_rand и введенных значений добавляете к целевому адресу id результата. --- Добавлено --- Например, если без усложнения для сохранения результата: /success/тут_кол-во_угаданных_чисел (0, 1, 2 или 3). --- Добавлено --- И результаты выводите уже на целевых страницах.