IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

vérification de l'existance d'un login "php avec jquery"


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Par défaut vérification de l'existance d'un login "php avec jquery"
    Bonjour;
    j'ai un problème dans mon petit formulaire de création de compte.
    j'ai utilisé jquery pour vérifier mes champs et même temps vérifier si le login saisie n'existe pas sur la base de donnée, pour cet effet; j'ai évidement mis en place 3 fichiers sources:
    fichier html : contient le formulaire (id=login pour le champ login).
    fichier js (bien sûr : déjà défini dans le fichier HTML avec le code si dessous):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    $(document).ready(function(){
    	$("#creercompte").click(function(){
    		var valide = true;
    		var login = $("#login").val();
    		///////////////////////////////////
    		// VERIFICATION LOGIN            //
    		///////////////////////////////////
    		if(login == ""){
    			$("#login").next().show().text(" Veuillez saisir un Login");
    			valide = false;
    		}else if(login != ""){
    			$("#login").keyup(function(){
    				var user = $("#login").val();
    				var DATA = 'login=' + user ;
    				$.ajax({
    					type:'GET',
    					url:'traitement.php',
    					data:DATA,
    					success: function(server_response){
    						$(".login").html(server_response).show();
    					}
    				});				
    			});
    		}else if(!login.match(/^[a-zàéèA-Z0-9\.@\-_]*$/i)){
    			$("#login").next().show().text(" Login non valide (des alphanumériques + (. - _ @))");
    		}else{
    			$("#login").next().hide();
    		}
    		return valide;
     
    });
    et le fichier traitement.php qui contient le requete simple "SELECT login FROM etudiants WHERE login = '$login'" dont $login est la valeur récupéré par GET.
    le formulaire fonctionne bien , le problème c'est que même il me donne un message (dans la classe .login à droit du champs) "login existe déjà dans la BD";l'envoi s'effectu !!
    comment je pourais arréter l'envoi des données sans ce cas !?
    merci d'avance.

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Peux-tu nous montrer ton code HTML et ton script PHP.

    Merci.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Par défaut
    le code html est simple aussi le script php:
    Html:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form action="traitement.php" method="post" name="creercompte">
    <table width="792" border="0" align="center">
      <tr>
        <td width="224" align="right">login: </td>
        <td width="533" align="left"><input name="loginc" type="text" id="loginc" style="width:250px;" /><span class="loginc" style="color:#F00;"></span></td>
      </tr>
      <tr align="right">
        <td colspan="2" align="center"><input id="creercompte" name="creercompte" type="submit" value="Créer mon compte" /></td>
        </tr>
    </table>
    </form>
    traitement.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php 
    	include("connexion.php");
    	if(isset($_POST)){
    		extract($_POST);
    		$login = $loginc;
    		$tab = array(
    			'login'=>$login,
    			);
    		$rqt= "INSERT INTO etudiants (login) VALUES (:login)";
    		$req = $bd->prepare($rqt);
                    $req->execute($tab);
    	}
    ?>

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut
    dont $login est la valeur récupéré par GET
    D'après le code, ce n'est pas en GET mais en POST que les données sont récupérées dans traitement.php

    Dans traitement.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(isset($_POST)){
        extract($_POST);
        ... etc ...
    }
    Essai de remplacer par $_GET (ou alors de changer de méthode d'envoi coté jQuery en POST)

    Petite remarque au passage.
    Je te déconseille d'utiliser la fonction extract() dans ce cadre là, ceci revient quasi au même que la directive register_globale du php.ini soit définie à ON.
    C'est un manque de sécurité de procéder ainsi.
    Dans ce script tu as besoin d'une seule donnée (loginc), et bien récupère la avec $_POST['loginc'] (ou $_GET['loginc'] selon la méthode utilisée).

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Par défaut
    tu as raison; mais j'ai mal présenté l bon script :
    le voilà le contenu du script php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php 
    	include("connexion.php");
    	if(isset($_GET['login'])){
    		$login = $_GET['login'];
    		try{
    			$sql = "SELECT login FROM etudiants WHERE login = '$login'";
    			$req = $bd->query($sql);		
    			$count = $req->rowcount();
    			if($count == 1){
    				echo 'Login existe déjà';
     
    			}else{
    				echo 'Login Valide';
    			}		
    		}catch(PDOException $e){
    			echo "Erreur :<br>".$e->getMessage();
    		}
    	}
    ?>
    ce script sert à vérifier l'existance du login ou pas; si c'est le cas il affiche "login existe déjà" sinon on peut ajouter sans problème le compte dans la base de donnée. et c'est mon problème, (même si le login existe il ajoute la compte!!)
    merci à votre comprehension.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#login").keyup(function(){
    j'espere que c'est pas traitement.php qui fait un nouveau login à chaque keyup qd même

    Bon je résume :

    afficher formulaire avec juste login :
    bouton valider = vérification du login
    -si login existe => afficher erreur ( ou formulaire de connexion + vous avez perdu votre mot de passe )
    si login existe pas =>
    afficher le reste du formulaire ( laisser le champs login mais en disabled)
    bouton valider = vérification des autres champs
    si champs mal rempli => message erreur
    si champs bien rempli => insertion bdd

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Par défaut
    Bonne idée;
    comment je pourais donc mis en place la condition dans le fichier js !?

Discussions similaires

  1. [MySQL] Vérification si user existe déjà
    Par xender dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 25/04/2006, 14h57
  2. [MySQL] Vérification de l'existance d'un Pseudo
    Par Nadd dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/03/2006, 21h25
  3. Vérification de l'existance d'un fichier via HTTP
    Par mouste79 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 02/02/2006, 14h26
  4. Vérification de l'existence d'un lien / url (link checker)
    Par strek100 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/10/2005, 07h34
  5. Vérification de l'existence d'un fichier
    Par alfu dans le forum ASP
    Réponses: 2
    Dernier message: 06/10/2004, 13h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo