Created
April 12, 2016 12:23
-
-
Save gordinmitya/6e5019ff762b7cbe9e15cb0f63e17ae1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$key = "GDSHG4385743"; | |
$attempt = 0; | |
if (isset($_REQUEST["input"])) | |
{ | |
$attempt=isset($_REQUEST["attempt"])?(int)$_REQUEST["attempt"]:0; | |
$x = $_REQUEST["x"]; | |
$randNumber = encode($_REQUEST["randNumber"], $key); | |
if ($attempt<7) | |
{ | |
if (!is_numeric($x)) | |
{ | |
$message = 'Неверное значение.<br>Осталось попыток: ' . (7-$attempt); | |
$attempt++; | |
$x = ''; | |
} | |
elseif ($x < 1 || $x > 100) | |
{ | |
$message = 'Введёное значение находится вне диапазона.<br>Осталось попыток: '. (7-$attempt); | |
$attempt++; | |
$x = ''; | |
} | |
elseif ($x < $randNumber) | |
{ | |
$message = 'Введёное значение меньше загаданного.<br>Осталось попыток: '. (7-$attempt); | |
$attempt++; | |
$x = ''; | |
} | |
elseif ($x > $randNumber) | |
{ | |
$message = 'Введёное значение больше загаданного.<br>Осталось попыток: '. (7-$attempt); | |
$attempt++; | |
$x = ''; | |
} | |
elseif ($x == $randNumber) | |
{ | |
$message = 'Вы угадали число c ' . $attempt . '-й попытки. Поздравляем!'; | |
$randNumber = 1; //Загадываем новое число! | |
$x = ''; | |
} | |
} | |
else | |
{ | |
//ВОТ КАК РАЗ ТОТ СЛУЧАЙ КОГДА КНОПКА НЕ НУЖНА!!! | |
} | |
} | |
else | |
{ | |
$randNumber = 1; //Загадываем число | |
$attempt = 1; | |
} | |
if (isset($_REQUEST["restart"])) | |
{ $randNumber = 1; //Загадываем число | |
$attempt = 1; | |
} | |
function code($key, $randNumber) | |
{ | |
$str = $randNumber; | |
$td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_CFB,''); | |
$iv_size = mcrypt_enc_get_iv_size($td); | |
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); | |
mcrypt_generic_init($td,$key,$iv); | |
$crypt_text = mcrypt_generic($td,$str); | |
mcrypt_generic_deinit($td); | |
mcrypt_module_close($td); | |
return $iv.$crypt_text; | |
} | |
function encode($f, $key) | |
{ | |
$td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_CFB,''); | |
$iv_size1 = mcrypt_enc_get_iv_size($td); | |
$iv1 = substr($f,0,$iv_size1); | |
$crypt_text1 = substr($f,$iv_size1); | |
mcrypt_generic_init($td,$key,$iv1); | |
$text = mdecrypt_generic($td,$crypt_text1); | |
mcrypt_generic_deinit($td); | |
mcrypt_module_close($td); | |
return $text; | |
} | |
?> | |
<html> | |
<head> | |
<title>Угадай число</title> | |
</head> | |
</html> | |
<body> | |
<h1>Лабораторная №1.PHP | |
<br>Введите значение от 1 до 100</h1> | |
<form method="get"> | |
<input type="text" value="" name="x" /> | |
<? if ($attempt<7) { ?><input type="submit" name="input" value="Ввести значение" /><br/><? } ?> | |
<input type="submit" name="restart" value="Начать сначала"/><br/> | |
<input type="hidden" name="randNumber" value="<?php echo $randNumber = code($key, $randNumber); ?>" /> | |
<input type="hidden" name="attempt" value="<?php echo $attempt; ?>"/> | |
</form> | |
<p><?php echo $message; ?></p> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment