Question php sur les formulaires ?

comment faire pour que l’utilisateur en trin de s’inscrire n’ait pas le meme pseudo qu’un utilisateur deja rentré dans la base de données?

Tu dois faire une recherche sql:

  • soit tu cherches grâce a une requête pour laquelle ta variable pseudo est egale a une des entrées de ta base sql t’utilises alors un WHERE pseudo=$_POST[‘pseudo’] par exemple
    Edit: quoi que ca me semble un peu compliquer a mettre en place la seconde me semble plus simple en faite :slight_smile:
  • ou alors tu peux compter le nombre d’entrées sql qui sont égale à ta variable $_POST[‘pseudo’] si != 0 alors l’utilisateur est deja rentré
    Edité le 01/03/2008 à 16:20

tu fais une requete SQL qui sélectionne tous les pseudo de la BD et tu compare avec le pseudo entré:
$pseudos = mysql_query(“SELECT pseudo FROM ta-bd WHERE pseudo=le-pseudo”);
après tu regarge la longueur de $pseudos.
Edité le 01/03/2008 à 16:22

oué ben tien jai trouvé finalemen jai fait un while …pr comparer ma base de donner avec ce que l’utilisateur a rentré

tu devrais plutôt tout mettre dans la requete SQL, ça sera plus rapide à exécuter.

oui j’essaye de tout mettre dans ma requette mais je n’arrive pas a l’executer… je dois ecrire des choses impossibles.

Tu fais $pseudo = le-pseudo-du-gar ;
$reponse = mysql_query(“SELECT Pseudos FROM Ta-bd WHERE Pseudos=’$pseudo’”);

ben c’est exactement ce que j’avai fait mais ca me renvoie une page blanche

$retour = mysql_query(‘SELECT COUNT(*) AS nbre_entrees FROM membres WHERE pseudo=’’.$pseudo.’’’) or die(mysql_error());
$donnees = mysql_fetch_array($retour);
if($donnees[‘nbre_entree’] != 0)
{
echo ‘Votre pseudo est déja utilisé’;
}
else {
//Poursuite de l’inscription
}

Plutôt: mysql_real_escape_string($pseudo)

Jamais essayé cette fonction Sans-Nom :o m’enfin celle que j’ai donné marche également :slight_smile: testé et approuvé je m’en sers pour un formulaire de login :slight_smile:

Du tout.

Ton code posera problème dés lorsque $pseudo contiendra des ’ (bref: cf. injections SQL)

Au passage, ton formulaire de login, hé bien n’importe qui peut se connecter :slight_smile: j’y dis ça, je dis rien… /D

Hmm je voudrais bien en savoir un peu plus , si j’ai fait un html_specialchars juste avant sur mon $pseudo il peut pas faire une injection nop ?
Ou alors suffit de ne pas permettre les ’ dans le champ pseudo enfin je suis neophyte ^^’

htmlspecialchars = protection contre les conneries en HTML.
mysql_real_escape_string = protection contre les conneries en (my)SQL.

en gros donc:

  1. htmlspecialchars: pour rendre un contenu que l’utilisateur a entré, et qui peut contenir du html, que l’on ne souhaite pas afficher comme tel (pour des raisons de sécurité, etc)
  2. mysql_real_escape_string: pour rendre une chaîne de caractères “sûre” vis à vis de la base de données.
    ->
    $retour = mysql_query(‘SELECT COUNT(*) AS nbre_entrees FROM membres WHERE pseudo=’’.mysql_real_escape_string($pseudo).’’’) or die(mysql_error());

Bha écoute merci je ne savais pas du tout ^_^’ j’pensais pas du tout a ça =O
Je vais changer mes formulaires dessuite alors =]
Merci :wink:

S’il n’y a pas d’echo/print, il est normal que tu obtiennes une page blanche :neutre: