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 :

Incompréhension formulaire Methode MVC.


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 38
    Par défaut Incompréhension formulaire Methode MVC.
    Bonjour à tous.
    Mon code ne fonctionne pas et je ne comprends pas pourquoi.
    Je suis conscient que mon MVC n'est pas parfait, qu'il pourrait être améliorer mais comme je débute, j'essaye de comprendre.
    Je ne sais pas si je n'ai pas bien créer ma base de donnee mais je pense que ça devrait fonctionner, je ne comprend pas mon erreur.
    Voici mon code

    Formulaire.php (Ma vue)
    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
     
    <!doctype html>
    <html lang="fr">
    <head>
      <meta charset="utf-8">
      <title>Titre de la page</title>
      <link rel="stylesheet" href="style.css">
      <script src="script.js"></script>
    </head>
    <body>
      <div align='center'> 
    <h2>Inscription</h2> <br> <br> <br>
    <form method="POST"    action="" >  
    <table>
    <tr>
    <td> 
    <label for='nom' name= 'nom'> Nom*:  </label>    
     </td></tr>
    <tr>
    <td> 
    <input type= 'text' placeholder='votre nom'name='nom'/>
    <tr>
    <td> 
     
     
     
    <tr>
    <td> 
    <label for='prenom' name= 'prenom'> Prenom*:  </label>    
     </td></tr>
    <tr>
    <td> 
    <input type= 'text' placeholder='prenom' name='prenom'/>
    <tr>
    <td> 
     
     
     
    <tr>
    <td> 
    <label for='age' name= 'age'> Age*:  </label>    
     </td></tr>
    <tr>
    <td> 
    <input type= 'text' placeholder='Votre age' name='Age'/>
    <tr>
    <td> 
     
     
     
     
     
    </table>
    <input type='submit' name='inscription' value="je m'inscris"/>
    </form> <?php
    	         if(isset($erreur)) {
    	            echo '<font color="red">'.$erreur."</font>";
    	         }
    	         ?>
     
     
    </div>
    </body>
    </html>

    Mon model Model.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
     
    <?php
    $bdd = new PDO('mysql:host=127.0.0.1;dbname=formulaire', 'root', '');
     
    	if(isset($_POST['inscription'])){
    $nom = htmlspecialchars($_POST['nom']);
    	   $prenom = htmlspecialchars($_POST['prenom']);
    	   $age = htmlspecialchars($_POST['age']);
     
     if(!empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['age']) ){
    	  $nomlength = strlen($nom);
    	  if($nomlength <= 255){
     
    		  $insertmbr = $bdd->prepare("INSERT INTO membres(nom, prenom, age) VALUES(?, ?, ?)");
    	                     $insertmbr->execute(array($nom, $prenom, $age));
    	                     $erreur = "Votre compte a bien été créé ! <a href=\"connexion.php\">Me connecter</a>";
     
     
    	  }else{
     
     
    		   $erreur = "Votre nom semble trop long!";
    	  }
     }else{
     
    	 $erreur = "Il semblerait que vous n'ayez pas remplis l'ensemble des champs!";
     }
     
    		else{ 
    	$erreur = "Tous les champs doivent être complétés !";}}
     
    	?>


    Mon controller Controller.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
     require('Models/model.php');
     require('Vues/formulaire.php');
     
     
    ?>

    Tout aide, toute explication sera la bienvenue.
    Cordialement.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    qu'est ce qui ne fonctionne pas ? donnez nous tous les détails et le débugage.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 38
    Par défaut
    Citation Envoyé par mathieu Voir le message
    qu'est ce qui ne fonctionne pas ? donnez nous tous les détails et le débugage.
    Bonjour. En faite, mon navigateur n'affiche aucun message d'erreur. Tout semble fonctionner correctement sauf que les valeurs que je tente d'insérer en base de données, ne s'inserent pas. Ma table membres reste vide.

    Après, un détail qui a surement son importance, lorsque j'ai crée ma table, j'ai eu un message d'erreur de la part de PhpMyAdmin qui est le suivant:

    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
     
     
    Aucun partitionnement n'est défini
     
    Notice in .\templates\tables\structure\display_table_stats.phtml#4
    Undefined index: TABLE_COMMENT
     
    Backtrace
    .\libraries\Template.php#152: include(.\templates\table\structure\display_table_stats.phtml)
    .\libraries\controllers\table\TableStructureController.php#1391: PMA\libraries\Template->render(array)
    .\libraries\controllers\table\TableStructureController.php#1265: PMA\libraries\controllers\table\TableStructureController->getTableStats()
    .\libraries\controllers\table\TableStructureController.php#356: PMA\libraries\controllers\table\TableStructureController->displayStructure(
    array,
    array,
    array,
    ,
    array,
    array,
    )
    .\tbl_structure.php#47: PMA\libraries\controllers\table\TableStructureController->indexAction()
    Notice in .\templates\table\structure\display_table_stats.phtml#6
     Undefined index: TABLE_COMMENT
     
     
     
    Backtrace
     
    .\libraries\Template.php#152: include(.\templates\table\structure\display_table_stats.phtml)
    .\libraries\controllers\table\TableStructureController.php#1391: PMA\libraries\Template->render(array)
    .\libraries\controllers\table\TableStructureController.php#1265: PMA\libraries\controllers\table\TableStructureController->getTableStats()
    .\libraries\controllers\table\TableStructureController.php#356: PMA\libraries\controllers\table\TableStructureController->displayStructure(
    array,
    array,
    array,
    ,
    array,
    array,
    )
    .\tbl_structure.php#47: PMA\libraries\controllers\table\TableStructureController->indexAction()


    Puis est apparu sur l'ecran quelques temps apres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Une erreur a été détectée et un rapport d'erreur a été généré, mais son envoi a échoué. En cas de problème, merci de soumettre manuellement un rapport de bogue. Merci de rafraichir la page

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Dans ton formulaire ton champ âge se nomme "Age"
    Par contre côté PHP tu testes "age"



    PS : attention, l'âge dépend de la date de saisie, mieux vaut demander la date ou l'année de naissance

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 38
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Dans ton formulaire ton champ âge se nomme "Age"
    Par contre côté PHP tu testes "age"



    PS : attention, l'âge dépend de la date de saisie, mieux vaut demander la date ou l'année de naissance
    Oui, j'ai fais la modification mais toujours pareil.

Discussions similaires

  1. [MySQL] Formulaire method GET et php
    Par alas70 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/12/2008, 21h48
  2. Réponses: 6
    Dernier message: 17/06/2008, 12h04
  3. Formulaire et MVC
    Par jbin-1 dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2008, 11h19
  4. pb formulaire method POST
    Par salsero1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/05/2007, 19h30
  5. Réponses: 2
    Dernier message: 06/07/2006, 08h22

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