Добавление капчи!

Z
На сайте с 27.05.2011
Offline
0
463

Есть код, надо добавить простейшую капчу, лучше только цифры.

<?php session_start(); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Покупка товара</title>
</head>
<body>
<?php
if(isset($_GET['phone']) && isset($_GET['name'])){
$quantity = $_GET['quantity']." штук";
if($_GET['quantity']%10==1){
$quantity = $_GET['quantity']." штука";
}
if($_GET['quantity']%10>1 && $_GET['quantity']%10<5){
$quantity = $_GET['quantity']." штуки";
}
if($_GET['quantity']%100>10 && $_GET['quantity']%100<20){
$quantity = $_GET['quantity']." штук";
}


$to = "*****@*****";
//$to = "alloy05@mail.ru";
if(empty($_GET['mpn'])){
$_GET['mpn'] = "Партномер не определен";
}
$subject = "******: ".$_GET['name']." хочет купить товар с партномером ".$_GET['mpn'];
$message = "<html><body><strong>Желаемое количество</strong> $quantity;<br />
<strong>Ссылка на описание товара:</strong> <a href='http://*********/".$_SESSION['backLink']."'>".$_GET['mpn']."</a><br />
<strong>Имя покупателя:</strong> ".$_GET['name'].";<br />
<strong>Телефон:</strong> ".$_GET['phone'].";<br />
<strong>Почта:</strong> ".$_GET['email'].";<br />
<strong>Сопроводительный текст:</strong><br />
<i>".str_replace("\n","<br />",$_GET['com2ment'])."</i></body></html>";
$from = "****@*****";
$headers = "From: $from \r\n
Content-Type:text/html;charset=windows-1251";

//printf("%s<br/>%s<br/>%s<br/>%s<br/>",$to,$subject,$message,$headers);
mail($to,$subject,$message,$headers);
echo "Ваше письмо отправлено!";
?>
Благодарим за отправленный запрос. Оператор свяжется с вами в ближайшее время (В рабочие дни с 10 до 19).
Сейчас вы будете автоматически перемещены.
<script type="text/javascript">setTimeout("window.location='<?=$_SESSION['backLink']?>'",5000)</script>
<?php }else{
?>
<table width="30%" align="center">
<tr><td>
<form action="./buy.php" method="get">
<fieldset>
<legend>Контактная информация</legend>
Как к вам обращаться?*<br />
<input type="text" name="name" /><br />
Номер телефона:*<br />
<input type="text" name="phone" /><br />
Электронная почта:<br />
<input type="text" name="email" />
</fieldset>
<fieldset>
<legend>Дополнительная информация:</legend>
<label>Количество товара<br /><input type="text" value="1" name="quantity" size="3" /></label><br />
Коментарии:<br />
<textarea name="com2ment" rows="5" cols="40"></textarea>
</fieldset>
<input type="hidden" name="mpn" value="<?=$_GET['mpn']?>" />
<input type="submit" align="center" />
</form>
</td></tr>
</table>
<?php
}
?>

</body>
</html>

Мне не нужны всякие внешний сервисы. Надо простую капчу на цифрах. Что бы ввел цифры и нажать отправить.

[umka]
На сайте с 25.05.2008
Offline
456
#1

Вот тут посмотрите алгоритмы:

http://www.captcha.ru/captchas/

Лог в помощь!
Z
На сайте с 27.05.2011
Offline
0
#2
'[umka:
;9000490']Вот тут посмотрите алгоритмы:
http://www.captcha.ru/captchas/

Пробовал сделать, не выходит у меня. Добавить смог, а работоспособность ноль. Не выходит сделать с подтверждением.

LEOnidUKG
На сайте с 25.11.2006
Offline
1749
#3
zvnbadboy:
Пробовал сделать, не выходит у меня. Добавить смог, а работоспособность ноль. Не выходит сделать с подтверждением.

Ну так учитесь или же закажите установку. В чём проблема то?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Z
На сайте с 27.05.2011
Offline
0
#4

вот что вышло:


<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Покупка товара</title>
</head>
<body>
<?php

error_reporting (E_ALL);

include('/kcaptcha/kcaptcha.php');

