Skip to content

Instantly share code, notes, and snippets.

@gordinmitya
Created April 12, 2016 12:23
Show Gist options
  • Save gordinmitya/6e5019ff762b7cbe9e15cb0f63e17ae1 to your computer and use it in GitHub Desktop.
Save gordinmitya/6e5019ff762b7cbe9e15cb0f63e17ae1 to your computer and use it in GitHub Desktop.
<?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