Перейти к публикации

Рекомендованные сообщения

Cap, спасибо за тестинг, действительно был такой баг, уже исправленно.

<{POST_SNAPBACK}>

А может т ы все таки доработаешь код Незнакомца! Только чтобы работоло а вот оформление кода не трогать =) please...

Ссылка на сообщение
Поделиться на других сайтах

Cap, код работает.

Он же файлы кидал, попробуй установить.

Что не работает, что пишет, браузер, ОС, апач, гд библиотека есть ?

Ссылка на сообщение
Поделиться на других сайтах

Короче траблы причём большие =(

При самом начали регистрации все ОТЛИЧНО следующий шаг же выдает вот такую ошибку

Warning: Missing argument 5 for check_reg() in z:\home\dle\2.5\engine\modules\register.php on line 25 Warning: Missing argument 6 for check_reg() in z:\home\dle\2.5\engine\modules\register.php on line 25
ладно после чего сохраняем данные и жмём еще далее опять ошибка но теперь только ошибка и белый экран смерти
Fatal error: Call to undefined function: replace_comment() in z:\home\dle\2.5\engine\modules\register.php on line 189

PLEASE help =( Задумка очень классная и классно выглядит =)

<{POST_SNAPBACK}>

Эта функция была убрана из версии 2.5

<{POST_SNAPBACK}>

Читай!

Ссылка на сообщение
Поделиться на других сайтах

Cap, код работает.

Он же файлы кидал, попробуй установить.

Что не работает, что пишет, браузер, ОС, апач, гд библиотека есть ?

И так я код поправил как надо =) Но не до конца выдает вот такую ошибку

Warning: Missing argument 5 for check_reg() in l:\home\dle\2.5m\engine\modules\register.php on line 29 Warning: Missing argument 6 for check_reg() in l:\home\dle\2.5m\engine\modules\register.php on line 29
А вот код register.php
<?php

/*

=====================================================

 DataLife Engine - by SoftNews Media Group 

-----------------------------------------------------

 http://www.pc-soft.ru/

-----------------------------------------------------

 Copyright (c) 2004,2005 SoftNews Media Group

=====================================================

 Данный код защищен авторскими правами

=====================================================

 Файл: register.php

-----------------------------------------------------

 Назначение: регистрация посетителя

=====================================================

*/


if(!defined('DATALIFEENGINE'))

{

  die("Hacking attempt!");

}


include("$dl_path/inc/parse.class.php");


$parse = new ParseFilter();


if (isset ($_REQUEST['doaction'])) $doaction = $_REQUEST['doaction']; else $doaction = "";


function check_reg ($name, $email, $password1, $password2, $reg_forms, $reg_sessions) {

	global $lang, $db;

	$stop = "";


	if ($password1!=$password2)

	{


			$stop .= $lang['reg_err_1'];

	}


	if ((strlen($password1)<6 || strlen($password1) >20)and(strlen($password2)<6 || strlen($password2) >20))

	{


			$stop .= $lang['reg_err_2'];

	}

	if (strlen($name) > 20)

	{


			$stop .= $lang['reg_err_3'];

	}

	if (preg_match("/[\||\'|\"|\!]/",$name))

	{


			$stop .= $lang['reg_err_4'];

	}


	if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/",$password1))

	{


			$stop .= $lang['reg_err_5'];

	}


	if ((!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email))or(empty($email)))

	{


			$stop .= $lang['reg_err_6'];

	}


			if ($reg_forms!=$reg_sessions)

	{


			$stop .= $lang['reg_err_19'];

	}


	if (empty($name))

	{


			$stop .= $lang['reg_err_7'];

	}

	if (!$stop)

	{

		$dupe_email = $db->query ("SELECT * FROM " . PREFIX . "_users where email = '$email' OR name ='$name'");


		if ($db->num_rows($dupe_email)>0)

		{

			$stop .= $lang['reg_err_8'];

		}

	}

return $stop;

}



$stopregistration = FALSE;


$row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_users");


 if ($config_allow_registration != "yes") 

 { 


	msgbox ($lang['all_info'], $lang['reg_err_9']); 

	$stopregistration = TRUE;


 } elseif ($config_max_users > 0 AND $row['count'] > $config_max_users)

 { 


	msgbox ($lang['all_info'], $lang['reg_err_10']); 

	$stopregistration = TRUE;


}



if (isset($_POST['submit_reg']))

