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 :

mon formulaire d'inscrption


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut mon formulaire d'inscrption
    bonsoir tout le monde

    je suis étudiant en prémière année cycle d'ingénieur et j'ai besoin d'aide.

    Le probleme est que j'ai créé une base de donées 'gestion' dont voici la structure de ma table 'medecin'

    Nom : bdd.jpg
Affichages : 265
Taille : 187,7 Ko

    et j'essaye d’insérer les données provenant d'un formulaire dans cette base mais voici c'est qu'on m'affiche quand j'envoi des données

    Nom : formulaire.jpg
Affichages : 245
Taille : 98,8 Ko

    et j'arrive pas à la detecter alors j'espère avoir de l'aide ici

    voici l'extrait de mon code

    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
    <form method="POST" action = "<?= $_SERVER['PHP_SELF']?>">
      <table border="0" >
    	  <tr><td><label for = "pseudo">Pseudo </label></td>
    		  <td><input type= "text" name = "pseudo" id = "pseudo" /></td></tr>
    	  <tr><td><label for = "Nom">Nom </label> </td>
    		  <td><input type= "text" name = "Nom" id = "Nom" /></td></tr>
    	  <tr><td><label for = "prenom">Prenom </label></td>
    		  <td><input type= "text" name = "prenom" id = "prenom" /></td></tr>
    	  <tr><td><label for = "email">Adresse Eléctronique </label></td>
    		  <td><input type= "text" name = "email" id = "email" /></td></tr>
    	  <tr><td><label for = "Passe"> Mot de passe : </label></td>
    		  <td><input type= "password" name="Passe" id="Passe" /></td></tr>
          <tr><td><label for = "passe1">Confirmation du mot de passe : </label></td>
    		  <td><input type= "password" name="passe1" id="passe1" /> </td></tr>
    	  <tr><td colspan="2"> <input type="submit" value="inscription"/></td></tr>
      </table> 
    </form>
    <?php 
    	if (isset($_POST['pseudo'])&& isset($_POST['Nom']) && isset($_POST['prenom'])&& isset($_POST['email']) && isset($_POST['Passe']) && isset($_POST['passe1'])) {
    			$username  = htmlentities(trim($_POST['pseudo'])) ;
    			$nom       = htmlentities(trim($_POST['Nom']))    ;
    			$prenom    = htmlentities(trim($_POST['prenom'])) ;
    			$Email     = htmlentities(trim($_POST['email']))  ;
    			$passeword = htmlentities(trim($_POST['Passe']))  ;
    			$repeat    = htmlentities(trim($_POST['passe1'])) ;
    		    if(!empty($username) && !empty($nom)      && !empty($prenom)   && !empty($Email)    && !empty($passeword)&& !empty($repeat)) {
    				   if ($passeword == $repeat ) {
    					  $host     = "localhost" ;  
    					  $user     = "root" ;
    					  $password = "" ;
    					  // Connexion au serveur
    					  $connect = mysql_connect($host, $user,$password) or die("erreur de connexion au serveur") ;
    					  //connexion à la  base de données
    					  $mabase  = "gestion" ;
    					  mysql_select_db($mabase) or die("impossible de selectionner la base") ;
    					  //insertion des données dans la base de données 
    					  $table   = 'medecin' ;
    					  $sql = "INSERT INTO '$table' VALUES ('', '$username', '$passeword', '$nom', '$prenom', '$Email')" ;
    					  // on insere le tuple (mysql_query) et au cas où, on écrira un petit message d'erreur si la requête ne se passe pas bien (or die)
    					  $query = mysql_query ($sql) or die ( mysql_error() );
    					  if($query) { echo("L'insertion a été correctement effectuée") ; }
    					  else { echo("L'insertion à échouée") ; }
    					  // on ferme la connexion à la base
    					  //mysql_close();
    					}else echo "les deux mots de passe doivent etre identiques";
    				}
    			else echo "veuillez saisir tous les champs";
    		}
    ?>

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    finalement pour la requête j'ai vu l'arreur
    j'avais fait '$medecin' au lieu de $medecin dans ma requête
    mais maintenant les données s'insere dans la table mais l'avertissement
    Nom : warning.jpg
Affichages : 258
Taille : 46,4 Ko
    est toujours là!!
    aidez moi

  3. #3
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Tout est dans l'erreur : les fonctions mysql_* sont destinées à disparaître (elles seront supprimées !!). Actuellement, elles ne sont que DEPRECATED donc toujours utilisables.
    Je vous conseille de vous orienter vers MySQLI ou mieux encore, PDO.

    Néanmoins, pour répondre parfaitement à votre question, pour cacher cette erreur il faut changer l'error_reporting().
    Ajoutez ceci (en tout début de fichier, avant l'utilisation des fonctions mysql_*) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    error_reporting(E_ALL & ~E_DEPRECATED);
    ATTENTION, ce n'est pas une bonne façon de faire que de cacher les erreurs et utiliser les fonctions DEPRECATED !!!


    PS: Tiens, je relis le message.. j'avais jamais fait gaffe qu'il était même proposé dans le message d'erreur d'utiliser mysqli ou PDO =)

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup darkstar123456 pour votre excellente réponse, je n'avait pas appris MySQLi et PDO mais je viens de suivre de tutos sur et j'ai pu résoudre le problème par les PDO, alors encore une fois merci

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonjour.
    Si vous avez réussi à comprendre PDO et l'appliquer en une journée Bravo !

    Néanmoins votre code soulève bon nombre d'interrogations :

    - Apparemment vous ne vérifiez rien, sauf que toutes les données soient présentes, et que les 2 'passwords' concordent.
    - C'est insuffisant : Vous allez inévitablement rentrer du 'garbage' dans votre table "medecin"...
    - Quand vous avez une erreur (1 ou plusieurs champs vides, ou 'passwords' qui diffèrent) vous perdez toute votre saisie...

    if ( isset($_POST['pseudo']) && isset($_POST['Nom']) && isset($_POST['prenom']) && isset($_POST['email']) etc.. etc...)
    - Cette instruction est irréfléchie.
    - Si une seule de ces variables existe, les autres existent aussi, c'est tout ou rien ! (cela veut dire qu'on a appuyé sur "inscription", elles sont alors peut-être vides mais elles existent toutes).
    - le seul test if ( isset($_POST['pseudo']) ) est suffisant !... (ou n'importe quelle autre zone de saisie)
    - si cela vous choque : vous pouvez aussi tester " if ( ! empty($_POST) ) " c'est la même chose....

    Cdlt

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta remarque iakou mais j'ai fais ça juste pour tester, en réalité je vais gérer la validité données saisies par le jquery avant d'envoyer le formulaire, en php je vais juste tester que le bouton a été appuyer en donnant un attribut name="submit" au boutton d'envoi puis tester l'existance de cette variable en PHP if (isset($_POST['submit']))

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonsoir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['submit'])) {   }
    risque de poser problème :

    - Je ne suis pas sûr que array $_POST contienne qqchose pour le submit (car ce n'est pas un champ de saIsie, mais une TOUCHE)...

    - Testez n'importe quel champ de saisie, ou faites plutôt : if ( empty($_POST) ) { }, qui veut bien dire que array $_POST n'a pas été chargé...

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/03/2006, 16h46
  2. ie ne retrouve pas un element de mon formulaire
    Par duge dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/02/2006, 09h50
  3. la date et heure sur mon formulaire
    Par azde7015 dans le forum Access
    Réponses: 11
    Dernier message: 07/02/2006, 10h40
  4. [Debutant(e)]mise à jour de mon formulaire via JSP
    Par kouadjalain dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 11/08/2004, 15h43

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