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 :

insérer des données avec mysql_query [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Par défaut
    Essai maintenant avec le dernier code que j'ai posté dans ma réponse précédente.

  2. #22
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut
    mandrake_of_mandregas,le résultat à l'écran c'est ça :

    "STEP 1 OK" "STEP 2 OK" "STEP 3 OK" "STEP 4 OK" "STEP 4 OK"

    mais pas d'enregistrement toujours dans la BD.

  3. #23
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Par défaut
    OK, Essai donc ceci et tu auras la requête qui s'affiche, tu pourras donc l'exécuter sur ton phpmyadmin
    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
    37
    38
    <?php
    if(isset($_POST['submit']))
    {
    	echo "STEP 1 OK<br>";
    	$id = htmlentities(trim($_POST['id']));
    	$nom = htmlentities(trim($_POST['nom']));
    	$prenom = htmlentities(trim($_POST['prenom']));
    	$fonction = htmlentities(trim($_POST['fonction']));
    	$service = htmlentities(trim($_POST['service']));
    	$pseudo = htmlentities(trim($_POST['pseudo']));
    	$password = htmlentities(trim($_POST['password']));
    	$repassword = htmlentities(trim($_POST['repassword']));
    	if (($id<>'') AND ($nom<>'') AND ($prenom<>'') AND ($fonction<>'') AND ($service<>'') AND ($pseudo<>'') AND ($password<>'') AND ($repassword<>''))
    	{
    		echo "STEP 2 OK<br>";
    		if($password==$repassword)
    		{
    			echo "STEP 3 OK<br>";
    			if (strlen($password)>4)
    			{
    				echo "STEP 4 OK<br>";
    				$pass_hache = sha1('gz'.$_POST['password']);
    				$connect = mysql_connect('localhost', 'root', 'bnetd') or die ('Impossible de se connnecter à la Base de Données');
    				$mabd = mysql_select_db('biblio');
    				$reg = mysql_query ("SELECT * FROM agent WHERE pseudo='$pseudo' AND password='$password'"); 
    				$psan = mysql_num_rows($reg);
    				if($psan==0)
    				{
    					echo "STEP 4 OK<br>";
    					mysql_query ("INSERT INTO agent (id,nom,prenom,fonction,service,pseudo,password) VALUES ('$id', '$nom', '$prenom', '$fonction', '$service', '$pseudo', '$password')");
    					echo "INSERT INTO agent (id,nom,prenom,fonction,service,pseudo,password) VALUES ('$id', '$nom', '$prenom', '$fonction', '$service', '$pseudo', '$password')"; // Tu peux recuperer cette requête et l'executer depuis phpmyadmin!
    					die ("Les données saisies ont été bien enregistrées. <a href='enregistrement_.php'> <strong> Nouvel Enregistrement </strong> </a>");
    				} else echo "Ce pseudo est déjà utilisé.";							
    			}else echo "Le mot de passe est trop court. Veuillez saisir un mot de passe de plus de quatre (04) carartères. ";
    		}else echo "Les deux mots de passe doivent être identiques.";
    	}else echo "Veuillez renseigner tous les champs";
    }
    ?>

  4. #24
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 111
    Par défaut
    Citation Envoyé par tikigod Voir le message
    Les amis j'ai omis de vous le dire, mais avant de tenter (désespéramment) remplir ma BD via un formulaire, j'y ai déjà inséré des données via le mode console. Alors est-ce que c'est pas le fait d'avoir procédé ainsi qui me pose des soucis maintenant ? Merci encore pour vos contributions.
    Après avoir modifier ton code avec LE NOM DES ELEMENTS DE TA TABLE
    comme la signalé mandrake_of_mandregas
    si ça ne fonctionne toujours pas
    quelles sont tes cles primaires dans ta table?...

  5. #25
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut
    j'ai testé le dernier code c'est toujours pareil. le resultat s'affiche à l'écran mais toujours rien dans la BD.

  6. #26
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Par défaut
    Peux tu nous mettre ce qui s'affiche à l'écran?

    et comme te l'a demandé undead001, quelle est la clé primaire de ta table agent, et est ce qu'elle est autoincrément?

    si c'est id alors, tu modifie ta requête insert en enlevant les id :

    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
    37
    38
    <?php
    if(isset($_POST['submit']))
    {
    	echo "STEP 1 OK<br>";
    	$id = htmlentities(trim($_POST['id']));
    	$nom = htmlentities(trim($_POST['nom']));
    	$prenom = htmlentities(trim($_POST['prenom']));
    	$fonction = htmlentities(trim($_POST['fonction']));
    	$service = htmlentities(trim($_POST['service']));
    	$pseudo = htmlentities(trim($_POST['pseudo']));
    	$password = htmlentities(trim($_POST['password']));
    	$repassword = htmlentities(trim($_POST['repassword']));
    	if (($id<>'') AND ($nom<>'') AND ($prenom<>'') AND ($fonction<>'') AND ($service<>'') AND ($pseudo<>'') AND ($password<>'') AND ($repassword<>''))
    	{
    		echo "STEP 2 OK<br>";
    		if($password==$repassword)
    		{
    			echo "STEP 3 OK<br>";
    			if (strlen($password)>4)
    			{
    				echo "STEP 4 OK<br>";
    				$pass_hache = sha1('gz'.$_POST['password']);
    				$connect = mysql_connect('localhost', 'root', 'bnetd') or die ('Impossible de se connnecter à la Base de Données');
    				$mabd = mysql_select_db('biblio');
    				$reg = mysql_query ("SELECT * FROM agent WHERE pseudo='$pseudo' AND password='$password'"); 
    				$psan = mysql_num_rows($reg);
    				if($psan==0)
    				{
    					echo "STEP 4 OK<br>";
    					mysql_query ("INSERT INTO agent (nom,prenom,fonction,service,pseudo,password) VALUES ( '$nom', '$prenom', '$fonction', '$service', '$pseudo', '$pass_hache')");
    					echo "INSERT INTO agent (nom,prenom,fonction,service,pseudo,password) VALUES ('$nom', '$prenom', '$fonction', '$service', '$pseudo', '$password')"; // Tu peux recuperer cette requête et l'executer depuis phpmyadmin!
    					die ("Les données saisies ont été bien enregistrées. <a href='enregistrement_.php'> <strong> Nouvel Enregistrement </strong> </a>");
    				} else echo "Ce pseudo est déjà utilisé.";							
    			}else echo "Le mot de passe est trop court. Veuillez saisir un mot de passe de plus de quatre (04) carartères. ";
    		}else echo "Les deux mots de passe doivent être identiques.";
    	}else echo "Veuillez renseigner tous les champs";
    }
    ?>
    Au fait, la variable $pass_hache elle sert à quoi? ne devrais tu pas l'utiliser dans tes requêtes à la place de $password?

  7. #27
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut
    Alors voici le résultat à l'écran :

    STEP 1 OK
    STEP 2 OK
    STEP 3 OK
    STEP 4 OK
    STEP 4 OK
    INSERT INTO agent (idprojeteur,nomprojeteur,prenomprojeteur,fonctionprojeteur,serviceprojeteur,pseudo,password) VALUES ('1000E', 'DIOMANSIE', 'MAMA', 'COMPTABLE', 'COMPTABILITE', 'diomansie1415mama', 'diomansie1415mama')
    Effectivement c'est id la clé primaire mais il n'est autoincrementé.

  8. #28
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Par défaut
    Citation Envoyé par tikigod Voir le message
    Alors voici le résultat à l'écran :

    STEP 1 OK
    STEP 2 OK
    STEP 3 OK
    STEP 4 OK
    STEP 4 OK
    INSERT INTO agent (idprojeteur,nomprojeteur,prenomprojeteur,fonctionprojeteur,serviceprojeteur,pseudo,password) VALUES ('1000E', 'DIOMANSIE', 'MAMA', 'COMPTABLE', 'COMPTABILITE', 'diomansie1415mama', 'diomansie1415mama')
    Effectivement c'est id la clé primaire mais il n'est autoincrementé.
    tu devrais passer par PhpMyadmin et executer :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO agent (idprojeteur,nomprojeteur,prenomprojeteur,fonctionprojeteur,serviceprojeteur,pseudo,password) VALUES ('1000E', 'DIOMANSIE', 'MAMA', 'COMPTABLE', 'COMPTABILITE', 'diomansie1415mama', 'diomansie1415mama')

    Je te repose la question : Au fait, la variable $pass_hache elle sert à quoi? ne devrais tu pas l'utiliser dans tes requêtes à la place de $password?

  9. #29
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut
    La clé primaire id n'est auto-incrémentée parce qu'elle est de type VARCHAR

    Elle devait de me servir à "hasher" le mot de passe. mais vue qu'elle ne fonctionne pas elle aussi, je l'ai supprimé. Le résultat est toujours identique.

  10. #30
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Par défaut
    as tu executer la requête sur phpmyadmin?

    Tu devrais avoir soit une insertion soit une erreur, et là ça pourrait devenir plus clair.

  11. #31
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut
    L'exécution de cette requete sur phpmyadmin passe mais je souhaiterais le faire via un formulaire.

  12. #32
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 111
    Par défaut
    Citation Envoyé par tikigod Voir le message
    Elle devait de me servir à "hasher" le mot de passe. mais vue qu'elle ne fonctionne pas elle aussi, je l'ai supprimé. Le résultat est toujours identique.
    crypt
    la fonction crypt est facile à utiliser...
    dans ta base de données tu utilise crypt($mot_de_pass_utilisateur)
    et pour vérifier si ton utilisateur à entré son mot de passe correctement tu as juste à faire:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(crypt($mot_de_pass_entre,$mot_de_pass_bdd)==$mot_de_pass_bdd)
    {
        echo "mot de pass ok";
    }else{
        echo "mot de pass erroné";
    }

    De plus as tu essayé
    if (!mysql_query ("INSERT INTO VALUES ('$id', '$nom', '$prenom', '$fonction', '$service', '$pseudo', '$password')") {
    echo mysql_error();
    }

    Code HTML : 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
    37
    38
    39
    40
    41
    42
    <?php
    if(isset($_POST['submit']))
    {
            echo "STEP 1 OK<br>";
            $id = htmlentities(trim($_POST['id']));
            $nom = htmlentities(trim($_POST['nom']));
            $prenom = htmlentities(trim($_POST['prenom']));
            $fonction = htmlentities(trim($_POST['fonction']));
            $service = htmlentities(trim($_POST['service']));
            $pseudo = htmlentities(trim($_POST['pseudo']));
            $password = htmlentities(trim($_POST['password']));
            $repassword = htmlentities(trim($_POST['repassword']));
            if (($id<>'') AND ($nom<>'') AND ($prenom<>'') AND ($fonction<>'') AND ($service<>'') AND ($pseudo<>'') AND ($password<>'') AND ($repassword<>''))
            {
                    echo "STEP 2 OK<br>";
                    if($password==$repassword)
                    {
                            echo "STEP 3 OK<br>";
                            if (strlen($password)>4)
                            {
                                    echo "STEP 4 OK<br>";
                                    $pass_hache = sha1('gz'.$_POST['password']);
                                    $connect = mysql_connect('localhost', 'root', 'bnetd') or die ('Impossible de se connnecter à la Base de Données');
                                    $mabd = mysql_select_db('biblio');
                                    $reg = mysql_query ("SELECT * FROM agent WHERE pseudo='$pseudo' AND password='$password'"); 
                                    $psan = mysql_num_rows($reg);
                                    if($psan==0)
                                    {
                                            echo "STEP 4 OK<br>";
                                            if (!mysql_query ("INSERT INTO agent (nom,prenom,fonction,service,pseudo,password) VALUES ( '$nom', '$prenom', '$fonction', '$service', '$pseudo', '$pass_hache')"))
                                            {
                                            echo  mysql_error();
                                            }else{
                                            echo "INSERT INTO agent (nom,prenom,fonction,service,pseudo,password) VALUES ('$nom', '$prenom', '$fonction', '$service', '$pseudo', '$password')"; // Tu peux recuperer cette requête et l'executer depuis phpmyadmin!
                                            }
                                            die ("Les données saisies ont été bien enregistrées. <a href='enregistrement_.php'> <strong> Nouvel Enregistrement </strong> </a>");
                                    } else echo "Ce pseudo est déjà utilisé.";                                                   
                            }else echo "Le mot de passe est trop court. Veuillez saisir un mot de passe de plus de quatre (04) carartères. ";
                    }else echo "Les deux mots de passe doivent être identiques.";
            }else echo "Veuillez renseigner tous les champs";
    }
    ?>

  13. #33
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut
    Salut l'ami, ce code ne fonctionne pas malheureusement.

  14. #34
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 111
    Par défaut
    Message affiché?

  15. #35
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut
    Salut voici le message affiché :

    STEP 1 OK
    STEP 2 OK
    STEP 3 OK
    STEP 4 OK
    STEP 5 OK
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COMPTABILITE', 'etudedetracesroutiers', 'dcheick', '061205314fefacf658f50204107343652f'

  16. #36
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 111
    Par défaut
    Comme le dit ouvertement le retour de l'erreur, c'est dans ta requète le problème
    essaye ce code, et post moi la réponse que j'analyse...
    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
    37
    38
    39
    40
    41
    42
    <?php
    if(isset($_POST['submit']))
    {
    	echo "STEP 1 OK<br>";
    	$id = htmlentities(trim($_POST['id']));
    	$nom = htmlentities(trim($_POST['nom']));
    	$prenom = htmlentities(trim($_POST['prenom']));
    	$fonction = htmlentities(trim($_POST['fonction']));
    	$service = htmlentities(trim($_POST['service']));
    	$pseudo = htmlentities(trim($_POST['pseudo']));
    	$password = htmlentities(trim($_POST['password']));
    	$repassword = htmlentities(trim($_POST['repassword']));
    	if (($id<>'') AND ($nom<>'') AND ($prenom<>'') AND ($fonction<>'') AND ($service<>'') AND ($pseudo<>'') AND ($password<>'') AND ($repassword<>''))
    	{
    		echo "STEP 2 OK<br>";
    		if($password==$repassword)
    		{
    			echo "STEP 3 OK<br>";
    			if (strlen($password)>4)
    			{
    				echo "STEP 4 OK<br>";
    				$pass_hache = sha1('gz'.$_POST['password']);
    				$connect = mysql_connect('localhost', 'root', 'bnetd') or die ('Impossible de se connnecter à la Base de Données');
    				$mabd = mysql_select_db('biblio');
    				$reg = mysql_query ("SELECT * FROM agent WHERE pseudo='$pseudo' AND password='$password'"); 
    				$psan = mysql_num_rows($reg);
    				if($psan==0)
    				{
    					echo "STEP 4 OK<br>";
    					if (!mysql_query ("INSERT INTO agent (nom,prenom,fonction,service,pseudo,password) VALUES ( '$nom', '$prenom', '$fonction', '$service', '$pseudo', '$pass_hache')"))
                                            {
                                            echo  mysql_error()."<br />Avec la requete : INSERT INTO agent (nom,prenom,fonction,service,pseudo,password) VALUES ( '$nom', '$prenom', '$fonction', '$service', '$pseudo', '$pass_hache')";
                                            }else{
    					echo "INSERT INTO agent (nom,prenom,fonction,service,pseudo,password) VALUES ( '$nom', '$prenom', '$fonction', '$service', '$pseudo', '$pass_hache')"; // Tu peux recuperer cette requête et l'executer depuis phpmyadmin!
                                            }
    					die ("Les données saisies ont été bien enregistrées. <a href='enregistrement_.php'> <strong> Nouvel Enregistrement </strong> </a>");
    				} else echo "Ce pseudo est déjà utilisé.";							
    			}else echo "Le mot de passe est trop court. Veuillez saisir un mot de passe de plus de quatre (04) carartères. ";
    		}else echo "Les deux mots de passe doivent être identiques.";
    	}else echo "Veuillez renseigner tous les champs";
    }
    ?>

  17. #37
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut
    Salut voici le message qui s'affiche à l'écran après exécution du code :

    STEP 4 OK
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';pseudo,password) VALUES ('DIALLO', 'CHEICK', 'Comptable',' at line 1
    Avec la requete : INSERT INTO agent (idprojeteur, nomprojeteur,prenomprojeteur,fonctionprojeteur,serviceprojeteur,pseudo,password) VALUES ('DIALLO', 'CHEICK', 'Comptable', 'Scolarite', '2', 'dcheick', '061205314fefacf658f50204107343652fc57bb9')

  18. #38
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 111
    Par défaut
    Tu as copié collé?
    Car je ne vois pas d'où sort le ";" dans
    near ';pseudo,password) VALUES ('DIALLO', 'CHEICK', 'Comptable',' at line 1
    Je n'arrive pas à t'aiguiller plus... bovino, je vois que tu suis le post, tu pourrais m'éclairer stp?
    car apars le problème du ";" qui sort de nul part, je ne vois plus là...

  19. #39
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    j'ai repris ton code en le commentant :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?php
     
    if (isset($_POST['submit']))
    {
        echo 'STEP 1 OK<br />';
        $data = array_filter(array_map('trim', $_POST));
     
        // on n'utilise pas htmlentities() pour échapper des données avant de les
        // enregistrer en base de données
        // htmlentities() ne doit servir que pour échapper les données HTML à l'affichage
        // pour MYSQL -> tu as mysql_real_escape_string()
     
        // on vérifie si toutes les clés sont présentes
        $diff = array_diff(array('id', 'nom', 'prenom', 'fonction', 'service', 'pseudo', 'password', 'repassword'), array_keys($data));
     
        if (empty($diff))
        {
            echo 'STEP 2 OK<br />';
     
            if ($data['password'] === $data['repassword'])
            {
                echo 'STEP 3 OK<br />';
     
                if (strlen($data['password']) > 4)
                {
                    echo 'STEP 4 OK<br />';
     
                    $cnx = mysql_connect('localhost', 'root', 'bnetd') or die ('Impossible de se connnecter à la Base de Données');
                    mysql_select_db('biblio');
     
                    // on encode le mot de passe
                    $data['password'] = sha1('gz'.$data['password']);
     
                    // on échappe toutes les données pour MYSQL en une seule passe
                    $escaped = array_map('mysql_real_escape_string', $data);
                    // on vérifie si le pseudo et le mot de passe encodé n'existe pas
                    // c'est étrange, normalement on ne s'assure de l'existence que du pseudo
                    // et en plus, on utilise l'email à la place du pseudo
                    $sql =
    <<<SQL
    SELECT
        COUNT(*) AS nb_rec
      FROM agent
     WHERE
        agent        = '{$escaped['pseudo']}'
        AND password = '{$escaped['password']}'
    SQL;
                    $qry = mysql_query($sql);
                    $nb  = mysql_result($qry, 0);
     
                    if ($nb == 0)
                    {
                        echo 'STEP 5 OK<br />';
     
                        $sql =
    <<<SQL
    INSERT INTO agent (
        nom, prenom, fonction, service, pseudo, password
    ) VALUES (
        '{$escaped['nom']}',
        '{$escaped['prenom']}',
        '{$escaped['fonction']}',
        '{$escaped['service']}',
        '{$escaped['pseudo']}',
        '{$escaped['password']}'
    )
    SQL;
                        $msg = (mysql_query($sql))
                                   ? 'Les données saisies ont été bien enregistrées. <a href="enregistrement_.php"><strong> Nouvel Enregistrement </strong></a>'
                                   : mysql_error();
                    }
                    else
                    {
                        $msg = 'Ce pseudo est déjà utilisé.';    
                    }
                }
                else
                {
                    $msg = 'Le mot de passe est trop court. Veuillez saisir un mot de passe de plus de quatre (04) carartères.';
                }
            }
            else
            {
                $msg = 'Les deux mots de passe doivent être identiques.';
            }
        }
        else
        {
            $msg = 'Veuillez renseigner tous les champs';
        }
     
        echo $msg;
    }
    Rien testé alors croisage des doigts

  20. #40
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut
    Salut les Amis, le problème que je vous ai soumis est maintenant résolu.
    En fait, le dossier "data" (.../Easyphp/mysql/data) qui contient normalement toutes les base de données était vide. Je ne sais pour quelle raison la Base de données que j'ai créée n'y figurait pas.

    J'ai donc désinstallé Easyphp puis l'ai réinstallé plus tard et comme par magie, mon code (celui que je vous ai soumis au départ) s'est mis à fonctionner normalement.

    Le dernier code proposé par undead001 fonctionne également. Je n'ai testé toutes les autres propositions faites par les amis mais je parie qu'elles fonctionnent aussi.

    Merci infiniment à undead001 et mandrake_of_mandregas pour leurs inestimables contributions.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Insérer des données avec une boucle while
    Par adnanedelphi dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 20/11/2011, 13h24
  2. Réponses: 3
    Dernier message: 08/06/2011, 10h36
  3. [MySQL] Insérer des données dans une table avec Foreach
    Par Gogad dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/04/2010, 08h53
  4. Réponses: 3
    Dernier message: 14/07/2009, 13h45
  5. [MySQL] Insérer des données avec identifiant autoincrémenté
    Par jrosenzw dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/04/2009, 15h36

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