Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> walidacja formularza
Mustafa
post 19.01.2011, 21:48:43
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 8.04.2006

Ostrzeżenie: (0%)
-----


Witam,

otóż mam problem z poprawnym sprawdzeniem czy dany login już istnieje.

Kod
var r=1;
var v=0;



function check_login_sql(str)
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if(xmlhttp.readyState==0 || xmlhttp.readyState==1){
    document.getElementById("check_login").innerHTML="<img src=\"images/ajax-loader.gif\"><span style=\"color: red\">Sprawdzanie loginu</span>";
  }    
  if(xmlhttp.readyState==4){
    //document.getElementById("check_login").innerHTML="";
    //document.getElementById("check_login").innerHTML=xmlhttp.responseText;
    v = xmlhttp.responseText;

    }
   }

xmlhttp.open("GET", "javascript/check_login.php?login="+str,true);
xmlhttp.send();

    if(v == 0){
        r = 0;
    }else{
        r = 1;
    }
}

function check_login(login){
    
    if(login.length==0){
        document.getElementById("check_login").innerHTML="<img src=\"images/register/unchecked.gif\"><span>Podaj swój login</span>";
        return 0;
    }else if(!/^([a-zA-Z0-9_\.\-])+$/i.test(login)){
        document.getElementById("check_login").innerHTML="<img src=\"images/register/unchecked.gif\"><span style=\"color: red\">Twój login zawieta niedozwolone znaki</span>";
        return 0;
    }else if(login.length>20){
        document.getElementById("check_login").innerHTML="<img src=\"images/register/unchecked.gif\"><span style=\"color: red\">Twój login jest za długi</span>";
        return 0;
    }else if(login.length<5){
        document.getElementById("check_login").innerHTML="<img src=\"images/register/unchecked.gif\"><span style=\"color: red\">Twój login jest za krótki</span>";
        return 0;
    }else{
        check_login_sql(login);
        if(r == 0){
            document.getElementById("check_login").innerHTML="<img src=\"images/register/unchecked.gif\"><span style=\"color: red\">Login jest już zajęty</span>"+r+","+v+","+login;
            return 0;    
        }else{
            document.getElementById("check_login").innerHTML="<img src=\"images/register/checked.gif\">"+r+","+v+","+login;
            return 1;
        }
    }
}


Z pozoru wszytko wydaje się być OK, ale niestety login nie zawsze zostaje poprawnie sprawdzony (testowy zajęty nick to maslo13) i widnieje jako dostępy (cała przykładowa strona tutaj). Bardzo będę wdzięczny za wszelką pomoc w rozwiązaniu mojego problemu smile.gif .
Go to the top of the page
+Quote Post
piotr.kazmiercza...
post 22.01.2011, 14:50:16
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 10
Dołączył: 1.03.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


A po stronie php i zapytania do bazy danych wszystko jest ok ? Bo Ajax dobrze wysyła parametr tylko zwracany rezultat "0" jest zły jak rozumiem


--------------------
Facead.pl - Social Media Agency
Fishcode.pl - Blog
Go to the top of the page
+Quote Post
Mustafa
post 22.01.2011, 17:41:21
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 8.04.2006

Ostrzeżenie: (0%)
-----


Już jakoś sobie poradziłem, ale dziękuje za zainteresowanie smile.gif .

Kod
function check_login_sql(str)
{
var xmlhttp;

if (window.XMLHttpRequest) {
  xmlhttp=new XMLHttpRequest(); // code for IE7+, Firefox, Chrome, Opera, Safari
}else{
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
}

xmlhttp.open("GET", "javascript/check_login.php?login="+str,false);
xmlhttp.send();

    if(parseInt(xmlhttp.responseText)==0){
        return 0;
    }else{
        return 1;        
    }

}
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:25