photomuza
Вот больше 4-х лет проработал и открыл для себя Америку, что в папке cgi-bin РНР не работает.
![smail101.gif](/template/images/smiles/smail101.gif)
Надо прикрутить капчу к странице member_add.htm на топлисте DF™ TopList Lite.
Мне пока не приходит на ум больше чем вынести страницу вне cgi-bin. Что прописать в таком случае в .htaccess?
Кто знает выход чтоб оставить страницу там же, но чтоб РНР работал?
Corex
Сделать можно, но лучше с этим не связываться, т.к. скорее всего потребуется переустановка php как cgi, настройка, изменение конфигов, а также последующие ограничения и возможные проблемы с безопасностью.
Капча наверняка вставляется через <img src="captcha.php", поэтому можно вынести скрипт куда-нить в public_html или глубже и прописать в src путь до него.
Pentarh
Я не уверен на 100%, но по моему это можно все таки обойти.
метод 1. убрать с пхпшников права на запуск (chmod 644 поставить)
метод 2. убрать ScriptAlias с cgi-bin вообще, вместо этого поставить тудой Options +ExecCGI и прописать нужные CGI хандлеры.
adultboss
А вы вкурсе что php интерпретатор по умолчанию не обрабатывает php код в html файлах?
Чтобы обрабатывал в .htaccess пропишите следующее:
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
photomuza
adultboss писал:
А вы вкурсе что php интерпретатор по умолчанию не обрабатывает php код в html файлах?
Чтобы обрабатывал в .htaccess пропишите следующее:
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
Спасибо, в курсе, использую приведенный код в .htaccess постоянно.
Corex писал:
Капча наверняка вставляется через <img src="captcha.php", поэтому можно вынести скрипт куда-нить в public_html или глубже и прописать в src путь до него.
Картинку вставить несложно: правой кнопкой по капче откуда хочешь брать (Copy) и вставляешь <img src=" - Paste. Но при этом сессия не будет отрабатываться, т.е. защиты нет. Потому как в странице HTML перед формой для ввода и кнопкой SUBMIT должен стоять РНР код, который шифрует сессию и формирует защитный код, который надо ввести на данной странице в данной сессии.
Код:
<?php
include('kcaptcha/kcaptcha.php');
session_start();
require_once("config.php");
if ($_POST['act']== "y")
{
if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring'])
{
if (isset($_POST['posName']) && $_POST['posName'] == "")
{
$statusError = "$errors_name";
}
elseif (isset($_POST['posEmail']) && $_POST['posEmail'] == "")
{
$statusError = "$errors_mailfrom";
}
elseif(isset($_POST['posEmail']) && !preg_match("/^([a-z,._,0-9])+@([a-z,._,0-9])+(.([a-z])+)+$/", $_POST['posEmail']))
{
$statusError = "$errors_incorrect";
unset($_POST['posEmail']);
}
elseif (isset($_POST['posRegard']) && $_POST['posRegard'] == "")
{
$statusError = "$errors_subject";
}
elseif (isset($_POST['posText']) && $_POST['posText'] == "")
{
$statusError = "$errors_message";
}
elseif (!empty($_POST))
{
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: $content charset=$charset\r\n";
$headers .= "Date: ".date("Y-m-d (H:i:s)",time())."\r\n";
$headers .= "From: \"".$_POST['posName']."\" <".$_POST['posEmail'].">\r\n";
$headers .= "X-Mailer: My Send E-mail\r\n";
mail("$mailto","$subject","$message","$headers");
unset($name, $posText, $mailto, $subject, $posRegard, $message);
$statusSuccess = "$send";
}
}else{
$statusError = "$captcha_error";
unset($_SESSION['captcha_keystring']);
}
}
?>
В общем пока не решил вопрос, правда не так и важен.
Откуда скачал не нашел, загрузил к себе, кому надо берите (есть настройки) -
http://ohohoh.info/php/captca/captca.zip
Выглядит так -
http://ohohoh.info/php/captca/