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 :

Envoyer la valeur d'une variable html vers BDD


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2021
    Messages : 8
    Par défaut Envoyer la valeur d'une variable html vers BDD
    Bonjour,

    je suis enseignant et j'ai créé un exercice en ligne auto-corrigé et noté

    la note est contenue dans une variable 'score' html

    en fin d'exercice j'aimerais que les élèves "m'envoient" leur note.

    Pour cela j'ai créé un formulaire pour qu'ils renseignent leurs nom, prénom et classe.

    je récupére les données du formulaire via un fichier php et je les envoie sur une base de données. Tout ceci fonctionne.

    Mais je n'arrive pas à joindre la note. J'ai essayé avec Post, get, $_session, je n'arrive pas à récupérer la note...

    Quelqu'un peut_il me donner un coup de main ?

    Le fichier Php :

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <!DOCTYPE html>
    <html>
     
    <head>
        <title>Insert Page page</title>
    </head>
     
    <body>
        <center>
     
    <?php
    $servername = "l---t";
    $database = "u3---s";
    $username = "u---n";
    $password = "N---0";
      
    // Create connection
      
    $conn = mysqli_connect($servername, $username, $password, $database);
      
    // Check connection
            if($conn === false){
                die("ERROR: Could not connect. "
                    . mysqli_connect_error());
            }
             
            // Taking all 5 values from the form data(input)
            $Nom =  htmlspecialchars($_REQUEST['Nom']);
            $Prenom = htmlspecialchars($_REQUEST['Prénom']);
            $classe =  $_REQUEST['classe'];
            //$Note = $_REQUEST['Note'];
            //$Note = $_SESSION['Note'];
            $Note = 12;
            //$Note = $_GET['Note'];
            $date = $_REQUEST['date'];
             
          
         
             
            // Performing insert query execution
            // here our table name is jbrel
            $sql = "INSERT INTO jbrel  VALUES ('$Nom',
                '$Prenom','$classe','$Note','$date')";
                 
                //$sql = "INSERT INTO jbrel  VALUES ('$Nom',
                //'$Prenom','$classe','$_SESSION['Note']','$date')";
             
            if(mysqli_query($conn, $sql)){
                echo "<h3>data stored in a database successfully."
                    . " Please browse your localhost php my admin"
                    . " to view the updated data</h3>";
     
                echo nl2br("\n$first_name\n $last_name\n "
                    . "$gender\n $address\n $email");
            } else{
                echo "ERROR: Hush! Sorry $sql. "
                    . mysqli_error($conn);
            }
             
            // Close connection
            mysqli_close($conn);
            ?>
        </center>
    </body>
    <br><br>

    $Nom, $Prenom, $classe et $date partent bien vers la base de données, mais pour $Note, je n'y arrive pas..

    Lorsque je lui attribue directement une valeur (dans l'exemple ci-dessus "12") elle part bien vers la BDD, Mais lorsque j'essaie de lui faire prendre la valeur de la note obtenue par l'élève, rien ne part...

    Le formulaire est là :

    https://mediaseculilian.fr/testBDD.html

    et son code :

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!DOCTYPE html>
     
    <html>
      <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <title>testBDD</title>
      </head>
      <body>
     
        <center>
          <h1>Envoyer la note au professeur</h1>
          <form action="https://mediaseculilian.fr/databaseconnect.php" method="post">
            <p> <label for="Nom">Nom:</label> <input name="Nom" id="eNom" type="text">
            </p>
            <p> <label for="Prénom">Prénom:</label> <input name="Prénom" id="ePrénom"
     
                type="text"> </p>
            <p> <label for="classe">classe:</label>
              <select name="classe" id="eclasse" type="text">
                <option value="6A">6A</option>
                <option value="6B">6B</option>
                <option value="6C">6C</option>
                <option value="6D">6D</option>
                <option value="5A">5A</option>
                <option value="5B">5B</option>
                <option value="5C">5C</option>
                <option value="5D">5D</option>
                <option value="4A">4A</option>
                <option value="4B">4B</option>
                <option value="4C">4C</option>
                <option value="4D">4D</option>
                <option value="3A">3A</option>
                <option value="3B">3B</option>
                <option value="3C">3C</option>
                <option value="3D">3D</option>
              </select>
            </p>
            <!-- <p> <label for="Note">Note:</label> <input name="Note" id="Note" type="text">
            </p>
     
            <script> var score = 16; </script>
     
     
            <p>
    <input type="hidden"  name="Note" value="<?php echo htmlspecialchars($valeur_du_champs_index);?>"/>
    </p>
            -->
     
     
     
     
            <p> <label for="date">date:</label> <input name="date" id="edate" type="date">
            </p>
            <input value="ENVOYER" type="submit"> </form>
        </center>
        <p><br>
        </p>
      </body>
    </html>

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    pour votre formulaire, si vous rajoutez un 2e champ "Note" caché, sa valeur va écraser la valeur du 1er champ.
    mais dans votre code, ces champs sont en commentaires donc je ne sais pas exactement ce que vous avez essayé.

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut
    Bonjour,

    Dans le premier bloc de code :
    Si j'ai bien compris la logique du premier bloc tel que codé actuellement :
    1 - Je demande une connexion à la BDD
    2 - Je vérifie si la connexion fonctionne ou pas
    3 - Que ma connexion fonctionne ou pas je génère mes variables qui récupèrent des informations
    4 - Que ma connexion fonctionne ou pas j'insère les valeurs de ces variables dans la table de ma BDD. Avec une valeur fixe pour la variable note a 12
    5 - J'affiche un message pour dire si l'enregistrement est un succès ou pas

    Pourquoi ne pas inclure les étapes 3 et 4 dans la suite du 2 ?
    Si la connexion n'a pas réussi => étape 5 directement avec un message d'erreur
    Si la connexion a réussi => je regarde pour traiter les données donc étapes 3 4 et 5 avec le message de réussite

    Dans le second bloc de code :
    Comme l'a dit mathieu, la partie relative a la note ne sera pas interprétée car en commentaire.

    Si j'ai bien tout compris, on peut actuellement résumer à :
    Le formulaire ne contient pas de note => on envoie la demande de traitement
    Pour le traitement, la note est figée à 12

    A ce stade
    . dans le second bloc de code : laisser la possibilité d'entrer une note ou faire une liste comme vous l'avez fait pour la classe
    (La liste permet d'avoir une note comprise dans l'intervalle recherchée, à défaut vous pouvez traiter cela dans la partie traitement :
    Si la donnée est un chiffre, si la donnée est comprise entre X et Y alors je la prends en compte sinon => message d'erreur (ceci sera à mettre en place avant vos étapes d'inscription dans la table de la BDD)
    . dans le premier bloc de code : remplacer le 12 par la donnée récupérée

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 332
    Par défaut
    La variable score html
    Un champs html caché ? ou une variable js ?
    Mieux vaut une variable JS const pour que la note ne change pas si il y a un petit malin qui s'amuse.
    Un problème sans solution est un problème mal posé. (Albert Einstein)

  5. #5
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2021
    Messages : 8
    Par défaut
    Bonjour,
    je prends note de tous vos conseils et de toutes vos remarques.
    Merci.
    Dans un premier temps, je voudrais solutionner le problème de la note,

    mathieu effectivement, certaines parties sont en commentaires ; il s'agit de tests que j'ai pu faire et qui n'ont pas abouti

    BOU59000 comme le dit gabi7756 , je ne souhaite pas laisser aux élèves la possibilité d'entrer eux même leur note pour éviter toute tentation de fraude...

    La note est issue d'un exercice (en h5p) je l'ai récupérée et stockée dans une variable. C'est la valeur de cette variable que je souhaite transférer vers la base de donnée.

    Je pensais pouvoir donner à la "value" de "input" (ligne 45) la valeur d'une variable, mais à priori "value" ne reconnait que du texte ? (donc impossible de lui donner du code ?)

    l'idee ici (comme il s'agit d'une page de code test et incomplète) serait de transférer la valeur de la variable "score" (ligne 41) à la BDD. Comment puis-je faire ?

    merci

    Lilian

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    Citation Envoyé par Lilian BERNON Voir le message
    BOU59000 comme le dit gabi7756 , je ne souhaite pas laisser aux élèves la possibilité d'entrer eux même leur note pour éviter toute tentation de fraude...
    du moment que l'information est dans le code html, les élèves pourront la modifier et envoyer ce qu'ils veulent dans la requête http. regardez dans les outils de développement de votre navigateur, cela se fait en quelques clics.

    d'où récupérez vous cette valeur ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer la valeur d'une variable de ma fonction JS vers un fichier PHP
    Par wperes dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/10/2008, 21h07
  2. Inserer la valeur d'une variable Javascript au milieu d'une source HTML
    Par drizztoli dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/10/2007, 15h47
  3. variable d une page html vers une autre page html
    Par éloi_75 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/09/2007, 16h20
  4. valeur d une variable d'un form vers un autre
    Par barhili04 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/05/2007, 12h51
  5. Réponses: 2
    Dernier message: 22/02/2007, 14h00

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