Comparaison de chaines en PHP - PHP - Programmation
Marsh Posté le 30-11-2008 à 20:11:23
header n'arrête pas le traitement. il faut un exit; derrière.
Marsh Posté le 30-11-2008 à 20:13:58
skeye a écrit : header n'arrête pas le traitement. il faut un exit; derrière. |
Merci, réponse concise et claire
Bon, j'ai tout mis en conditionnel et ça fonctionne, merci beaucoup !!
Par contre, j'ai un souci dans l'inscription, j'aimerais tester si le pseudo existe toujours, comment je peux faire ? J'ai fait un SELECT avec login = $login et regardé si le fetch était un tableau (is_array) mais ça ne fonctionne pas, il me laisse m'inscrire avec le meme pseudo...Une idée ?
Marsh Posté le 30-11-2008 à 20:19:09
Pas compris la question. Tu veux tester si un pseudo existe déjà?
Marsh Posté le 30-11-2008 à 20:22:05
Voila.
Donc je fais une requete avec le pseudo, et j'aimerais tester si j'ai des résultats ou pas quoi...
Si j'ai un résultat : le pseudo existe, si j'en ai pas c'est bon...
Comment tester si une requête mysql comprend des résultats ? J'ai essayé de faire un "mysql_num_rows == 0" mais ça fonctionne pas...
C'est correct comme méthode ou y'a plus simple ?
Marsh Posté le 30-11-2008 à 20:27:13
montre ton code, ça doit fonctionner...
Marsh Posté le 30-11-2008 à 20:31:21
Code :
|
Voila la partie importante du code...
Il ne bloque pas dessus et valide mon inscription même si j'utilise le même pseudo (identique minuscule et majuscule comprises)...
Je comprends pas...
Marsh Posté le 30-11-2008 à 20:36:00
euh, elle est valide ta requête là? Ton login c'est une chaine de caractères, et tu le met pas entre quotes...
Marsh Posté le 30-11-2008 à 20:41:16
J'ai pas compris...Oui oui elle est valide, tout fonctionne a merveille ! A part qu'il me laisse m'inscrire avec un pseudo déja existant dans ma base de données...
$login c'est le login que le mec qui veut s'inscrire utilise. Je fais donc une requête dans "accounts" avec ce login, pour voir si il y a des résultats...
login sans quotes c'est le nom du champ dans ma base de données. J'ai jamais utilisé de quotes dans mes requetes pour les noms des champs, et ça fonctionne ...
J'ai une base accounts qui contient:
id login password ...etc
Et je fais une requête dessus avec le login que le mec veut utiliser pour son inscription ! Et moi je veux l'envoyer bouler si ce pseudo existe déjà...
Bon pour faire simple, je veux faire une requête sur ma table, et voir si il y a des résultats. Comment je fais ?
Marsh Posté le 30-11-2008 à 20:44:53
garfunk71 a écrit : J'ai pas compris... |
non, ce que je veux dire c'est que
Code :
|
ça donne
Citation : SELECT * FROM ton_prefixe_accounts WHERE login = leloginsaisi |
Ceci n'est pas une requête sql valide, leloginsaisi devrait être entre quotes, ie 'leloginsaisi'
Marsh Posté le 30-11-2008 à 20:51:44
Ah oui !! En effet j'ai merdé sur ce coup-là..
Ca fonctionne maintenant...Je me sens con. Désolé :$ et encore merci
Marsh Posté le 30-11-2008 à 22:53:26
Au passage, je te conseille si tu ne connais pas de jeter un oeil àla fonction mysql_real_escape_string, voire aux requêtes préparées, si tu as accès à mysqli ou PDO.
Marsh Posté le 30-11-2008 à 19:21:44
Bonjour à tous
J'ai créé un petit site en PHP/MySQL, et je suis confronté à un souci.
Dans l'espace membre, j'ai une partie qui permet de modifier son mot de passe. Je récupère donc l'ancien mot de passe, puis les 2 nouveaux (il est répété pour éviter les erreurs de frappe, banal quoi).
Tout ceci est envoyé via POST a une page qui compare les deux chaînes $newpass et $newpass2, et qui redirige via un header("Location:fdsfds.php" ) sur la page précédente avec un petit message d'erreur.
Jusque là, rien d'extraordinaire...
Sauf que ça marche pas !
J'ai testé avec des echo, et il ne se gêne pas du tout pour valider la comparaison des deux mots de passe !!!
Je ne comprends pas...
J'ai fait la même chose pour l'inscription, et il valide celle-ci même si le deuxième champ de password est vide
ci-joint le code correspondant :
La page html avec le formulaire :
Et voici la page qui récupère les données :
Y a t'il un souci dans ma comparaison ? Il me semblait qu'un simple == suffirait mais apparemment non...Il me semblait aussi qu'une redirection par header stoppait le traitement du fichier...Le problème pourrait-il venir de là ? Dois-je mettre l'update de la bdd en conditionnelle [mot de passes identiques] ?
Merci de vos réponses et aides