Pb de heu Requete || mysql || che pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb de heu Requete || mysql || che pas

par Invité » 19 déc. 2006, 15:58

heu je t explique le fonctionnement global parceque je ne sais pas ce qu' inclus ta question.

1- on passe le pseudo methode ajax

2- si pris doit en choisir un autre, retour a 1-

2 bis- si pas pris, on enregistre le pseudo vers une autre page methode post (pas d ajax)

session_start();
$Pseudo = $_POST['pseudo'];
$ReqMaj = "insert into membres(IdMemb,PseudoMemb,) values ('','$Pseudo')";
mysql_query($ReqMaj);
$_SESSION['inscris']="inscris";
header('location: ../index.php?Page=Inscription' );
//retour a la page d inscription pour le message de confirmation 
maintenant on retourne directement a 1-
si j utilise le meme pseudo , il est libre
j attends 30 secondes, il est pris .

La verif pseudo ne prends pas en compte l enregistrement du pseudo , elle ne fait que renvoyer 's il est pris ou pas' pour continuer le formulaire.
! :?

par zeus » 19 déc. 2006, 15:24

Est-ce que tu attends bien la réponse de ton serveur lors de l'enregistrement des données ?

par Invité » 19 déc. 2006, 14:17

Oui tout fonctionne bien( enregistrement dans la bdd, peut se connecter avec son pseudo), hormis ce controle de pseudo.

Je viens de detecter un nouveau comportement.

Pour le control de pseudo si j attends une 30aine de secondes (variable), le controle de pseudo fonctionne!!!!!( en local ou online).

c est a dire si j enregistre le pseudo johndoe, je peux reenregistrer johndoe pendant 30 secondes, apres le control de pseudo me dit qu il est pris.

la je cale
Probleme de cache ?
Url en get ?
Le script ajax ?
j en, ai aucune idée.

par zeus » 19 déc. 2006, 09:14

Quand tu as inscrit le 1er user via ton application, est-ce qu'il est présent en base de données ?

Je commencerais par vérifier ça ;)
Et s'il est pas présent, c'est que le code qui insère les données en base ne fonctionne pas ;)

Pb de heu Requete || mysql || che pas

par Invité » 19 déc. 2006, 04:23

bonsoir ,

je vais essaye d etre clair :

j ai un form avec une requet en ajax pour voir si le pseudo est deja pris.

j enregistre un utilisateur avec le pseudo johndoe.
il peut se logguer.

je veux enregistrer un autre user, je retape johndoe , et il me met qu il est libre.???

par contre si j enregistre un pseudo directement dans la bdd (phpmyadmin), je reviens sur mon form, je retape le meme pseudo la pas de pb il me dit qu il est deja pris....


une partie du form

Code : Tout sélectionner

<input type="text" name="pseudo" OnBlur="verifPseudo(this.value)" >
requete ajax

Code : Tout sélectionner

function file1(fichier1) { if(window.XMLHttpRequest) // FIREFOX xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // IE xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else return(false); xhr_object.open("GET", fichier1, false); xhr_object.send(null); if(xhr_object.readyState == 4) return(xhr_object.responseText); else return(false); } function writediv1(texte1) { document.getElementById('pseudobox').innerHTML = texte1; } function verifPseudo(pseudo) { if(pseudo == '') { writediv1('<span style="color:#cc0000"><b>'+pseudo+' :</b>Choisissez un pseudo</span>'); return false; } if(pseudo != '') { if(pseudo.length<3 || pseudo.length>15) {writediv1('<span style="color:#cc0000"><b>'+pseudo+' :</b>Pseudo entre 5 et 30 caracteres</span>');return false;} else if(texte1 = file1('mod/inscriverif.php?pseudo='+escape(pseudo))) { if(texte1 == 1) {writediv1('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>'); return false;} else if(texte1 == 2) {writediv1('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>'); return true;} else writediv1(texte1); } } }
inscriverif.php

Code : Tout sélectionner

<?php include('../bdd.php'); // VERIFICATION $result = mysql_query("SELECT PseudoMemb FROM membres WHERE PseudoMemb='".$_GET["pseudo"]."'"); mysql_close(); if(mysql_num_rows($result)>=1) echo "1"; else echo "2"; ?>
je sais pas d ou ca vient :ajax , syntaxe, ...
si qulun peut maider :lol: