Проверка на потребителско име и email с Ajax

adrian

Registered
Значи ползвам този урок на @mute, но той прави проверка само на потребителското име, някой може ли да ми го преправи, за да прави проверка и на email. Аз пробвах с още едни файлове за проверка със различни имена и различни имена на функции и променливи, но се получава едно мазало. Като проверяваш дали е заето потребителското име отговоро "Свободно"/"Заето" излиза при email-a и направо ужас :(
 
var url="getname.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
ами то е GET
от друг файл се проверява това можеш да го промениш
var meil ="getname.php"
meil=meil+"&meil="+str
и така играчка но може да стане и правиш още едно if4e в формата
дано съм ти помогнал малко
успех
 
checkname.js
Код:
var xmlHttp

function showHint1(str)
{
if (str.length<=3)
{
document.getElementById("txtHint1").innerHTML=""
return
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getname.php"
url=url+"?a="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint1").innerHTML=xmlHttp.responseText
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

form.html
Код:
<html>
<head>
<script src=chekname.js></script>
</head>
<body>

<form>
First Name:
<input type="text" id="txt1"
onblur="showHint1(this.value)">
</form>

<p>Имейла е: <span id="txtHint1"></span></p>

</body>
</html>

getname.php
Код:
<?php
$a = $_GET['a'];
echo $a;
if (eregi("@", $a) ){
	$a = explode("@", $a);
	if ( (strlen($a[0]) == "0") || (strlen($a[1]) <= "3") || !eregi(".", $a[1]) ){
	echo "Невалиден имейл";
	}
} else {
echo "Невалиден имейл";
}
?>
 
Здрасти адриан
ето това което ти трябва

ПХП кода
Код:
if(isset($_GET['q'])){
$name=$_GET['q'];
$sql="SELECT username FROM phpbb_users WHERE username='$name'";
$q=mysql_query($sql);
$broi=mysql_num_rows($q);
if($broi==0){echo "СВОБОДНО";}
else {echo "ЗАЕТО";}
}elseif(isset($_GET['m'])){
   $mail=$_GET['m'];

 if( !preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/", $mail))
  {
    die('Невалиден меил адрес');
  }
  $sql="SELECT user_email FROM phpbb_users WHERE user_email='".$mail."'";
  $q=mysql_query($sql);
  if(mysql_num_rows($q)==0){  
    echo 'Валиден меил адрес'; 	
  }else{
  	echo 'Този меил адрес вече е използван';
  }

}

а JS може да вземеш от тук
http://www.ms-dev.com/mute/ajaxname.php
промених функцията такаче да се използва за много полета а не само за 1 виж демото ;)
 
Мерси и на всички, точката е за @mute, защото цяла вчер ми помага да го направя ;)
 

Back
Горе