Правка php-скрипта

Статус
В этой теме нельзя размещать новые ответы.

jhbtyn

Проверенные
Сообщения
76
Реакции
11
Баллы
11,010
Кто-то из таких древних, как и я, еще наверное помнит скрипт - PasGen 1.1. :facepalm: Недавно обновил ось на сервере, ну соответственно и все остальное. Так теперь этот скрипт не желает работать. Ребята, кто в пых-пыхе силен? Помогите пожалуйста! Код прилагаю, доступ дам (дебиан 8, апач 2.4.10 , пхп 5.6.17).

Код:
<?php

/*
Название: PasGen 1.1;
Автор: Terabyte (admin[at]web-hack.ru);
Дата: 12.05.2005;
Описание: Генератор паролей по различным комбинациям;
Сайт: http://www.web-hack.ru;
Copyright: если захотите поставить скрипт на свой сайт, то не забудьте поставить ссылочку на сайт автора - http://www.web-hack.ru;
*/

@$case1=$_GET['case1'];
@$case2=$_GET['case2'];
@$case3=$_GET['case3'];
@$case4=$_GET['case4'];
@$num1=(int)$_GET['num1'];
@$num2=(int)$_GET['num2'];

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Password Generator</title>
</head>
<body bgcolor="#FAFAF5">

<h1 align="center">Password Generator</h1>

<form action="pasgen.php" method="get">
<table align="center" border="2">
<tr><td>Заглавные</td><td><input type="checkbox" name="case1"<? if ($case1=="on") {echo ' checked';}?>></td></tr>
<tr><td>Маленькие</td><td><input type="checkbox" name="case2"<? if ($case2=="on") {echo ' checked';}?>></td></tr>
<tr><td>Цифры</td><td><input type="checkbox" name="case3"<? if ($case3=="on") {echo ' checked';}?>></td></tr>
<tr><td>Спец. символы</td><td><input type="checkbox" name="case4"<? if ($case4=="on") {echo ' checked';}?>></td></tr>
<tr><td>Кол-во символов</td><td><input type="text" name="num1" value="<? if ($num1!==0) {echo $num1;} else {echo "10";}?>" size="2" maxlength="2"></td></tr>
<tr><td>Кол-во паролей</td><td><input type="text" name="num2" value="<? if ($num2!==0) {echo $num2;} else {echo "6";}?>" size="2" maxlength="2"></td></tr>
</table>

<p align="center"><input type="submit" value="Сгенерировать"></p>
</form>

<?php


function pasgen($case1, $case2, $case3, $case4, $num1) {

$password="";

// Допустимые символы
$small="abcdefghijklmnopqrstuvwxyz";
$large="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$numbers="1234567890";
$symbols="~!#$%^&*()_+-=,./\<>?|:;@";
mt_srand((double)microtime()*1000000);

// кол-во символов в пароле
for ($i=0; $i<$num1; $i++) {

// генерация типа символов
$type=mt_rand(1,4);
switch ($type) {

case 1:
if ($case1=="on") {$password.=$large[mt_rand(0,25)];}
else {$i--;}
break;

case 2:
if ($case2=="on") {$password.=$small[mt_rand(0,25)];}
else {$i--;}
break;

case 3:
if ($case3=="on") {$password.=$numbers[mt_rand(0,9)];}
else {$i--;}
break;

case 4:
if ($case4=="on") {$password.=$symbols[mt_rand(0,24)];}
else {$i--;}
break;
} // end switch;
} // end for($num1);


return $password;
} // end pasgen();





if ($case1=="on" or $case2=="on" or $case3=="on" or $case4=="on") {
if (($num1>0 and $num1<=32) and ($num2>0 and $num2<=99)) {

echo <<<EOF
<table border="0" align="center" bgcolor="silver" cellpadding="40" cellspacing="5"><tr><td>
<code style="color:#000000;">
EOF;



// кол-во генерируемых паролей
for ($z=0; $z<$num2; $z++) {


echo htmlspecialchars(pasgen($case1, $case2, $case3, $case4, $num1))."<br>\n";

} // end for($num2);

echo "</code>
</td></tr></table>";

}
else {echo "<p align=\"center\">Недопустимое кол-во символов (>32) для генерации пароля или большое кол-во (>99) паролей для генерации!</p>";}
}

?>

</body>
</html>

Скорее всего совсем ерунда, т.к. чуть съехало, но не для таких ламеров-копипастеров, как я. )))

pasgen.php.jpg
 

Вложения

  • pasgen.rar
    1.3 KB · Просмотры: 3
Последнее редактирование:
PHP:
<tr><td>Кол-во символов</td><td><input type="text" name="num1" value="<? if ($num1!==0) {echo $num1;} else {echo "10";}?>" size="2" maxlength="2"></td></tr>
<tr><td>Кол-во паролей</td><td><input type="text" name="num2" value="<? if ($num2!==0) {echo $num2;} else {echo "6";}?>" size="2" maxlength="2"></td></tr>
Замените на:
PHP:
<tr><td>Кол-во символов</td><td><input type="text" name="num1" value="<? if ($num1!==0) {echo $num1;} else {echo '10';}?>" size="2" maxlength="2"></td></tr>
<tr><td>Кол-во паролей</td><td><input type="text" name="num2" value="<? if ($num2!==0) {echo $num2;} else {echo '6';}?>" size="2" maxlength="2"></td></tr>
 
Спасибо! Немного полегчало, но клиент пока не совсем здоров. :-)

pasgen2.jpg
 
Кто-то из таких древних, как и я, еще наверное помнит скрипт - PasGen 1.1. :facepalm: Недавно обновил ось на сервере, ну соответственно и все остальное. Так теперь этот скрипт не желает работать. Ребята, кто в пых-пыхе силен? Помогите пожалуйста! Код прилагаю, доступ дам (дебиан 8, апач 2.4.10 , пхп 5.6.17).

Код:
<?php

/*
Название: PasGen 1.1;
Автор: Terabyte (admin[at]web-hack.ru);
Дата: 12.05.2005;
Описание: Генератор паролей по различным комбинациям;
Сайт: http://www.web-hack.ru;
Copyright: если захотите поставить скрипт на свой сайт, то не забудьте поставить ссылочку на сайт автора - http://www.web-hack.ru;
*/

@$case1=$_GET['case1'];
@$case2=$_GET['case2'];
@$case3=$_GET['case3'];
@$case4=$_GET['case4'];
@$num1=(int)$_GET['num1'];
@$num2=(int)$_GET['num2'];

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Password Generator</title>
</head>
<body bgcolor="#FAFAF5">

<h1 align="center">Password Generator</h1>

<form action="pasgen.php" method="get">
<table align="center" border="2">
<tr><td>Заглавные</td><td><input type="checkbox" name="case1"<? if ($case1=="on") {echo ' checked';}?>></td></tr>
<tr><td>Маленькие</td><td><input type="checkbox" name="case2"<? if ($case2=="on") {echo ' checked';}?>></td></tr>
<tr><td>Цифры</td><td><input type="checkbox" name="case3"<? if ($case3=="on") {echo ' checked';}?>></td></tr>
<tr><td>Спец. символы</td><td><input type="checkbox" name="case4"<? if ($case4=="on") {echo ' checked';}?>></td></tr>
<tr><td>Кол-во символов</td><td><input type="text" name="num1" value="<? if ($num1!==0) {echo $num1;} else {echo "10";}?>" size="2" maxlength="2"></td></tr>
<tr><td>Кол-во паролей</td><td><input type="text" name="num2" value="<? if ($num2!==0) {echo $num2;} else {echo "6";}?>" size="2" maxlength="2"></td></tr>
</table>

<p align="center"><input type="submit" value="Сгенерировать"></p>
</form>

<?php


function pasgen($case1, $case2, $case3, $case4, $num1) {

$password="";

// Допустимые символы
$small="abcdefghijklmnopqrstuvwxyz";
$large="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$numbers="1234567890";
$symbols="~!#$%^&*()_+-=,./\<>?|:;@";
mt_srand((double)microtime()*1000000);

// кол-во символов в пароле
for ($i=0; $i<$num1; $i++) {

// генерация типа символов
$type=mt_rand(1,4);
switch ($type) {

case 1:
if ($case1=="on") {$password.=$large[mt_rand(0,25)];}
else {$i--;}
break;

case 2:
if ($case2=="on") {$password.=$small[mt_rand(0,25)];}
else {$i--;}
break;

case 3:
if ($case3=="on") {$password.=$numbers[mt_rand(0,9)];}
else {$i--;}
break;

case 4:
if ($case4=="on") {$password.=$symbols[mt_rand(0,24)];}
else {$i--;}
break;
} // end switch;
} // end for($num1);


return $password;
} // end pasgen();





