Probleme de verif pseudo ( php )

rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   -  
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   -
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 ?
A voir également:

4 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Utilise la fonction trim() qui supprimes les espaces blancs (espaces, tabulations, retours à la ligne, ...) en début et en fin de chaine.
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
question => rudak, le 7 mar 2010 à 17:40:41
reponse => avion-f16, le 7 mar 2010 à 17:41:43

super merci : ^^
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
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);
}
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
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
0