Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Февр. 2016
Помог: 0 раз(а)
|
Всем привет, я новичок в php, и иногда пытаюсь писать некоторые программки. В этот раз выбрал шифр Цезаря ( это шифр, в котором каждый символ в тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите; например, в шифре со сдвигом вправо на 3, А была бы заменена на Г, Б станет Д, и так далее). Прога должна была шифровать и дешифровать слова, но возникла проблемка при дешифрации. Например, если взять букву "А" и дешифровать со сдвигом в 1 шаг, т.е. должна появится буква "Z" - всплывает ошибка. Т.е. массив не просматривается заново, а останавливается на букве "А".
CODE ( htmlphp):
скопировать код в буфер обмена
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Шифр Цезаря</title> <link href="Style.css" rel="stylesheet"> </head> <body> <div class="body"> <div class="sa"> <form action='fail6.php' method='POST'> <H1 align="center">Введите слово, для шифрования/дешифрования!</H1> <div class="1" align="center"> <i>Сообщение может содержать только буквы английского алфавита*</i><br><br> <input type='text' name='text' size=100> <H1 align="center">Введите количество шагов, для сдвига!</H1> <i>Доступны только числа в диапазоне от 1 до 25*</i><br><br> <input type='number' name='number' min='1' max='25'><br><br> <input type='Submit' value='Зашифровать' name='but'> <input type='Submit' value='Расшифровать' name='but2'> </div> </div> </div> </form> </body> </html>
CODE ( htmlphp):
скопировать код в буфер обмена
<?php { $name=$_POST['text']; $num=$_POST['number']; { $X=strtoupper($_POST['text']); //Преобразует строку в верхний регистр $alph=array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); $N=count($alph);//Считает кол-во букв $b=""; $n=strlen($X); //Возвращает длину строки for($i=0;$i<$n;$i++) for($j=0;$j<$N;$j++) { if($X[$i]==$alph[$j]) { $b= $b . $alph[ ($j+$num) % $N]; } } print "Зашифрованное слово:\t". $b ; } else { print "Не правильное слово для кодирования! "; } } if(isset($_POST['but2'])) { $name=$_POST['text']; $num=$_POST['number']; { $X=strtoupper($_POST['text']); //Преобразует строку в верхний регистр $alph=array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); $N=count($alph);//Считает кол-во букв $b=""; $n=strlen($X); //Возвращает длину строки for($i=0;$i<$n;$i++) for($j=0;$j<$N;$j++) { if($X[$i]==$alph[$j]) { $b= $b . $alph[ ($j-$num) % $N]; } } print "Расшифрованное слово:\t". $b ; } else { print "Не правильное слово для кодирования! "; } } ?>
|