{

session_start();

session_name('regcode');


$password1 = $parse->safeSQL($parse->process($_POST['password1']));

$password2 = $parse->safeSQL($parse->process($_POST['password2']));

$name = $parse->safeSQL($parse->process($_POST['name']));

$email = $parse->safeSQL($parse->process($_POST['email']));


$reg_forms = trim($_POST['reg_form']);

$reg_sessions = trim($_SESSION['reg_session']);


$reg_error = check_reg ($name, $email, $password1, $password2, $reg_forms, $reg_sessions);


if (!$reg_error) {


if ($config_registration_type) {


 $row = $db->super_query("SELECT template FROM " . PREFIX . "_email where name='reg_mail' LIMIT 0,1");


 $row['template'] = stripslashes($row['template']);


 $idlink = urlencode(base64_encode ($name."||".$email."||".$password1));


 $vallink = $config_http_home_url."index.php?do=register&doaction=validating&id=".$idlink;


 $row['template'] = str_replace("{%username%}",$name, $row['template']);

 $row['template'] = str_replace("{%validationlink%}",$vallink, $row['template']);


		  $var['subj'] = $lang['reg_subj'];

		  $var['header']  = "From: ".$config_admin_mail."\r\n";

		  $var['header'] .= "MIME-Version: 1.0\r\n";

		  $var['header'] .= "Content-Transfer-Encoding: 8bit\r\n";

		  $var['header'] .= "Content-Type: text/plain; charset=\"Windows-1251\"\r\n";

		  $var['header'] .= "X-Mailer: PHP v.".phpversion();


  @mail($name." <".$email.">",$var['subj'],$row['template'],$var['header']);


msgbox ($lang['reg_vhead'], $lang['reg_vtext']);

$stopregistration = TRUE;


} else {


 $idlink = urlencode(base64_encode ($name."||".$email."||".$password1));

 $vallink = $config_http_home_url."index.php?do=register&doaction=validating&id=".$idlink;

 $doaction = "validating";

 $_GET['id'] = $idlink;

		}


} else msgbox ($lang['reg_err_11'], $reg_error);




}




if ($doaction != "validating" AND !$stopregistration) {


	$tpl->load_template('registration.tpl');


	$tpl->set('{reg_code}',"<img src=\"${config_http_script_dir}modules\antibot.php\" border=\"0\">");


		$tpl->set('[registration]',"");

		$tpl->set('[/registration]',"");

		$tpl->set_block("'\\[validation\\].*?\\[/validation\\]'si","");


$tpl->copy_template = "<form  method=\"post\" name=\"registration\" id=\"registration\" action=\"\">\n".$tpl->copy_template."

<input name=\"submit_reg\" type=\"hidden\" id=\"submit_reg\" value=\"submit_reg\">

</form>";

$tpl->compile('content');

$tpl->clear();

}


if (isset($_POST['submit_val']))

{


	$fullname = $parse->safeSQL($parse->process($_POST['fullname']));

	$land = $parse->safeSQL($parse->process($_POST['land']));

	$icq = $parse->safeSQL($parse->process($_POST['icq']));

	$info = $parse->safeSQL($parse->BB_Parse($parse->process($_POST['info']), false));


		$image = $_FILES['image']['tmp_name'];

		$image_name = $_FILES['image']['name'];

   		$image_size = $_FILES['image']['size'];

		$image_name  = str_replace(" ", "_", $image_name);

		$img_name_arr = explode(".",$image_name);

		$type		 = end($img_name_arr);


$user_arr = explode ("||", base64_decode(urldecode($_GET['id'])));

$user = trim(mysql_escape_string($user_arr[0]));


$row = $db->super_query("SELECT * FROM " . PREFIX . "_users where name = '$user'");


if (is_uploaded_file($image)) {


		if ($image_size < 100000) {


$allowed_extensions = array("jpg", "png", "jpe", "jpeg");


if ((in_array($type, $allowed_extensions) or in_array(strtolower($type), $allowed_extensions)) and $image_name) {


include_once $dl_path.'/inc/makethumb.php';


$res = @move_uploaded_file($image, $root_path."/uploads/fotos/".$row['user_id'].".".$type);


if ($res) {


$thumb=new thumbnail($root_path."/uploads/fotos/".$row['user_id'].".".$type);

$thumb->size_auto($config_max_foto);	

$thumb->jpeg_quality($config_jpeg_quality);

$thumb->save($root_path."/uploads/fotos/foto_".$row['user_id'].".".$type);


@unlink ($root_path."/uploads/fotos/".$row['user_id'].".".$type);

$foto_name = "foto_".$row['user_id'].".".$type;


$db->query("UPDATE " . PREFIX . "_users set foto='$foto_name' where name='$user'");

} else $stop = $lang['reg_err_12'];

} else $stop = $lang['reg_err_13'];

} else $stop = $lang['news_err_16'];


}


	if (strlen($info) > 500)

	{


			$stop .= $lang['reg_err_14'];

	}

	if (strlen($fullname) > 100)

	{


			$stop .= $lang['reg_err_15'];

	}

	if (strlen($land) > 100)

	{


			$stop .= $lang['reg_err_16'];

	}

	if (strlen($icq) > 20)

	{


			$stop .= $lang['reg_err_17'];

	}


if ($stop){ msgbox ($lang['reg_err_18'], $stop);}


else {


$db->query("UPDATE " . PREFIX . "_users set fullname='$fullname', info='$info', land='$land', icq='$icq' where name='$user'");


msgbox ($lang['reg_ok'], $lang['reg_ok_1']);


$stopregistration = TRUE;

	}

}



