Перейти к содержимому



Помогите, не работает капча на сайте

#1 Xristofor

Xristofor
  • Пользователь
  • 0 сообщений
  • Репутация: 0
0

Отправлено 07 Январь 2018 - 12:25

не работает капча на сайта
вот код
 

<?PHP

if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }
?>

<BR /><BR /><BR /><BR /><BR />

                <div class="container">

<?PHP
	
	# Регистрация

	if(isset($_POST["login"])){
	
	if(isset($_SESSION["captcha"]) AND strtolower($_SESSION["captcha"]) == strtolower($_POST["captcha"])){
	unset($_SESSION["captcha"]);

	$login = $func->IsLogin($_POST["login"]);
	$password = $func->IsPassword($_POST["password"]);
	$rules = isset($_POST["rules"]) ? true : false;
	$time = time();
	$ip = $func->UserIP;
	
	$email = $func->IsMail($_POST["email"]);
	$referer_id = (isset($_COOKIE["i"]) AND intval($_COOKIE["i"]) > 0 AND intval($_COOKIE["i"]) < 1000000) ? intval($_COOKIE["i"]) : 1;
	$referer_name = "";
	if($referer_id != 1){
		$db->Query("SELECT login FROM db_users WHERE id = '$referer_id' LIMIT 1");
		if($db->NumRows() > 0){$referer_name = $db->FetchRow();}
		else{ $referer_id = 1; $referer_name = "demo"; }
	}else{ $referer_id = 1; $referer_name = "demo"; }
	
		if($rules){

			if($email !== false){
		
			if($login !== false){
			
				if($password !== false){
			
					if($password == $_POST["repassword"]){
						
						$db->Query("SELECT COUNT(*) FROM db_users WHERE login = '$login'");
						if($db->FetchRow() == 0){
						
						# Регаем пользователя
						$db->Query("INSERT INTO db_users (login, email, password, referer, referer_id, date_reg, ip) 
						VALUES ('$login','{$email}','$password','$referer_name','$referer_id','$time',INET_ATON('$ip'))");
						
						$lid = $db->LastInsert();
						
						$db->Query("INSERT INTO db_users_ref (id, login) VALUES ('$lid','$login')");
						
						# Вставляем статистику
						$db->Query("UPDATE db_stats SET all_users = all_users +1 WHERE id = '1'");
						
						echo "<center><b>Вы успешно зарегистрировались. Используйте форму для входа в аккаунт.</b></center><BR />";
						?>
						
						<?PHP
						return;
						}else echo "<center><b>Указанный логин уже используется.</b></center><BR />";
						
					}else echo "<center><b>Пароль и повтор пароля не совпадают.</b></center><BR />";
			
				}else echo "<center><b>Пароль заполнен неверно.</b></center><BR />";
			
			}else echo "<center><b>Логин заполнен неверно.</b></center><BR />";

		}else echo "<center><b>Email имеет неверный формат.</b></center>";

		}else echo "<center><b>Вы не подтвердили правила.</b></center><BR />";
	
		}else echo "<center><b>Символы с картинки введены неверно</b>.</center>";

	}
	
	
?>
				
				<div class="col-md-3">
                </div>
				
					<div class="col-md-6">

									<form method="post" id="registration">
									    <p>
											<label>Ваш псевдоним:</label>
											<span class="required">*</span>
											<input class="form-control" name="login" type="text" value="<?=(isset($_POST["login"])) ? $_POST["login"] : false; ?>"/>
										</p>
										<p>
											<label>E-Mail:</label>
											<span class="required">*</span>
											<input class="form-control" name="email" type="text" value="<?=(isset($_POST["email"])) ? $_POST["email"] : false; ?>"/>
										</p>
										<p>
											<label>Пароль:</label>
											<input class="form-control" name="password" type="password" />
										</p>
										<p>
											<label>Пароль еще раз:</label>
											<input class="form-control" name="repassword" type="password" />
										</p>
										<p>
											<label>Введите символы с картинки:</label>
											<a href="#" onclick="ResetCaptcha(this);"><img send src="/captcha.php?rnd=<?=rand(1,10000); ?>"/></a>
											<BR />
											<input class="form-control" name="captcha" type="text" />
										</p>
										<p>
											<BR />
                                         С <a href="/rules" target="_blank">правилами</a> проекта ознакомлен(а) и принимаю: <input name="rules" type="checkbox" />
                                            <BR />
										</p>
										<br />
										<p>
											<a class="btn btn-blue btn-effect" href="javascript:with(document.getElementById('registration')){ submit(); }">Зарегистрироватья</a>
										</p>
									</form>
					</div>
					
					<div class="col-md-3">
                    </div>
					
                </div> 

и код самой капчи
 

<?php
$width = 150;        // Ширина изображения
$height = 50;        // Высота изображения
$sign = 5;            // Длина кода
$img_code = '';

session_start();

// Символы, которые будут использованы в защитном коде
$letters = array('A','B','C','D','E','F','G','H','J','K','M','N',
                 'P','Q','R','S','T','U','V','W','X','Y','Z',
                 '0','1','2','3','4','5','6','7','8','9');
// Компоненты, используемые при создании для RGB-цвета
$digital_data = array(44,66,88,111,133,155,177,199);

$img = imagecreatetruecolor($width, $height);
$fon = imagecolorallocate($img, 255, 255, 255);    // Белый фон изображения
imagefill($img, 0, 0, $fon);

$letter_Width = intval((0.9*$width)/$sign);    // Ширина, отводимая под один символ

for($j=0; $j<$width; $j++) {                // Заливка фона случайными точками
   for($i=0; $i<($height*$width)/600; $i++) {
     // Генерируем случайный цвет
     $color = imagecolorallocatealpha($img,
              $digital_data[rand(0,count($digital_data)-1)],
              $digital_data[rand(0,count($digital_data)-1)],
              $digital_data[rand(0,count($digital_data)-1)],
              rand(10,30));
     // Выводим случайную точку
     imagesetpixel($img, rand(0,$width), rand(0,$height), $color);
   }
}

for($i=0; $i<$sign; $i++) {                        // Накладываем защитный код
   $color = imagecolorallocatealpha($img,
            $digital_data[rand(0,count($digital_data)-1)],
            $digital_data[rand(0,count($digital_data)-1)],
            $digital_data[rand(0,count($digital_data)-1)],
            rand(10,30));

   $letter = $letters[rand(0,sizeof($letters)-1)]; // Генерируем случайный символ

   // Координаты вывода символа
   if(empty($x)) { $x = intval($letter_Width*0.2); }
   else {
     if(rand(0,1))  $x = $x + $letter_Width + rand(0, intval($letter_Width*0.1));
     else $x = $x + $letter_Width - rand(0, intval($letter_Width*0.1));
   }
   $y = rand( intval($height*0.7), intval($height*0.8) );

   $size = rand(intval(0.4*$height), intval(0.5*$height));
   $angle = rand(0, 50) - 25;                    // Задаем угол поворота символа
   $img_code .= $letter;
   // Выводим сгенерированный символ на изображение
   imagettftext($img, $size, $angle, $x, $y, $color, "image/arialbd.ttf", $letter);
}
$_SESSION["img_code"] = $img_code;

header("Content-type: image/jpeg");
imagejpeg($img);
?>

помогите плиз. или починить или вообще убрать капчу


 

 

Сообщение отредактировал BLIK: 07 Январь 2018 - 14:01
удалил битый url

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Капча плагинов и MySQL
  2. Как капчу занести в функцию. Требуется помощь
  3. Капча в браузере
  4. Спам через форму обратной связи на сайте
  5. Не отображается reCAPTCHA в форме com_contacts

#2 Nikita9889

Nikita9889
  • Пользователь
  • 4 сообщений
  • Репутация: 0

Отправлено 10 Январь 2018 - 20:37

сейчас на многих сайтах , даже популярных  существует такая проблема , пускай капча будет заключаться в воде цифр обычного шрифта


  • 0

#3 WebJunior

WebJunior
  • Пользователь
  • 60 сообщений
  • Репутация: 8

Отправлено 10 Январь 2018 - 20:44

не работает капча на сайта

 

Исчерпывающая информация) Как именно не работает? Вводишь в инпут код, отправляешь на сервер, а скрипт говорит, что код неверный хоть и введён правильно? Так? 


  • 0


Оформление форума – IPBSkins.ru