Забрана за повтарящи се букви или символи

C++ JAVA
Post Reply
webxaoz
Нов
Нов
Posts: 100
Joined: Thu Jul 16, 2009 9:13 am

Забрана за повтарящи се букви или символи

Post by webxaoz » Fri Apr 23, 2010 5:43 am

Здравейте, Имам една най-обикновена потребителска форма към която искам да добавя забрана за примерно "xxxxxxxxxxxx" или "654656546" това, тоест ако някой реши да пълни формата с подобно нещо да не може. Интересува ме как мога да направя това в PHP. Благодаря предварително но всички.

User avatar
ggenov
Турист
Турист
Posts: 241
Joined: Thu Jul 03, 2008 6:25 pm
Answers: 13

Post by ggenov » Fri Apr 23, 2010 6:00 am

Потребителските форми се пишат нa html ако не се лъжа.


$bad_words=array('6565656565','6565656','dfhdhshshsdfh');
if (in_array($_POST['input_name'],$bad_words)) die('Пробвай пак!');
The complicated problems have simple and easy for understanding bad answers.

webxaoz
Нов
Нов
Posts: 100
Joined: Thu Jul 16, 2009 9:13 am

Post by webxaoz » Fri Apr 23, 2010 6:09 am

Имам само оше един въпрос, колкото и глупаво да изглежда той, този премер къде точно трябва да се добави и имали значение това дали е в началото на кода или в края. А може ли да се направи това в отделен файл и да се вмъкне към другия код с формата и ако може как става това. Извинявай за баналните въпроси и благодаря.

Slavei
Турист
Турист
Posts: 528
Joined: Mon Aug 21, 2006 6:04 pm

Post by Slavei » Fri Apr 23, 2010 6:22 am

webxaoz wrote:Имам само оше един въпрос, колкото и глупаво да изглежда той, този премер къде точно трябва да се добави и имали значение това дали е в началото на кода или в края. А може ли да се направи това в отделен файл и да се вмъкне към другия код с формата и ако може как става това. Извинявай за баналните въпроси и благодаря.
Този пример така или иначе няма да ти свърши работа. Ще трябва до края на живота си да пишеш комбинациите :)

Ако целта ти е да не могат да пишат фалшиви данни във формуляра - няма дачин да предотвратиш това. Просто си валидирай полетата според данните, които очаваш - Ако полето е за име позволявай да се пишат само букви в него; Ако е за телефон само цифри, + и евентуално интервали.

webxaoz
Нов
Нов
Posts: 100
Joined: Thu Jul 16, 2009 9:13 am

Post by webxaoz » Fri Apr 23, 2010 6:23 am

Да ама как става може ли пример

User avatar
emagi
Шаман
Шаман
Posts: 6476
Joined: Fri Dec 07, 2007 3:24 pm
Answers: 1032

Post by emagi » Fri Apr 23, 2010 6:41 am

Ето един елементарен пример:
<?php
$string = "jzxcvbjnm"; //тува ти е съдържанието, което се проверява
$code = array();
foreach (str_split($string) as $current){
if(in_array($current, $code)){
echo "Повтаращя се букви";
break;
} else {
$code[] = $current;
}
}
?>

Slavei
Турист
Турист
Posts: 528
Joined: Mon Aug 21, 2006 6:04 pm

Post by Slavei » Fri Apr 23, 2010 7:11 am

webxaoz wrote:Да ама как става може ли пример

Code: Select all

<?php
	$submitError = false;
	$errorMsg = array&#40;&#41;;
	$submitSend = isset&#40;$_POST&#91;'submitSend'&#93;&#41; ? true &#58; false;
	
	#Лице за контакт
	$user_contactFirstName = &#40;isset&#40;$_POST&#91;'user_contactFirstName'&#93;&#41;&#41; ? trim&#40;$_POST&#91;'user_contactFirstName'&#93;&#41; &#58; '';
	$user_contactSurName = &#40;isset&#40;$_POST&#91;'user_contactSurName'&#93;&#41;&#41; ? trim&#40;$_POST&#91;'user_contactSurName'&#93;&#41; &#58; '';
	$user_contactMobile = &#40;isset&#40;$_POST&#91;'user_contactMobile'&#93;&#41;&#41; ? trim&#40;$_POST&#91;'user_contactMobile'&#93;&#41; &#58; '';
	
	if&#40;$submitSend === true&#41;&#123; #ако е натиснат бутона субмит
		#лице за контакт
		if &#40;empty&#40;$user_contactFirstName&#41;&#41; &#123;
			$errorMsg&#91;21&#93; = 'полето не може да бъде празно';
	        $submitError = TRUE;
	    &#125;
		elseif&#40;!preg_match&#40;'/^&#91;а-яА-Я\-&#93;*$/iu',$user_contactFirstName&#41;&#41; &#123; #разрешаваш само малки и главни кирилски букви и тирета &#40;заради имената&#58; Ана-Мария&#41;
			$errorMsg&#91;21&#93; = 'името може да е само на кирилица';
	        $submitError = TRUE;
		&#125;
		
		if&#40;empty&#40;$user_contactMobile&#41;&#41; &#123;
			$errorMsg&#91;23&#93; = 'полето е празно';
	        $submitError = TRUE;
		&#125;
		elseif&#40;!preg_match&#40;'/^&#91;0-9\+ \-&#93;*$/i',$user_contactMobile&#41;&#41;	&#123; #разрешаваш само цифри, знака +, – и интервал
			$errorMsg&#91;23&#93; = 'полето може да съдържа само цифри';
	        $submitError = TRUE;
		&#125;
		
	    if&#40;!$submitError&#41; &#123;
	    	$query = "
			insert into....
			";
			if&#40;$result = mysql_query&#40;$query&#41;&#41;&#123; #всичко е ОК, показваме съобщение, че се е регнал успешно
				$successReg = true;
			&#125;
			else &#123; #станала е грешка, трябва да кажеш на потребителя, че нещо се е омазало и да опита пак. Ако пак не става да пише на админа примерно...
				$successReg = false;
				#error_log - можеш да си запишеш в лог, че нещо не е сработило...
			&#125;
	    &#125;
	&#125;
?>

<form name="nameForm" id="idForm" action="" method="post">
Име&#58; *
	<input name="user_contactFirstName" id="user_contactFirstName" type="text" value="<?=$user_contactFirstName?>" />
	<?=&#40;isset&#40;$errorMsg&#91;21&#93;&#41;&#41;?'<span class="errorDiv">'.$errorMsg&#91;21&#93;.'</span>'&#58;'';?>
GSM&#58;*
	<input name="user_contactMobile" id="user_contactMobile" type="text" value="<?=$user_contactMobile?>" />
	<?=&#40;isset&#40;$errorMsg&#91;23&#93;&#41;&#41;?'<span class="errorDiv">'.$errorMsg&#91;23&#93;.'</span>'&#58;'';?>
</form>

Post Reply