if ($case1=="on" or $case2=="on" or $case3=="on" or $case4=="on") {
if (($num1>0 and $num1<=32) and ($num2>0 and $num2<=99)) {

echo <<<EOF
<table border="0" align="center" bgcolor="silver" cellpadding="40" cellspacing="5"><tr><td>
<code style="color:#000000;">
EOF;



// кол-во генерируемых паролей
for ($z=0; $z<$num2; $z++) {


echo htmlspecialchars(pasgen($case1, $case2, $case3, $case4, $num1))."<br>\n";

} // end for($num2);

echo "</code>
</td></tr></table>";

}
else {echo "<p align=\"center\">Недопустимое кол-во символов (>32) для генерации пароля или большое кол-во (>99) паролей для генерации!</p>";}
}

?>

</body>
</html>

Скорее всего совсем ерунда, т.к. чуть съехало, но не для таких ламеров-копипастеров, как я. )))

Посмотреть вложение 50633
А что не работает-то, и что съехало?
Сервер с похожей конфигурацией.
pasgen.png
Поправил по совету ниже, пробуйте.
 

Вложения

  • pasgen.zip
    1.8 KB · Просмотры: 1
А, я все понял. jhbtyn, - попросите хостера короткий синтаксис объявления php включить или просто замените все <? на <?php, только не затрагивая уже готовые теги открывающие <?php.
 
Я сам себе хостер. :-) Настраивал по мануалу - . На семерке нормально все было, а тут эта бяка вылезла.

Ребята, всем Спасибо! А особенно fara! Мало того, что подправил скрипт. Так он еще и чебоксы по умолчанию проставил, как я и просил. Выкладываю для народа оба варианта, вдруг кому пригодится. Отличный форум, отличные мастера! :thumbsup:

Код:
<?php

/*
Название: PasGen 1.1;
Автор: Terabyte (admin[at]web-hack.ru);
Дата: 12.05.2005;
Описание: Генератор паролей по различным комбинациям;
Сайт: http://www.web-hack.ru;
Copyright: если захотите поставить скрипт на свой сайт, то не забудьте поставить ссылочку на сайт автора - http://www.web-hack.ru;
*/

@$case1=$_GET['case1'];
@$case2=$_GET['case2'];
@$case3=$_GET['case3'];
@$case4=$_GET['case4'];
@$num1=(int)$_GET['num1'];
@$num2=(int)$_GET['num2'];

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Password Generator</title>
</head>
<body bgcolor="#FAFAF5">

<h1 align="center">Password Generator</h1>

<form action="pasgen.php" method="get">
<table align="center" border="2">
<tr><td>Заглавные</td><td><input type="checkbox" name="case1"<?php if ($case1=="on") ?>checked></td></tr>
<tr><td>Маленькие</td><td><input type="checkbox" name="case2"<?php if ($case2=="on") ?>checked></td></tr>
<tr><td>Цифры</td><td><input type="checkbox" name="case3"<?php if ($case3=="on") ?>checked></td></tr>
<tr><td>Спец. символы</td><td><input type="checkbox" name="case4"<?php if ($case4=="on") {echo ' checked';}?>></td></tr>
<tr><td>Кол-во символов</td><td><input type="text" name="num1" value="<?php if ($num1!==0) {echo $num1;} else {echo "10";}?>" size="2" maxlength="2"></td></tr>
<tr><td>Кол-во паролей</td><td><input type="text" name="num2" value="<?php if ($num2!==0) {echo $num2;} else {echo "6";}?>" size="2" maxlength="2"></td></tr>
</table>

<p align="center"><input type="submit" value="Сгенерировать"></p>
</form>

<?php


function pasgen($case1, $case2, $case3, $case4, $num1) {

$password="";

// Допустимые символы
$small="abcdefghijklmnopqrstuvwxyz";
$large="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$numbers="1234567890";
$symbols="~!#$%^&*()_+-=,./\<>?|:;@";
mt_srand((double)microtime()*1000000);

// кол-во символов в пароле
for ($i=0; $i<$num1; $i++) {

// генерация типа символов
$type=mt_rand(1,4);
switch ($type) {

case 1:
if ($case1=="on") {$password.=$large[mt_rand(0,25)];}
else {$i--;}
break;

case 2:
if ($case2=="on") {$password.=$small[mt_rand(0,25)];}
else {$i--;}
break;

case 3:
if ($case3=="on") {$password.=$numbers[mt_rand(0,9)];}
else {$i--;}
break;

case 4:
if ($case4=="on") {$password.=$symbols[mt_rand(0,24)];}
else {$i--;}
break;
} // end switch;
} // end for($num1);


return $password;
} // end pasgen();





if ($case1=="on" or $case2=="on" or $case3=="on" or $case4=="on") {
if (($num1>0 and $num1<=32) and ($num2>0 and $num2<=99)) {

echo <<<EOF
<table border="0" align="center" bgcolor="silver" cellpadding="40" cellspacing="5"><tr><td>
<code style="color:#000000;">
EOF;



// кол-во генерируемых паролей
for ($z=0; $z<$num2; $z++) {


echo htmlspecialchars(pasgen($case1, $case2, $case3, $case4, $num1))."<br>\n";

} // end for($num2);

echo "</code>
</td></tr></table>";

}
else {echo "<p align=\"center\">Недопустимое кол-во символов (>32) для генерации пароля или большое кол-во (>99) паролей для генерации!</p>";}
}

?>

</body>
</html>
Код:
<?php

/*
Название: PasGen 1.1;
Автор: Terabyte (admin[at]web-hack.ru);
Дата: 12.05.2005;
Описание: Генератор паролей по различным комбинациям;
Сайт: http://www.web-hack.ru;
Copyright: если захотите поставить скрипт на свой сайт, то не забудьте поставить ссылочку на сайт автора - http://www.web-hack.ru;
*/

@$case1=$_GET['case1'];
@$case2=$_GET['case2'];
@$case3=$_GET['case3'];
@$case4=$_GET['case4'];
@$num1=(int)$_GET['num1'];
@$num2=(int)$_GET['num2'];

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Password Generator</title>
</head>
<body bgcolor="#FAFAF5">

<h1 align="center">Password Generator</h1>

<form action="pasgen.php" method="get">
<table align="center" border="2">
<tr><td>Заглавные</td><td><input type="checkbox" name="case1"<?php if ($case1=="on") {echo ' checked';}?>></td></tr>
<tr><td>Маленькие</td><td><input type="checkbox" name="case2"<?php if ($case2=="on") {echo ' checked';}?>></td></tr>
<tr><td>Цифры</td><td><input type="checkbox" name="case3"<?php if ($case3=="on") {echo ' checked';}?>></td></tr>
<tr><td>Спец. символы</td><td><input type="checkbox" name="case4"<?php if ($case4=="on") {echo ' checked';}?>></td></tr>
<tr><td>Кол-во символов</td><td><input type="text" name="num1" value="<?php if ($num1!==0) {echo $num1;} else {echo "10";}?>" size="2" maxlength="2"></td></tr>
<tr><td>Кол-во паролей</td><td><input type="text" name="num2" value="<?php if ($num2!==0) {echo $num2;} else {echo "6";}?>" size="2" maxlength="2"></td></tr>
</table>

<p align="center"><input type="submit" value="Сгенерировать"></p>
</form>

<?php


function pasgen($case1, $case2, $case3, $case4, $num1) {

$password="";

// Допустимые символы
$small="abcdefghijklmnopqrstuvwxyz";
$large="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$numbers="1234567890";
$symbols="~!#$%^&*()_+-=,./\<>?|:;@";
mt_srand((double)microtime()*1000000);

// кол-во символов в пароле
for ($i=0; $i<$num1; $i++) {

// генерация типа символов
$type=mt_rand(1,4);
switch ($type) {

case 1:
if ($case1=="on") {$password.=$large[mt_rand(0,25)];}
else {$i--;}
break;

case 2:
if ($case2=="on") {$password.=$small[mt_rand(0,25)];}
else {$i--;}
break;

case 3:
if ($case3=="on") {$password.=$numbers[mt_rand(0,9)];}
else {$i--;}
break;

case 4:
if ($case4=="on") {$password.=$symbols[mt_rand(0,24)];}
else {$i--;}
break;
} // end switch;
} // end for($num1);


return $password;
} // end pasgen();





if ($case1=="on" or $case2=="on" or $case3=="on" or $case4=="on") {
if (($num1>0 and $num1<=32) and ($num2>0 and $num2<=99)) {

echo <<<EOF
<table border="0" align="center" bgcolor="silver" cellpadding="40" cellspacing="5"><tr><td>
<code style="color:#000000;">
EOF;



// кол-во генерируемых паролей
for ($z=0; $z<$num2; $z++) {


echo htmlspecialchars(pasgen($case1, $case2, $case3, $case4, $num1))."<br>\n";

} // end for($num2);

echo "</code>
</td></tr></table>";

}
else {echo "<p align=\"center\">Недопустимое кол-во символов (>32) для генерации пароля или большое кол-во (>99) паролей для генерации!</p>";}
}

?>

</body>
</html>

p.s. Exile, ваш вариант тоже отлично работает!
 
  • Мне нравится
Реакции: Hope
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу