petit soucis d'inscription

Invité
Invité n'ayant pas de compte PHPfrance

20 juin 2007, 21:26

Bonjour,

je voulais juste savoir ce qu'il faut mettre en paramètres pour qu'une inscrition de membre accepte les caractères spéciaux du genre ' ou - ou encore é

la première ligne de code testée ci dessous enregistre bien le membre en base de données mais ensuite lors de l'authentification, retourne un message d'erreur;
la seconde ligne affiche une page blanche et ne met rien en db.
if(isset($_POST['pseudo']))$login = mysql_real_escape_string($_POST['pseudo']);
if(isset)($_POST['pseudo'])) $login= addslashes($_POST['pseudo']);
else $login="";

Invité
Invité n'ayant pas de compte PHPfrance

20 juin 2007, 22:22

celà bien sur si on rentre un pseudo du genre " dédé d'Anvers" ou bien "Joe l'élégant"

avec un pseudo basique sans accent ni apostrophe le addslashes fonctionne tres bien :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 juin 2007, 15:06

Tous les caractères spéciaux sont autorisés par défaut.. ta base de données contient un champ varchar qui accepte les caractères que tu lui donnes. La seule contrainte est lors de l'exécution de ta requête, il faut protéger les apostrophes/guillemets (avec la directive magic_quotes ou les fonctions addslashes, mysql_escape...) pour éviter des erreurs sql

Les deux lignes de code que tu nous montre ne font qu'une seule chose, c'est protéger les apostrophes/guillemets. Il n'y a pas d'insertion en base, de comparaison ou quoi que ce soit d'autre : elle récupère la donnée $_POST['pseudo'], elle protège les caractères spéciaux pour les conserver, et elle affecte le tout à la variable $login, ça s'arrête là :)

En revanche, sur ta 2ème ligne, tu as une erreur de syntaxe que php aurait du te signaler... compte le nombre de parenthèses, tu verras qu'elles ne sont pas équilibrées ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...