if ($doaction == "validating" AND !$stopregistration AND !$_POST['submit_val']) {


$user_arr = explode ("||", base64_decode(urldecode($_GET['id'])));


$password1 = $parse->safeSQL($parse->process($user_arr[2]));

$name = trim($parse->safeSQL($parse->process($user_arr[0])));

$email = trim($parse->safeSQL($parse->process($user_arr[1])));


$reg_error = check_reg ($name, $email, $password1, $password1);

if (!$reg_error) {


$add_time = time()+($config_date_adjust*60);


$regpassword = md5($password1);

$db->query("INSERT INTO " . PREFIX . "_users (name, password, email, reg_date, lastdate) values ('$name', '$regpassword', '$email', '$add_time', '$add_time')");


} else {msgbox ($lang['reg_err_11'], $reg_error); $stopregistration = TRUE;}


}


if ($doaction == "validating" AND !$stopregistration) {

	$tpl->load_template('registration.tpl');


		$tpl->set('[validation]',"");

		$tpl->set('[/validation]',"");

		$tpl->set_block("'\\[registration\\].*?\\[/registration\\]'si","");


$tpl->copy_template = "<form  method=\"post\" name=\"registration\" enctype=\"multipart/form-data\" action=\"".$vallink."\">\n".$tpl->copy_template."

<input name=\"submit_val\" type=\"hidden\" id=\"submit_val\" value=\"submit_val\">

</form>";

$tpl->compile('content');

$tpl->clear();

}



?>

PLEASE кто-нибудь исправти =)

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...
  • 2 недели спустя...
  • 2 недели спустя...

У меня не отображается код безопасности на странице регистрации. Пробовал IE зайти на antibot.php говорит <br />

<b>Fatal error</b>: Call to undefined function: imagepng() in <b>/home/www/free/мой сайт/engine/modules/antibot.php</b> on line <b>65</b><br />

не знаю, что в этом imagepng($im); может быть не так? Может подскажите, плз :unsure:

Изменено пользователем shura1224
Ссылка на сообщение
Поделиться на других сайтах