if(isset($_GET['phone']) && isset($_GET['name'])){
$quantity = $_GET['quantity']." штук";
if($_GET['quantity']%10==1){
$quantity = $_GET['quantity']." штука";
}
if($_GET['quantity']%10>1 && $_GET['quantity']%10<5){
$quantity = $_GET['quantity']." штуки";
}
if($_GET['quantity']%100>10 && $_GET['quantity']%100<20){
$quantity = $_GET['quantity']." штук";
}

if(isset($_REQUEST[session_name()])){
session_start();
}

$captcha = new KCAPTCHA();

if($_REQUEST[session_name()]){
$_SESSION['captcha_keystring'] = $captcha->getKeyString();
}

$to = "****@*****";
//$to = "alloy05@mail.ru";
if(empty($_GET['mpn'])){
$_GET['mpn'] = "Партномер не определен";
}
$subject = "*****: ".$_GET['name']." хочет купить товар с партномером ".$_GET['mpn'];
$message = "<html><body><strong>Желаемое количество</strong> $quantity;<br />
<strong>Ссылка на описание товара:</strong> <a href='******/".$_SESSION['backLink']."'>".$_GET['mpn']."</a><br />
<strong>Имя покупателя:</strong> ".$_GET['name'].";<br />
<strong>Телефон:</strong> ".$_GET['phone'].";<br />
<strong>Почта:</strong> ".$_GET['email'].";<br />
<strong>Сопроводительный текст:</strong><br />
<i>".str_replace("\n","<br />",$_GET['com2ment'])."</i></body></html>";
$from = "****@*****";
$headers = "From: $from \r\n
Content-Type:text/html;charset=windows-1251";

//printf("%s<br/>%s<br/>%s<br/>%s<br/>",$to,$subject,$message,$headers);
mail($to,$subject,$message,$headers);
echo "Ваше письмо отправлено!";
?>
Благодарим за отправленный запрос. Оператор свяжется с вами в ближайшее время (В рабочие дни с 10 до 19).
Сейчас вы будете автоматически перемещены.
<script type="text/javascript">setTimeout("window.location='<?=$_SESSION['backLink']?>'",5000)</script>
<?php }else{
?>
<table width="30%" align="center">
<tr><td>
<form action="./buy.php" method="get">
<fieldset>
<legend>Контактная информация</legend>
Как к вам обращаться?*<br />
<input type="text" name="name" /><br />
Номер телефона:*<br />
<input type="text" name="phone" /><br />
Электронная почта:<br />
<input type="text" name="email" />
</fieldset>
<fieldset>
<legend>Дополнительная информация:</legend>
<label>Количество товара<br /><input type="text" value="1" name="quantity" size="3" /></label><br />
Коментарии:<br />
<textarea name="com2ment" rows="5" cols="40"></textarea>
</fieldset>
<input type="hidden" name="mpn" value="<?=$_GET['mpn']?>" />
<p>Введите текст с картинки:</p>
<p><img src="./?<?php echo session_name()?>=<?php echo session_id()?>"></p>
<p><input type="text" name="keystring"></p>
<input type="submit" align="center"/>
</form>
<?php
if(count($_POST)>0){
if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
echo "Correct";
}else{
echo "Wrong";
}
}
unset($_SESSION['captcha_keystring']);
?>
</td></tr>
</table>
<?php
}
?>

</body>
</html>

картинка не появляется.

LEOnidUKG
На сайте с 25.11.2006
Offline
1749
#5

так откройте картинку и посмотрите какую ошибка она выдаёт.

Z
На сайте с 27.05.2011
Offline
0
#6
LEOnidUKG:
так откройте картинку и посмотрите какую ошибка она выдаёт.

Вот картинка

<img src="./?PHPSESSID=17630e84d2020625c24baf1e5ed8317f">
ParserYa
На сайте с 04.10.2010
Offline
29
#7
zvnbadboy:
<img src="./?PHPSESSID=17630e84d2020625c24baf1e5ed8317f">

Проверяйте адрес просто.. скорее всего картинку не от туда забираете.

Кстати в этой каптче, которую ставите, есть бага - она в хроме не работает. Там суть в том, что в скрипте, который генерит картинку создается сессия, и в нее пишутся нужные цифры. Дак вот при просмотре страницы в хроме(не разобрался почему только он) генерируется новое число и кладется в сессию. Оно отличается от того, которое в данный момент изображено на картинке. Поэтому потом, когда идет валидация каптчи, результат получается отрицательный.

Я существенно хачил этот класс, и теперь у меня картинки сохраняются на севере(ну и крон их чистит).

Поэтому, мой совет, ТС, если не очень разбираетесь в ПХП, либо ставьте другую каптчу(не с сайта captcha.ru), либо заказывайте ее установку у того, кто разбирается.

Z
На сайте с 27.05.2011
Offline
0
#8

Какую капчу посоветуете? вообще нужна самая простая.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий