Intereting Posts
как я могу загрузить видео и сохранить его в папку в codeigniter? Как поймать сигнал KILL или HUP или пользовательский прерывание? Фильтровать сообщения WordPress по расстоянию между координатами Laravel 4: Как получить выбранные / конкретные столбцы во многих отношениях? __call, __callStatic и область вызова в PHP Как найти недостающую стоимость между двумя таблицами Mysql как получить объект соединения конкретного пользователя? $ wpdb-> get_results ($ запроса); Возвращает NULL с переменным $ query – тот же запрос работает с жестким кодом Как получить Dropzone.js для загрузки файлов только при нажатии кнопки отправки? Абстрактная статическая функция в PHP 5.3 Как выполнить множественную вставку изображений и загрузить их на PHP? Алгоритмическая сложность функции PHP strlen () Возвратите пользователя на предыдущую страницу после входа в систему? Ошибка Query_builder Symfony form builder Как создать учетную запись электронной почты в Cpanel через PHP?

Проблемы с угадыванием ряда игр

Эй, я так близок к тому, чтобы исправить мою догадку в числовой игре, очень простой в PHP, но по какой-то причине я застрял. Я храню переменную в скрытой форме, но, очевидно, каждый раз, когда страница отправляется, она сбрасывает номер, поэтому вы никогда не сможете получить правильный.

Есть идеи? Мой код ниже.

<?php // generate a random number for user to guess $number = rand(1,100); if($_POST["guess"]){ // grab the user input guess $guess = $_POST['guess']; $numbe = $_POST['number']; if ($guess < $number){ echo "Guess Higher"; }elseif($guess > $number){ echo "Guess Lower"; }elseif($guess == $number){ echo "You got it!"; } echo "<br />Random Number:".$number."<br />"; echo $guess; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Guess A Number</title> </head> <body> <form action="<?=$_SERVER['PHP_SELF'] ?>" method="post" name="guess-a-number"> <label for="guess">Guess A Number:</label><br/ > <input type="text" name="guess" /> <input name="number" type="hidden" value="<?= $number ?>" /> <input name="submit" type="submit" /> </form> </body> </html> 

Изменить:

 // generate a random number for user to guess $number = rand(1,100); 

Для того, чтобы:

 if(isset($_POST['number'])) { $number = $_POST['number']; } else { $number = rand(1,100); } 

Это из-за этой опечатки?

 $numbe = $_POST['number']; //numbe -> number 

Я понимаю, вы, вероятно, только начинаете, но чем раньше вы изучаете этот материал, тем лучше:

 echo "<br />Random Number:".$number."<br />"; 

Это оставляет вас открытой для атаки XSS – я мог бы отправить $_POST['number'] качестве <script> doSomethingBad(); </script> <script> doSomethingBad(); </script>

Вы должны либо передать его целому числу ( $number = (int)$_POST['number'] ), либо вывести ваш выход ( echo htmlspecialchars($_POST['number']); )

То же самое касается и $guess конечно.

Интересно, что если вы используете mod_rewrite, то $_SERVER['PHP_SELF'] можно также манипулировать, чтобы делать то же самое.

Сделайте что-то вроде:

 $number = $_POST['number']; if ($number == null) { $number = rand(1,100); }