Установка captсha

Тема в разделе "PHP", создана пользователем pronax, 28 янв 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. pronax

    pronax Постоялец

    Регистр.:
    21 сен 2008
    Сообщения:
    146
    Симпатии:
    10
    Нащёл интересную капчу, но она для ВордПреса... может можно как-нить его прикрутить?! ниже привожу саму капчу и то куда хочу интегрировать:
    мой файл:
    Код:
    <?php session_start(); ?>
    <form method="post" action="<?=MOD_REWRITE?'pupload/':'public.php'?>" enctype="multipart/form-data" id="upload_form" onsubmit="if(!fileSelected){alert('You did not select any file.');return false;}getObj('upload_button').disabled=true;return true;" >
      <input type="hidden" name="action" value="upload" />
      <div class="rounded green">
    <table cellspacing="1" cellpadding="3" style="line-height:1.5em;">
                <tr>
                    <td style="width:100px;">Currently hosting:</td>
                    <td><?=number_format($files_count)?> files. <a href="<?=$browse_url?>" class="special">See all uploaded images</a></td>
                </tr>
                <tr>
                    <td>Select files:</td>
                    <td><span id="fileSelect"></span>&nbsp; <input type="submit" id="upload_button" value="Upload" /></td>
                    </tr>
                <tr>
                    <td>Captcha </td>
                    <td><img id="captcha" src="/cap/securimage_show.php" alt="CAPTCHA Image" />
                    <a href="#" onclick="document.getElementById('captcha').src = '/cap/securimage_show.php?' + Math.random(); return false">Reload Image</a></p>
    <p><input type="text" name="name" size="10" maxlength="6" value="<?php echo @$_POST['code']; ?>" />
    <input type="submit" value="Submit Form" />
    </p>
    <p></p>
    </td>
                </tr>
                <tr>
                    <td>File restrictions:</td>
                    <td><?=get_size($settings['max_file_size'],'KB',0)?> - <?=$settings['images_only']?'Images only':($settings['allowed_filetypes']=='ANY'?'All file types allowed.':str_replace(',', ', ',$settings['allowed_filetypes']))?></td>
                </tr>
                <?php if ( $settings['allow_thumbnails'] ) : ?>
                <tr>
                    <td>Thumbnail size:</td>
                    <td>
                        <input type="radio" name="upload[thumbnail_size]" value="no_thumbnail" class="radio" id="thumbnail_size_none" />
                        <label for="thumbnail_size_none">No thumbnails</label>&nbsp;&nbsp;
    
                        <input type="radio" name="upload[thumbnail_size]" value="small" class="radio" id="thumbnail_size_small" checked="checked" />
                        <label for="thumbnail_size_small">Small (<?=$settings['thumb_small']?>)</label>&nbsp;&nbsp;
    
                        <input type="radio" name="upload[thumbnail_size]" value="large" class="radio" id="thumbnail_size_large" />
                        <label for="thumbnail_size_large">Large (<?=$settings['thumb_large']?>)</label>
                    </td>
                </tr>
                <?php endif; ?>
            </table>
        </div>
        <ul id="selectedFiles"><!-- do not edit in here unless you know what you're doing --></ul>
        <p id="fileSelectedStatus" style="margin-top:5px;background-color:#f0f0f0;padding:5px 5px 5px 8px;-moz-border-radius:5px;">
            No files selected. Click on Browse to add files. You can add more than one file.
        </p>
        <input type="submit" id="submit_button" style="display:none;" />
    </form>
    <script type="text/javascript" src="templates/default2/advupload.js"></script> 
    сама капча:
    Код:
    <?php
    
    add_action('comment_post', "comment_post");
    add_action('comment_form', "dcaptcha_draw");
    
    function comment_post ($id){
    	global $user_ID;
    
    	if ($user_ID){
    		return $id;
    	}
    
    	if ($_POST['dcaptcha_sess'] != '1'){
    		wp_set_comment_status($id, 'delete');
    		echo "wrong captcha. no spam, please.";
    		exit;
    	}
    }
    
    function dcaptcha_draw ($id){
    	global $user_ID;
    
    	if ($user_ID){
    		return $id;
    	}
    
    	?>
    	<style>
    	.dcaptcha_red{
    		display: inline-block;
    		font-family: arial;
    		font-size: 12px;
    		color: #AA0000;
    		padding: 5px;
    		background: #AA0000;
    	}
    
    	.dcaptcha_yellow{
    		display: inline-block;
    		font-family: arial;
    		font-size: 12px;
    		color: #AA0000;
    		padding: 5px;
    		background: #FFFFFF;
    	}
    	</style>
    
    	<script language="javascript">
    	function dcaptcha_change(){
    		if (document.getElementById('dcaptcha_captcha1').className == "dcaptcha_yellow"){
    			document.getElementById('dcaptcha_captcha1').className = "dcaptcha_red";
    			document.getElementById('dcaptcha_sess').value = 0;
    		}
    		else{
    			document.getElementById('dcaptcha_captcha1').className = "dcaptcha_yellow";
    			document.getElementById('dcaptcha_sess').value = 1;
    		}
    	}
    
    	</script>
    
    	<div id="dcaptcha"><p>
    
    		<input type="checkbox" class="dcaptcha_red" id="dcaptcha_captcha1" onclick="dcaptcha_change();" value="Я - человек!">
    		Я не робот.<br>
    	</div>
    	<input type="hidden" name="dcaptcha_sess" id="dcaptcha_sess" value="0">
    
    	<script>
    	var commentField = document.getElementById("url");
        var submitp = commentField.parentNode;
        var answerDiv = document.getElementById("dcaptcha");	    
        submitp.appendChild(answerDiv, commentField);
    </script>
    	<?php
    }
    ?>
    или же, как прикрутить любую другую капчу к моему файлу?! у меня проверку он не делает... немогу понять почему
    если верхнюю нельзя, то может вот эту?!
    http://www.phpcaptcha.org/documentation/quickstart/

    PS у меня в коде стоит капча, но она не работает.... проверку на правельность не делает :(
     
  2. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    190
    не увидел я где там капча...
    вот устанавливается легко:
    http://rapidshare.com/files/189572313/CaptchaCreator.zip
     
  3. pronax

    pronax Постоялец

    Регистр.:
    21 сен 2008
    Сообщения:
    146
    Симпатии:
    10
    alexz15 у меня даже картинку не показывает.... :(
    там капча... тупо надо галочку нажать... типо проверки на робота :)
     
  4. Paziy

    Paziy Писатель

    Регистр.:
    26 янв 2009
    Сообщения:
    7
    Симпатии:
    0
    Дай пожалуйста ссылку в приват, а то я уже 8е сообщение на форуме пишу, а мне говорит тут что минимум 2 месаджа надо чтоб ссылку твою увидеть.
     
  5. FractalizeR

    FractalizeR Создатель

    Регистр.:
    5 июн 2008
    Сообщения:
    24
    Симпатии:
    8
    recaptcha.net - зачем что-то искать, когда уже все есть?
     
  6. SashaBorandi

    SashaBorandi Создатель

    Регистр.:
    19 окт 2007
    Сообщения:
    20
    Симпатии:
    1
    Могу поделиться своей капчей...

    captcha.php
    Код:
    <?php
    
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Content-type: image/png");
    
    if (!isset($_SESSION)) session_start();
    
    $img = imagecreatetruecolor(85, 40) or die('Cannot create image');
    imagefill($img, 0, 0, 0xffffff);
    
    $i = 1;
    $captcha_string = '';
    $font = 'font/tahoma.ttf';
    $font_size = 12; // размер шрифта в пикселях
    $angle = 30; // угол поворота текста
    $x_pos = 3;
    $y_pos = 22;
    
    while ($i++ <= 5) {
    	imagettftext($img, $font_size, rand(-$angle, $angle), $x_pos, $y_pos + rand(0,10),
    	imagecolorallocate($img, rand(0,128), rand(0,128), rand(0,128)),
    	$font, $rnd = rand(0,9));
    	$x_pos = $x_pos + 17;
    	$captcha_string = $captcha_string.(string)$rnd;
    };
    
    $_SESSION['captcha'] = $captcha_string;
    
    imagepng($img);
    imagedestroy($img);
    
    ?>
    
    А так проверяем..
    Код:
    $captcha_check = false;
    	if (!isset($_SESSION)) session_start();
    	if (isset($_POST['captcha'])) {
    		if (isset($_SESSION['captcha'])) {
    			if ($_POST['captcha']) {
    				if ($_POST['captcha']==$_SESSION['captcha']) {
    					$captcha_check = true;
    					unset($_SESSION['captcha']);
    				};
    			};
    		};
    	};
    
    Ну а дальше по тексту... ))
     
    Paziy нравится это.
  7. 1coin

    1coin Писатель

    Регистр.:
    1 окт 2007
    Сообщения:
    9
    Симпатии:
    3
    В свой блог я предпочел интегрировать трехмерную капчу, дабы все эти гениальные линк спамеры пошли **х раз и навсегда :)
    Отличная вещь: http://code.google.com/p/3dcaptcha/
    И каждый под себя может переделать цвет и т.п. :)
     
    udalov, Paziy и alexz15 нравится это.
  8. unnuller

    unnuller Создатель

    Регистр.:
    24 янв 2009
    Сообщения:
    18
    Симпатии:
    0
  9. Ламо

    Ламо Писатель

    Регистр.:
    9 фев 2009
    Сообщения:
    8
    Симпатии:
    0
    http://www.captcha.ru/ - качаем архив
    делаем рисунок:
    Код:
    <img src='captcha/index.php'>
    И всё.
     
  10. SiMM

    SiMM Создатель

    Регистр.:
    8 фев 2009
    Сообщения:
    41
    Симпатии:
    6
    Для тех, кому критичен посторонний трафик (например, если ресурс доступен с инета и с сети провайдера, а пользователи жмутся на любой внешний трафик) - это решение не подходит.
     
Статус темы:
Закрыта.