- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ошибки:
Constructing Viginer table:
Notice: Undefined variable: A1 in T:\home\virtual\site.ru\_vig.php on line 24
Notice: Undefined variable: message in T:\home\virtual\site.ru\_vig.php on line 50
Notice: Undefined variable: code in T:\home\virtual\site.ru\_vig.php on line 53
Encrypting message:
Notice: Undefined variable: code in T:\home\virtual\site.ru\_vig.php on line 57
Notice: Undefined variable: decoding in T:\home\virtual\site.ru\_vig.php on line 60
Decoded message: Alphabet:
Notice: Undefined variable: A1 in T:\home\virtual\site.ru\_vig.php on line 66
Warning: Invalid argument supplied for foreach() in T:\home\virtual\site.ru\_vig.php on line 66
Почему не работает массив A1 (Notice: Undefined variable: A1 in T:\home\virtual\site.ru\_vig.php on line 24) ?
А что за *** постоянно в коде , у меня пхп прям таки изругался матом?
А по вопросу, так перед $A1 в классе надо использовать $this->
То есть типа
for ($i = 0; $i < count($this->$A1); $i++) {
А что за *** постоянно в коде , у меня пхп прям таки изругался матом?
А по вопросу, так перед $A1 в классе надо использовать $this->
То есть типа
for ($i = 0; $i < count($this->$A1); $i++) {
*** - это форум меняет что-то.
vorona добавил 03.11.2011 в 16:08
<?php
class Viginer {
var $A1 = array ("А","Б","В","Г","Д","Е","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я","#","0","1","2","3","4","5","6","7","8","9");
var $message="";
var $key="";
var $table = array(array(),array());
var $code="";
var $decoding="";
function Viginer($mes, $k) {
$message = $mes;
$key = $k;
}
function tablele() {
echo "Constructing Viginer table:<br>";
for ($i = 0; $i < count($A1); $i++) {
for ($j = 0; $j < count($A1); $j++) {
$table[$i][$j] = $A1[($j+$i)%count($A1)];
echo $table[$i][$j];
}
echo '<br>';
}
}
function searchFunction($sym, $ch) {
for ($i = 0; $i < count($sym); $i++) {
if ($sym[$i] == $ch)
return $i;
}
return -1;
}
function searchFunctionTwo($sym, $n, $ch) {
for ($i = 0; $i < count($sym); $i++) {
if ($sym[$n][$i] == $ch)
return $i;
}
return -1;
}
function encoding() {
for ($i = 0; $i < count($message); $i++) {
$code += $table[searchFunction($A1, substr(strlen($i%$key), 1, $key))][searchFunction($A1, substr($i, 1, $message))];
}
echo "Encrypting message: ".$code;
}
function decodingo() {
for ($i = 0; $i < count($code); $i++) {
$decoding += $A1[searchFunctionTwo($table, searchFunction($A1, substr(strlen($i%$key), 1, $key)), substr($i, 1, $code))];
}
echo "Decoded message: ".$decoding;
}
function alpha()
{
echo "Alphabet:";
foreach($A1 as $alpha)
{
echo $alpha;
}
}
}
$mes="Сообщенийо";
$key="Ключ";
$vig = new Viginer($mes, $key);
$vig->tablele();
$vig->encoding();
$vig->decodingo();
$vig->alpha();
?>
vorona добавил 03.11.2011 в 16:10
boodda, спасибо за своет.
Теперь такие ошибки:
Notice: Undefined variable: A1 in T:\home\virtual\site.ru\_vig.php on line 23
Fatal error: Cannot access empty property in T:\home\virtual\site.ru\_vig.php on line 23
меняй везде в классе(файле) $A1 на $this->A1
и заметь A1 уже без знака доллара
Для форматирования кода используйте теги [СODE] на этом форуме, а то [РНР] режет скобки квадратные.
меняй везде в классе(файле) $A1 на $this->A1
и заметь A1 уже без знака доллара
Спасибо за помошь.
Сделал так:
<?php
class Viginer {
var $A1 = array ("А","Б","В","Г","Д","Е","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я","#","0","1","2","3","4","5","6","7","8","9");
var $message="";
var $key="";
var $table = array(array(),array());
var $code="";
var $decoding="";
function Viginer($mes, $k) {
$message = $mes;
$key = $k;
}
function tablele() {
echo "Constructing Viginer table:<br>";
for ($i = 0; $i < count($this->A1); $i++) {
for ($j = 0; $j < count($this->A1); $j++) {
$table[$i][$j] = $this->A1[($j+$i)%count($this->A1)];
echo $table[$i][$j];
}
echo '<br>';
}
}
function searchFunction($sym, $ch) {
for ($i = 0; $i < count($sym); $i++) {
if ($sym[$i] == $ch)
return $i;
}
return -1;
}
function searchFunctionTwo($sym, $n, $ch) {
for ($i = 0; $i < count($this->sym); $i++) {
if ($this->sym[$n][$i] == $this->ch)
return $i;
}
return -1;
}
function encoding() {
for ($i = 0; $i < strlen($this->message); $i++) {
$this->code += $this->table[searchFunction($this->A1, substr(strlen($i%$this->key), 1, $this->key))][searchFunction($this->A1, substr($i, 1, $this->message))];
}
echo "Encrypting message: ".$this->code;
}
function decodingo() {
for ($i = 0; $i < count($this->code); $i++) {
$this->decoding += $this->A1[searchFunctionTwo($this->table, searchFunction($this->A1, substr(strlen($i%$this->key), 1, $this->key)), substr($i, 1, $this->code))];
}
echo "Decoded message: ".$this->decoding;
}
function alpha()
{
echo "Alphabet:";
foreach($this->A1 as $alpha)
{
echo $alpha;
}
}
}
$mes="Сообщенийо";
$key="Ключ";
$vig = new Viginer($mes, $key);
$vig->tablele();
$vig->encoding();
$vig->decodingo();
$vig->alpha();
?>
Fatal error: Call to undefined function searchFunctionTwo() in T:\home\virtual\site.ru\_vig.php on line 57 😡
Вы не внимательны
25 строка
$table[$i][$j] = $this->A1[($j+$i)%count($this->A1)];
и так далее ко всем переменным объявленным в начале класса надо обращаться через $this-> , то есть и к code и decoding и остальным
К методам класса необходимо так обращаться: $this->methodName()
Вы не внимательны
25 строка
$table[$i][$j] = $this->A1[($j+$i)%count($this->A1)];
и так далее ко всем переменным объявленным в начале класса надо обращаться через $this-> , то есть и к code и decoding и остальным
boodda, спасибо, я это понял :) Код выше уже измененный.
еще раз, PROGRAMMATOR вам сказал, что к функциям класса в данном случае тоже надо обращатся через This-> если вы делаете вызов внутри класса
Ага, понял, $this->searchFunction, СПАСИБО.
vorona добавил 03.11.2011 в 16:51
Сколько просидел и не работает :(
Constructing Viginer table:
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789
БВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789А
ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБ
ГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВ
ДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГ
ЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГД
ЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕ
ЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖ
ИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗ
ЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИ
КЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙ
ЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙК
МНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛ
НОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМ
ОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМН
ПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНО
РСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОП
СТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПР
ТУФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРС
УФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТ
ФХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУ
ХЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФ
ЦЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХ
ЧШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦ
ШЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧ
ЩЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШ
ЪЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩ
ЫЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪ
ЬЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫ
ЭЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬ
ЮЯ#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭ
Я#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮ
#0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#
123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0
23456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#01
3456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#012
456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123
56789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#01234
6789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#012345
789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456
89АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#01234567
9АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#012345678
Encrypting message:
Notice: Undefined offset: 33 in T:\home\virtual\site.ru\_vig.php on line 42
Decoded message: 0
Alphabet:
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ#0123456789
vorona добавил 03.11.2011 в 16:52
Конечный код:
<?php
class Viginer {
var $A1 = array ("А","Б","В","Г","Д","Е","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я","#","0","1","2","3","4","5","6","7","8","9");
var $message="";
var $key="";
var $table = array(array(),array());
var $code="";
var $decoding="";
function Viginer($mes, $k) {
$message = $mes;
$key = $k;
}
function tablele() {
echo "<b>Constructing Viginer table:</b><br>";
for ($i = 0; $i < count($this->A1); $i++) {
for ($j = 0; $j < count($this->A1); $j++) {
$table[$i][$j] = $this->A1[($j+$i)%count($this->A1)];
echo $table[$i][$j];
}
echo '<br>';
}
}
function searchFunction($sym, $ch) {
for ($i = 0; $i < count($sym); $i++) {
if ($sym[$i] == $ch)
return $i;
}
return -1;
}
function searchFunctionTwo($sym, $n, $ch) {
for ($i = 0; $i < count($sym); $i++) {
if ($sym[$n][$i] == $ch)
return $i;
}
return -1;
}
function encoding() {
for ($i = 0; $i < strlen($this->message); $i++) {
$this->code += $this->table[$this->searchFunction($this->A1, substr(strlen($i%$this->key), 1, $this->key))][$this->searchFunction($this->A1, substr($i, 1, $this->message))];
}
echo "<br><b>Encrypting message:</b> ".$this->code."<br>";
}
function decodingo() {
for ($i = 0; $i < count($this->code); $i++) {
$this->decoding += $this->A1[$this->searchFunctionTwo($this->table, $this->searchFunction($this->A1, substr(strlen($i%$this->key), 1, $this->key)), substr($i, 1, $this->code))];
}
echo "<br><b>Decoded message:</b> ".$this->decoding;
}
function alpha()
{
echo "<br><b>Alphabet:</b><br>";
foreach($this->A1 as $alpha)
{
echo $alpha;
}
}
}
$mes="Сообщенийо";
$key="Ключ";
$vig = new Viginer($mes, $key);
$vig->tablele();
$vig->encoding();
$vig->decodingo();
$vig->alpha();
?>