Probleme de verif pseudo ( php )

Bonjour, je suis en train de faire ma fonction ajax qui verifie si le pseudo existe deja dans ma base de donnée lors de l'inscription
le soucis c'est que j'arrive a le contourner simplement en rajoutant un espace a la fin du pseudo

exemple : (rudak est deja dans ma base)
je cherche 'rudak' ca me dit ==> il est déja.
je cherche 'rudak ' ca me dit ==> il n'y est pas.

voila ma requete php

<?php
if(isset($_GET['action']))
{
	include('conexionbase.php');
	if($_GET['action']=="check_pseudo")
	{
		$sql="SELECT * FROM mabaseWHERE pseudo='".$_GET['pseudo']."'";
		$result=mysql_query($sql);

		if(mysql_num_rows($result)){echo "oui";}
		else{echo "non";}
	}
	mysql_close();
}
?>


on doit surement pouvoir régler ce ptit souci..?
il me semble qu'il y a une fonction native en php qui suprime les espaces en fin ou debut de string ca pourrai etre la solution qu'en pensez vous ?

4 réponses

  1. voila jai resolu mon souci en rajoutant une fonction trim sur mon javascript

    je montre coment jai fait ca pourra peut etre servir a quelqun un jour... :



    var regExpBeginning = /^\s+/;
    var regExpEnd = /\s+$/;

    function trim(aString)
    {
    return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
    }


    function request(callback)
    {
    var pseudo = encodeURIComponent(trim(document.getElementById('pseudo').value));
    etc etc...

    voila ca marche impec merci pour le coup de main
    1. jai changé ma requete j'ai rajouté trim() comme ca :

      $sql="SELECT * FROM angothmembres WHERE pseudo='".trim($_GET['pseudo'])."'";

      par contre ca fonctionne "a moitié" mais ca doit venir d'autre part.
      'rudak' ==> existe
      'rudak ' ==> n'existe pas
      ' rudak' ==> existe
      ' rudak ' ==> existe

      y a juste un ptit soucis avec pseudo+espace

      voila mes fonctions javascript

      function request(callback)
      {
      	var pseudo = encodeURIComponent(document.getElementById('pseudo').value);
      	var xhr = getXMLHttpRequest();
      		
      		xhr.onreadystatechange = function()
      		{
      			if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
      			{
      				callback(xhr.responseText);
      				document.getElementById('loader').style.display = "none";
      			}
      		}
      	
      	xhr.open("GET", "ajax.php?action=check_pseudo&pseudo="+pseudo, true);
      	xhr.send(null);
      }
      		
      function readData(sData)
      {
      	pseudo = document.getElementById('pseudo').value;
      	
      	if (sData == "oui") // si le retour de la requete = oui => alors le pseudo existe deja
      	{
      	document.getElementById('txt_pseudo').innerHTML = " <b>"+pseudo+"</b> est déja pris !";
      	document.getElementById('pseudo_no').style.display = "inline";
      	}
      	else
      	{
                          document.getElementById('txt_pseudo').innerHTML = " <b>"+pseudo+"</b> ok!";
      	    document.getElementById('pseudo_ok').style.display = "inline";
      	}
      	setTimeout("request("+readData+")",1000);
      }
      1. question => rudak, le 7 mar 2010 à 17:40:41
        reponse => avion-f16, le 7 mar 2010 à 17:41:43

        super merci : ^^
        1. Utilise la fonction trim() qui supprimes les espaces blancs (espaces, tabulations, retours à la ligne, ...) en début et en fin de chaine.