На форуме хоста админа вроде спрашивают есть вооще или нет, (я в Румынском и со словарём хреновастенько :( ) он вроде говорит GD2... GD Library is enabled

array(12) { ["GD Version"]=> string(13) "2.0 or higher" ["FreeType Support"]=> bool(true) ["FreeType Linkage"]=> string(13) "with freetype" ["T1Lib Support"]=> bool(false) ["GIF Read Support"]=> bool(true) ["GIF Create Support"]=> bool(true) ["JPG Support"]=> bool(true) ["PNG Support"]=> bool(false) ["WBMP Support"]=> bool(true) ["XPM Support"]=> bool(false) ["XBM Support"]=> bool(false) ["JIS-mapped Japanese Font Support"]=> bool(false) }

Я вооще-то чайник, но мне кажется, что png не поддерживает.

Изменено пользователем shura1224
Ссылка на сообщение
Поделиться на других сайтах

В админке у меня написано Версия GD 0. На форуме у них румын тоже задавал такой вопрос - не отображается код безопасности, ему ответили, что на сервере стоит php5 с поддержкой GD2 и в кач-ве доказательства привели то что я выше постом указал. Короче, он потом пишет что был неправильно указан путь и теперь мол всё ОК, и приводит такой код:

<br />

<b>Warning</b>: imagettfbbox() [<a

href='function.imagettfbbox'>function.imagettfbbox</a>]: Could not find/open

font in <b>/home/www/free/uv.ro/myc.uv.ro/forum/sources/functions.php</b> on

line <b>553</b><br />

<br />

<b>Warning</b>: imagettftext() [<a

href='function.imagettftext'>function.imagettftext</a>]: Could not find/open

font in <b>/home/www/free/uv.ro/myc.uv.ro/forum/sources/functions.php</b> on

line <b>559</b><br />

Ну не буду надоедать, спасибо, для меня в общем-то не столь критично, буду лучше матчасть учить. Спасибо!

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

вот, сделано на основе капчи отсюда => www.captcha.ru

http://clubclose.ru/kcaptcha/

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

·• Greeze •·, сейчас поправлю antibot.php

значит так, если хочешь такую штуку следуй за белым кроликом инструкциям:

1. удаляем все файлы из папки engine/modules/fonts

добавляем туда файл http://clubclose.ru/kcaptcha/fonts/antiqua.png

2. открываем файл engine/modules/antibot.php

вместо

var $alphabet = "0123456789abcdefghijklmnopqrstuvwxyz";
пишем
$alphabet = "0123456789+=";
вместо
var $allowed_symbols = "023456789";
пишем
var $allowed_symbols = "0123456789+=";
ниже
var $keystring = '';
добавляем
var $answer = '';
вместо
	// Генерация строки ---------- ---------- -------

	function genstring() {

		// длина строки (количество символов) CAPTCHA

		// случайное число в пределах от $length_min до $length_max включительно

		$length = mt_rand( $this->length_min, $this->length_max );

		$this->length = $length;


		while (true) { // бесконечный цикл, пока не сгенериуем хорошую строку =)

			$this->keystring = '';

			for ($i = 0; $i < $length; $i++) {

				// в цикле добавляем к строке по 1 случайному символу

				$this->keystring .= $this->allowed_symbols{ mt_rand( 0, strlen( $this->allowed_symbols ) -1 ) };

			}

			if (!preg_match( '/cp|cb|ck|c6|c9|rn|rm|co|do/', $this->keystring )) break;

		}

	}

	// ---------- ---------- ---------- ---------- ----------
пишем
			// Строим задачу

			$t1 = rand(10, 99);

			$t2 = rand(10, 99);

			$this->keystring = $t1.'+'.$t2.'=';

			$this->answer = $t1 + $t2;
вместо
$_SESSION['sec_code_session'] = $im->keystring;
пишем
$_SESSION['sec_code_session'] = $im->answer;

кажется всё - пробуй

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

Не большая поправочка в пункт 1.

Удалить нужно все графические файлы, htaccess оставляем

оооой, ещё ошибся...

написано что удаляем

	// Генерация строки ---------- ---------- -------

	function genstring() {

		// длина строки (количество символов) CAPTCHA

		// случайное число в пределах от $length_min до $length_max включительно

		$length = mt_rand( $this->length_min, $this->length_max );

		$this->length = $length;


		while (true) { // бесконечный цикл, пока не сгенериуем хорошую строку =)

			$this->keystring = '';

			for ($i = 0; $i < $length; $i++) {

				// в цикле добавляем к строке по 1 случайному символу

				$this->keystring .= $this->allowed_symbols{ mt_rand( 0, strlen( $this->allowed_symbols ) -1 ) };

			}

			if (!preg_match( '/cp|cb|ck|c6|c9|rn|rm|co|do/', $this->keystring )) break;

		}

	}

	// ---------- ---------- ---------- ---------- ----------
на самом деле нужно удалить
		$length = mt_rand( $this->length_min, $this->length_max );

		$this->length = $length;


		while (true) { // бесконечный цикл, пока не сгенериуем хорошую строку =)

			$this->keystring = '';

			for ($i = 0; $i < $length; $i++) {

				// в цикле добавляем к строке по 1 случайному символу

				$this->keystring .= $this->allowed_symbols{ mt_rand( 0, strlen( $this->allowed_symbols ) -1 ) };

			}

			if (!preg_match( '/cp|cb|ck|c6|c9|rn|rm|co|do/', $this->keystring )) break;

		}
соответственно вставляем
// Строим задачу $t1 = rand(10, 99); $t2 = rand(10, 99); $this->keystring = $t1.'+'.$t2.'='; $this->answer = $t1 + $t2;
вместо удалённого и получаем
	function genstring() {

		// Строим задачу

					$t1 = rand(10, 99);

					$t2 = rand(10, 99);

					$this->keystring = $t1.'+'.$t2.'=';

					$this->answer = $t1 + $t2;

	}

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

lifestar,

http://4dle.ru/2007/12/29/antibot_xy.html

респект.)

Изменено пользователем ·• Greeze •·
Ссылка на сообщение
Поделиться на других сайтах
  • 4 года спустя...

Можно написать что-то подобное для версий 8.х 9.х?

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...
  • 3 недели спустя...

За октябрь-ноябрь затесалось у меня ~1К Бендеров. Требуют алкоголя да матом ругаются (образно). В общем, Щикарная стандартная защита...

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Много леваков стало региться. Сначала сидели вечно в форме добавления комментариев, а теперь почему-то в одной из новостей. Непонятно пока для чего.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...