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 :

Plugin Validation Engine Problème reponse PHP


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Plugin Validation Engine Problème reponse PHP
    Bonjour,
    Je m'amuse avec un plugin de Jquery qui se nomme "ValidationEngine". Il est très pratique tout fonctionne mais j'aimerais l'améliorer. Ça fait trois jours que je cherche plusieurs solutions sur le net. Je vous explique mon petit problème.
    J'utilise l'ajax pour essayer de me connecter sur ma base de données et vérifier si le pseudo est libre. Mais le soucis c'est que une fois que j'ajoute ou modifie une ligne dans le fichier .php plus rien ne fonctionne. Quand je rentre un valeur, il reste bloqué sur "* Validating please wait".

    Code HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php echo form_open('user/registration', array('id' => 'SignupForm')); ?>
     <input type="email" id="email_adress"  class="validate[required,custom[onlyLetterNumber],maxSize[20],ajax[ajaxUserCallPhp]] text-input" style="width:305px;" name="email_adress" placeholder="Pseudo" value="<?php echo set_value('user_name'); ?>" />
    Code JS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    "ajaxUserCallPhp": {
        "url": "../../phpajax/ajaxValidateFieldUser.php",
        // you may want to pass extra data on the ajax call
        "extraData": "name=eric",
        // if you provide an "alertTextOk", it will show as a green prompt when the field validates
        "alertTextOk": "* This username is available",
        "alertText": "* This user is already taken",
        "alertTextLoad": "* Validating please wait"
    },
    Code 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php
    $validateValue=$_GET['fieldValue'];
    $validateId=$_GET['fieldId'];
     
    $validateError= "This username is already taken";
    $validateSuccess= "This username is available";
     
    /* RETURN VALUE */
    $arrayToJs = array();
    $arrayToJs[0] = $validateId;
     
    /*Database Config+Connection*/
    $username = "root";
    $password = "";
    $hostname = "localhost";
     
    $dbhandle = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL");
    $selected = mysql_select_db("swifly",$dbhandle) or die ("Could not select schema");
    $sql_checkusername = "SELECT membres_email FROM membres WHERE membres_email='".$validateValue."'";
    $result=mysql_query($sql_checkusername );
    $count=mysql_num_rows($result);
     
    if($count>=1){
     
    $arrayToJs[1] = false;
    echo json_encode($arrayToJs);
     
    } else else{
     
      $arrayToJs[1] = false;
      echo json_encode($arrayToJs);     // RETURN ARRAY WITH ERROR
     
    }
    }
    }
    ?>
    Voici le code original qui fonction mais sans base de données :
    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
    <?php
     
    /* RECEIVE VALUE */
    $validateValue=$_REQUEST['fieldValue'];
    $validateId=$_REQUEST['fieldId'];
     
     
    $validateError= "This username is already taken";
    $validateSuccess= "This username is available";
     
     
     
    	/* RETURN VALUE */
    	$arrayToJs = array();
    	$arrayToJs[0] = $validateId;
     
    if($validateValue =="karnius"){		// validate??
    	$arrayToJs[1] = true;			// RETURN TRUE
    	echo json_encode($arrayToJs);			// RETURN ARRAY WITH success
    }else{
    	for($x=0;$x<1000000;$x++){
    		if($x == 990000){
    			$arrayToJs[1] = false;
    			echo json_encode($arrayToJs);		// RETURN ARRAY WITH ERROR
    		}
    	}
     
    }
     
    ?>
    Merci, bonne journée à vous.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Euh... ligne 27 : } else else{ c'est normal ?

    je te conseille firebug pour tester ce genre de choses : http://eric-pommereau.developpez.com...irebug/#LV-B-1
    En l'occurrence, tu dois avoir un magnifique "FATAL Error" en retour de ton appel ajax

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Voilà j'ai corrifé en cherchant sur internet un peu avec les erreurs de FireBug

    Voici le code PHP de maintenant :

    Code :Sélectionner tout - Visualiser dans une fenêtre à part

    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
    32
    33
    34
    <?php
    $validateValue=$_GET['fieldValue'];
    $validateId=$_GET['fieldId'];
     
    $validateError= "This username is already taken";
    $validateSuccess= "This username is available";
     
    /* RETURN VALUE */
    $arrayToJs = array();
    $arrayToJs[0] = $validateId;
     
    /*Database Config+Connection*/
    $username = "root";
    $password = "";
    $hostname = "localhost";
     
    $dbhandle = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL");
    $selected = mysql_select_db("swifly",$dbhandle) or die ("Could not select schema");
    $sql_checkusername = "SELECT membres_email FROM membres WHERE membres_email='".$validateValue."'";
    $result=mysql_query($sql_checkusername );
    $count=mysql_num_rows($result);
     
    if($count>=1){
     
    $arrayToJs[1] = false;
    echo json_encode($arrayToJs);
     
    } else{
     
      $arrayToJs[2] = true;
      echo json_encode($arrayToJs);     // RETURN ARRAY WITH ERROR
     
    }
    ?>
    Maintenant il m'affiche bien si le champs est déjà pris mais il a encore un soucis. Si je rentre une donnée qui est libre dans la base de donnée il me dit qu'elle ne l'est pas.

    Voici l'erreur FireBug :


    Code :Sélectionner tout - Visualiser dans une fenêtre à part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    GET ../../phpajax/ajaxValidateFieldUser.php?fieldId=user_login&fieldValue=Username&_=1367833173696
    200 OK
    35ms	
    ParamsHeadersResponseHTMLJSON
    {"0":"user_login","2":false}
    true
    true
    false

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Euh... Fais attention tu renvoie $arrayToJs[2] = true; quand ça fonctionne et $arrayToJs[1] = false; quand ça échoue.
    ça ne devrait pas être $arrayToJs[1] dans les deux cas ?

Discussions similaires

  1. [Plugin] Plugin Validation Engine
    Par TheBleedz dans le forum jQuery
    Réponses: 4
    Dernier message: 07/05/2013, 16h39
  2. [AJAX] plugin Validation Engine
    Par TheBleedz dans le forum jQuery
    Réponses: 2
    Dernier message: 02/05/2013, 19h37
  3. [1.x] problème commandes php symfony plugin:publish-assets
    Par sylvain230 dans le forum Débuter
    Réponses: 0
    Dernier message: 09/03/2011, 14h16
  4. [XSD] Problème validation/compréhension xml/xsd PHP
    Par speedev dans le forum Valider
    Réponses: 3
    Dernier message: 03/12/2008, 14h02

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