[Release] Моментална проверка дали името е заето с ajax

AnHiMiLaToR

The Prodigy
Joined
Jul 9, 2008
Messages
368
Reaction score
107
1. Поставете checkname.js в scripts (може и другаде но го поправете в т.4)
2. Поставете getname.php в главната директория на сайта
3. Поставете yes.gif и no.gif в папка images
4. Между <head> и </head> поставете
Code:
<script type="text/javascript" src="scripts/checkname.js">//script_by_anhi</script>
5. Формата за регистрация (за MuWeb: modules/register.php) ако е била:
Code:
<input name="account" type="text" size="17" maxlength="10" value="'.$_POST[account].'">
трябва да стане:
Code:
<input name="account" type="text" size="17" maxlength="10" [COLOR="Red"]onkeyup="showHint(this.value)"[/COLOR] value="'.$_POST[account].'"> [COLOR="Red"]<span id="txtHint">[/COLOR]
как изглежда тя зависи само от сайта. Ако при вашия е различно - можете да видите червените неща, те са промените и тях трябва да напишете във вашия input.
6. Редактирайте getname.php АКО конфигурационния файл НЕ СЕ казва config.php (при MuWeb се казва така и няма нужда от редакция)

Ето ги файловете
Демо има тука (пишете акаунт някакъв)
 
Last edited:
при мен е по различна ето така е при мен

Code:
<input name="account" type="text" class="input" id="account" size="14" maxlength="10">
                        </div></td>
 
  • Like
Reactions: sNG
Направих малка промяна - оцветих в червено промените, за да е по-пригледно.
При теб трябва да стане
Code:
<input name="account" type="text" class="input" id="account" size="14" maxlength="10"  [color="red"]onkeyup="showHint(this.value)"[/color]>  [COLOR="Red"]<span id="txtHint">[/COLOR]
                        </div></td>
Няма значение къде в input слагаме кода.

Мисля да направя изцяло нова форма за рег с ajax ама нямам време :[
Трябва да има проверка на парола, мейл, моментален код, абе като във Vbox-a
 
Last edited:
ще ме зарибите и по ajax :)
 
10/10 работи нормално но за това getname.php малко защитя дали ще му трябва?
 
10/10 работи нормално но за това getname.php малко защитя дали ще му трябва?

не
ако имаш защити в config.php
 
Last edited:
аз имам но другите може да нямат
 
а това getname къде се слага?
 
Защитка:
1. слагате 2те функциики някъде (където и да е, стига да има достъп до тях..):
PHP:
<?php
function checksec($str){
if(strpos(str_replace("''",""," $str"),"'")!=false)
return str_replace("'", "''", $str);
else
return $str;
}
function secure($str){
if (is_array($str)) {
foreach($str AS $id => $value) {
$str[$id] = secure($value);
}
}
else
$str = checksec($str);
return $str;
}
?>

2. и после в check_name.php
Code:
$account=[COLOR="Red"]secure([/COLOR]$_GET['q'][COLOR="Red"]);[/COLOR]
 
Last edited:
на демото като напишеш само 2 букви или 1 не дава х отстрани..а би трябвало
 
е то може да се промени ама нали акаунта е от 4 по принцип, затва съм го настроил така.
 
Ето го с проверка ако има по малко от 4 букви да извежда грешка!

PHP:
<?php 
include 'config.php';
$account=$_GET['q']; 
$sql="SELECT memb___id FROM MEMB_INFO WHERE memb___id='$account'"; 
$q=mssql_query($sql); 
$broi=mssql_num_rows($q); 
if(strlen($account) <4)
	{
	   print "<font color=#80000>Username needs to be 4-10 Characters!</font>";
	}
	else
		{
		if($broi==0)
		{
		echo "<img src='/images/yes.gif'/>";
		} 
		else 
		{
		echo "<img src='/images/no.gif'/>";
		} 
	}	
?>

Не съм го изпробвал но мисля че ще работи
 
Защитка:
1. слагате 2те функциики някъде (където и да е, стига да има достъп до тях..):
PHP:
<?php
function checksec($str){
if(strpos(str_replace("''",""," $str"),"'")!=false)
return str_replace("'", "''", $str);
else
return $str;
}
function secure($str){
if (is_array($str)) {
foreach($str AS $id => $value) {
$str[$id] = secure($value);
}
}
else
$str = checksec($str);
return $str;
}
?>

2. и после в check_name.php
Code:
[COLOR="Red"]secure([/COLOR]$_POST['username'][COLOR="Red"]);[/COLOR]

не го разбрах това
значи правим нов файл и слагаме 1я код в него после в getname.php слагаме отгоре тва ?
 
Първа точка да е в нов файл с име примерно security.php
Втора точка с червено съм оцветил новото/промененото в getname.php (И btw поправих си 2ра точка в горния пост...)
 
Last edited:
Ето го с проверка ако има по малко от 4 букви да извежда грешка!

PHP:
<?php 
include 'config.php';
$account=$_GET['q']; 
$sql="SELECT memb___id FROM MEMB_INFO WHERE memb___id='$account'"; 
$q=mssql_query($sql); 
$broi=mssql_num_rows($q); 
if(strlen($account) < 4)
	{
	   print "<font color=#80000>Username needs to be 4-10 Characters!</font>";
	}
	else
		{
		if($broi==0)
		{
		echo "<img src='/images/yes.gif'/>";
		} 
		else 
		{
		echo "<img src='/images/no.gif'/>";
		} 
	}	
?>

Не съм го изпробвал но мисля че ще работи

......
 
работи или не работи?кфи са тия ... ^^
 
Evo не бачка по твоя начин.

Real като заменя:

$account=$_GET['q'];

с

$account=secure($_GET['q']);

ми дава грешка в сайта като проверява акаунда дали е свободен

няма ли да стане с
include 'securety.php';
 
Last edited:
require();
include();
все тая в случая :)