PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » Envoi d'un formulaire dans une base de données » 29-04-2019 13:58:24

Merci! j'ai compris le fond du problème avec vos remarque; je met a présent les portions de code concernées. Encore merci a tous, mon projet est a présent abouti. je suis présentement sur quelques "artifices" complémentaires. Je declare donc ce sujet clos.

$reponse = $bdd->query('SELECT id, nom, prenom, cnib, lun, mar, mer, jeu, ven, sam, dim, SUM(lun+mar+mer+jeu+ven+sam+dim) as profit FROM formulaire WHERE YEARWEEK(date)=YEARWEEK(NOW()) group by id;');
<td>'.$donnees['profit'].'</td>

#2 Re : Forum Général PHP » Envoi d'un formulaire dans une base de données » 29-04-2019 13:58:24

Vraiment merci a @tof73 et @KOogar pour l'aide. j'avance a grand pas grâce a vous. Grace a vos remarques et suggestions de recherche, je suis arrivé a faire les ''UPDATE'' parfaitement. Il m'a fallu beaucoup fouiné (au point de revoir tout le code mdr!) mais j'y suis arriver. je vous met les codes des pages pointer.php et modifier.php ça pourrait aider d'autres.

Pointer.php

<!DOCTYPE html>
<html>
    <head>
        <title>affiche</title>
    </head>
    <body>
        <a href="Formulaire-journalier.php"> <input type="button" value="Inscrir un nouveau journalier"> </a>

        <form action="modifier.php" method="post">
            <table>
                <tr>
                    <th>Nom </th>
                    <th>Prenom </th>
                    <th>CNIB </th>
                    <th>Lun </th>
                    <th>Mar </th>
                    <th>Mer </th>
                    <th>Jeu </th>
                    <th>Ven </th>
                    <th>Sam </th>
                    <th>Dim </th>
                </tr>
               
                <?php
                    include('connexion.php');
                    $reponse = $bdd->query('SELECT * FROM formulaire WHERE YEARWEEK(date)=YEARWEEK(NOW());');
                ?>

                <?php while ($donnees = $reponse->fetch()) : ?>
                    <tr>
                        <td>
                            <?php echo $donnees['nom'] ?>
                        </td>
                        <td>
                            <?php echo $donnees['prenom'] ?>
                        </td>
                        <td>
                            <?php echo $donnees['cnib'] ?>
                        </td>
                        <td>
                            <select name="lun[]" size="0.3">
                                <option <?php if ($donnees['lun'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['lun'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['lun'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  
                        <td>
                            <select name="mar[]" size="0.3">
                                <option <?php if ($donnees['mar'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['mar'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['mar'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>
                        <td>
                            <select name="mer[]" size="0.3">
                                <option <?php if ($donnees['mer'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['mer'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['mer'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  
                        <td>
                            <select name="jeu[]" size="0.3">
                                <option <?php if ($donnees['jeu'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['jeu'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['jeu'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  
                        <td>
                            <select name="ven[]" size="0.3">
                                <option <?php if ($donnees['ven'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['ven'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['ven'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  
                        <td>
                            <select name="sam[]" size="0.3">
                                <option <?php if ($donnees['sam'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['sam'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['sam'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  
                        <td>
                            <select name="dim[]" size="0.3">
                                <option <?php if ($donnees['dim'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['dim'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['dim'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  

                    </tr>
                    <input type="hidden" name="custId[]" value="<?php echo $donnees['id'] ?>">
                <?php endwhile ?>
            </table>
            <input type="submit" name="Bouton" value="Pointer">
        </form>

    </body>
</html>



modifier.php

<?php
    include('connexion.php');
    if(isset($_POST['Bouton'])) {
        for($i = 0 ; $i < count($_POST['custId']); $i++) {
            $lun = $_POST['lun'][$i];
            $mar = $_POST['mar'][$i];
            $mer = $_POST['mer'][$i];
            $jeu = $_POST['jeu'][$i];
            $ven = $_POST['ven'][$i];
            $sam = $_POST['sam'][$i];
            $dim = $_POST['dim'][$i];
            $id = $_POST['custId'][$i];
            $requete = 'UPDATE formulaire SET '
            .'lun='.$lun
            .',mar='.$mar
            .',mer='.$mer
            .',jeu='.$jeu
            .',ven='.$ven
            .',sam='.$sam
            .',dim='.$dim . ' WHERE id = ' . $id;
            try {
                $bdd->exec($requete);
            }

            catch(Exception $ex) {
                die('Une erreur s\'est produite : ' . $e->getMessage());
            }
        }

        echo '<b>Pointage éffectuer!<b>';
    }
  // fermons la balise php et repartons a la ligne.
?> </br>
 
  <label>
    <a href="pointer.php"> <input type="button" value="Pointer"> </a> </br>
    <a href="affiche.php"> <input type="button" value="Voir le pointage à ce jour"> </a> </br>
    <a href="Formulaire-journalier.php"> <input type="button" value="Inscrir un nouveau journalier"> </a> </br>
  <label/>

A cet stade le ''moteur'' principal marche très bien! Mais je vais une fois de plus demander de l'aide pour cette fois finir avec la structure principale.
En effet dans ma page affiche.php qui affiche l'état du pointage des inscrits, vous avez due remarquer qu'il y'a une colonne nommée ''Salaire hebdomadaire'' qui est restée vide. Il est sensé me donner la somme des  pointages de chaque inscrit. j'ai écrit un bout de code a cet effet et je rencontre un problème de conversion. je m'y prend mal peut être et je vous demande un coup de pouce pour cela.

voici le code revu: https://myalbum.com/photo/Y8taR5UOKPtX/1k0.jpg
Et là le message d'erreur: https://myalbum.com/photo/2DcYPOe4tP5W/1k0.jpg

Merci d'avance pour ce énième coup de main!

#3 Re : Forum Général PHP » Envoi d'un formulaire dans une base de données » 29-04-2019 13:58:24

echo $requete etait sense m'aide a debugger le problème qu'il mais visible ce n’était pas le cas. donc je le retire.

Maintenant pour ce qui est de la récupération de l'id, j'ai essayer de progresser un peu. là maintenant je suis arriver a Ecrire un code pour update une ligne spécifique de la table. ça passe parfaitement dans SQL.
un apercu du code et du resultat dans mysql :
https://myalbum.com/photo/83QXtof1Tt8J/1k0.jpg

par contre je peine vraiment a trouver la formule pour récupérer le id dans le formulaire et l'utiliser pour la requête
recuperation de l'id dans une variable: https://myalbum.com/photo/Q1GSWBdV3HLe/1k0.jpg

Soumission de la raquette utilisant le id passer par le formulaire: https://myalbum.com/photo/9l6EjLlfkwoo/1k0.jpg

A partir de là j'ai cette erreur: ( ! ) Parse error: syntax error, unexpected '$id' (T_VARIABLE) in C:\wamp64\www\projetcobaye\modifier.php on line 23

Et la fameuse ligne 23: dim=".$dim." WHERE id="$id" ";
Apercu du code en entier: https://myalbum.com/photo/9l6EjLlfkwoo/1k0.jpg

Merci de m'aider!

#4 Re : Forum Général PHP » Envoi d'un formulaire dans une base de données » 29-04-2019 13:58:24

Bonjour, merci pour l'aide que vous m'avez apporter. je progresse très bien dans mon projet. J'ai finalement réussi à "Update" ma bdd. Il s'avérait effectivement que le problème venait de la définition de mes variables. après correction voici ce que j'obtiens comme code:

<?php
//connexion
include('connexion.php');

if(isset($_POST['Bouton']))
{ // recuperons à présent les infos entrees dans le formulaire
  $lun= $_POST['lun'];
  $mar= $_POST['mar'];
  $mer= $_POST['mer'];
  $jeu= $_POST['jeu'];
  $ven= $_POST['ven'];
  $sam= $_POST['sam'];
  $dim= $_POST['dim'];
   // lancement de la requête de modification d'enregistrement
   $requete="UPDATE formulaire SET
   lun=".$lun.",
   mar=".$mar.",
   mer=".$mer.",
   jeu=".$jeu.",
   ven=".$ven.",
   sam=".$sam.",
   dim=".$dim."; ";
}

$resultat= $bdd-> exec($requete);
echo $requete;
if($resultat==1){ echo'Pointage effectuer';}
else{echo ' ohlala ...problème';}

?>

Un aperçu du code:
1k0.jpg

Cependant je rencontre de nouvelles difficultés et j'espère que vous m'aidiez toujours comme jusqu'à présent.

En effet: je ne peut pointer que le dernier inscrit de ma bdd, et lorsque je pointe celui-ci pour un jour donné, tous les autres jours de la semaine prennent systématiquement la valeur ''0''. Pire, lorsque je pointe ce dernier, tous les autres inscrits (toutes les lignes de ma table) sont aussi pointer pour ce jour.
Voici un aperçu de ma bdd après que j'ai pointer la valeur ''3000'' à l'inscrit nommé ''mardi impricolor'' pour le jour de Lundi.
1k0.jpg

Je suis dérouté et j'ai vraiment besoin d'aide. Merci d'avance!

#5 Re : Forum Général PHP » Envoi d'un formulaire dans une base de données » 29-04-2019 13:58:24

Merci bien @tof73. Je doutais un peu également quant-à la nécessité des $_POST[' '];

Si je te comprend donc,
1) je retire ses $_POST[' '];
2)Dans le code de "pointer.php" il me faut définir des champs qui correspondraient a mes cases à sélectionné et qui par la même occasion devraient avoir pour nom (name=) les dénomination correspondantes a mes colonnes lun, mar,mer etc dans ma bdd.

pour la dernière partie de ton commentaire j'avoue ne pas très bien suivre mais je vais de ce pas check comme disent certains.

#6 Re : Forum Général PHP » Envoi d'un formulaire dans une base de données » 29-04-2019 13:58:24

Bonjour. Merci pour l'aide. Avec une tête un peu reposée j'ai finalement trouver les erreurs (syntaxique d'abord, de structure ensuite et enfin de choix). Il me fallait compléter les différents jours de la semaine, rajouter un semi-colon à la fin de la dernière ligne de la requête (ce qui donne: dim="'.$_POST['Dim'].'" ';) pour boucle celle-ci et enfin utilise PDO pour l’exécution de la requête.

Par contre j'ai (encore big_smile) un nouveau soucis: <<Undefined index:>> que je ne comprends pas jusque là. Un coup de pouce serait salutaire. Merci!

Pour que vous puissiez m'aider en ayant une vision claire du projet, je vous met tous les codes avec captures d'écrans. Merci d'avance et désoler de vous prendre la tête big_smile

01 - La page index (formulaire)

<?php
$currentWeekNumber = date('W');
echo "Nous sommes à la semaine N°" . date("W") . " de l'année ". date("Y") ."";
?>

<!DOCTYPE html>
<html>

<head>
  <title>formulaire-journalier</title>
 
</head>

<body>

<form action="insertion.php" method="post">
Nom:  <input type="text" name="Nom"><br>
Prenom: <input type="text" name="Prenom"><br>
CNIB:   <input type="text" name="CNIB"><br>
Tel 1:  <input type="text" name="Tel1"><br>
Tel 2:  <input type="text" name="Tel2"><br>
<label>
  <input type="submit"/>
  <input type="reset" value="Reinitialiser"><br>
  <a href="affiche.php"> <input type="button" value="Voir la liste des inscrits"></a>
  <a href="pointer.php"> <input type="button" value="pointer"></a>
</label>
</form><br>

</body>

</html>

1k0.jpg

02- La page connection

<?php


try {
    $bdd = new PDO("mysql:host=localhost;dbname=bdd_journaliers;charset=utf8", "root",
        "", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));  
}
catch (Exception $e) {
    die('Erreur fatale : ' . $e->getMessage());
}


?>

03 - La page insertion

<?php
//connexion
include('connexion.php');

if( isset($_POST['Valider']) ) // si formulaire soumis

// recuperons à présent les infos entrees dans le formulaire
$Date= $_POST[''];  // il faut rajouter cette 6ème ligne pour equilibrer avec le nombre de collone dans la table (bdd)
$Nom= $_POST['Nom'];
$Prenom= $_POST['Prenom'];
$CNIB= $_POST['CNIB'];
$Tel1= $_POST['Tel1'];
$Tel2= $_POST['Tel2'];

// Envoyons maintenant ses infos dans la bdd
$requete = "INSERT INTO `formulaire` (`id`, `nom`, `prenom`, `cnib`, `tel1`, `tel2`, `lun`, `mar`, `mer`, `jeu`, `ven`, `sam`, `dim`)
              VALUES(NULL,'$Nom','$Prenom','$CNIB','$Tel1','$Tel2','0','0','0','0','0','0','0');"; // Les "names" dans le formulaire
 $resultat= $bdd-> exec($requete);
if($resultat==1) { echo'le journalier a bien été enregistrer';
}else {
echo ' ohlala ...problème';

 } // Le code php se termine ici. a present mettons un boutton pour repartir a la page formulaire

 ?> <br/>
 
 
 <!DOCTYPE html>
<html>
<body>
  <a href="formulaire-journalier.php"> <input type="button" value="Inscrir un nouveau journalier"> </a>
</body>
</html>

Une image de la page insertion:
1k0.jpg

04 - La page affiche

<!DOCTYPE html>

<html>
<head>
  <title>affiche</title>
 
</head>

<body>

 
<a href="Formulaire-journalier.php"> <input type="button" value="Inscrir un nouveau journalier"> </a>

<table>
    <thead>
        <th>Nom </th>
        <th>Prenom </th>
    <th>CNIB </th>
    <th>Lun </th>
    <th>Mar </th>
    <th>Mer </th>
    <th>Jeu </th>
    <th>Ven </th>
    <th>Sam </th>
    <th>Dim </th>
    <th>Salaire hebdomadaire</th>
      </tr>
    </thead>
 
    <body>
  <?php
//tjrs :on commence par inclure le fichier connexion
include('connexion.php');
// écrire la requete de la lecture de la table formulaire
 $reponse = $bdd->query('SELECT * FROM formulaire WHERE YEARWEEK(date)=YEARWEEK(NOW());');
//executer la requête à l'aide de la fonction exec et mettre le resultat dans $resultat
while ($donnees = $reponse->fetch())
//lecture des tiroirs de l'armoire $resultat à l'aide de la fonction foreach
{
// mettre ds une ligne
echo '<th>'.$donnees['nom'].'</th>  <td>'.$donnees['prenom'].'</td>  <td>'.$donnees['cnib'].'</td>  <td>'.$donnees['lun'].'</td>  <td>'.$donnees['mar'].'</td>  <td>'.$donnees['mer'].'</td>  <td>'.$donnees['jeu'].'</td>  <td>'.$donnees['ven'].'</td>  <td>'.$donnees['sam'].'</td>  <td>'.$donnees['dim'].'</td>  </tr>';
}

?>
    </tbody>
  </table>
 

</div><!-- /page -->

</body>


</html>

Une image de la page affiche:
1k0.jpg

05 - La page pointer

<!DOCTYPE html>

<html>
<head>
  <title>affiche</title>
 
</head>

 
<a href="Formulaire-journalier.php"> <input type="button" value="Inscrir un nouveau journalier"> </a>

<form action="modifier.php" method="post">
<table>
    <thead>
        <th>Nom </th>
        <th>Prenom </th>
    <th>CNIB </th>
    <th>Lun </th>
    <th>Mar </th>
    <th>Mer </th>
    <th>Jeu </th>
    <th>Ven </th>
    <th>Sam </th>
    <th>Dim </th>
      </tr>
    </thead>
 
    <body>
  <?php
//tjrs :on commence par inclure le fichier connexion
include('connexion.php');
// écrire la requete de la lecture de la table formulaire
 $reponse = $bdd->query('SELECT * FROM formulaire WHERE YEARWEEK(date)=YEARWEEK(NOW());');
//executer la requête à l'aide de la fonction exec et mettre le resultat dans $resultat
while ($donnees = $reponse->fetch())
//lecture des tiroirs de l'armoire $resultat à l'aide de la fonction foreach
{
// mettre ds une ligne
echo '<th>'.$donnees['nom'].'</th>  <td>'.$donnees['prenom'].'</td>  <td>'.$donnees['cnib'].'</td>  <td>'.$Lun='<SELECT name="lun" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>  
                                                  <td>'.$Mar='<SELECT name="mar" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                  <td>'.$Mer='<SELECT name="mer" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                  <td>'.$Jeu='<SELECT name="jeu" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                  <td>'.$Ven='<SELECT name="ven" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                  <td>'.$Sam='<SELECT name="sam" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                  <td>'.$Dim='<SELECT name="dim" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                 
                                                  </tr>';
}

?>

    </body>
  </table>
  <input type="submit" name="Bouton" value="Pointer">
  </form>
 

</div><!-- /page -->

</body>


</html>

Une image de la page pointer:
1k0.jpg

06 - La page modifier (la fameuse page problématique big_smile)

<?php
//connexion
include('connexion.php');

if(isset($_POST['Bouton']))
   // Réecriture des variables
   $_POST['lun'];
   $_POST['mar'];
   $_POST['mer'];
   $_POST['jeu'];
   $_POST['ven'];
   $_POST['sam'];
   $_POST['dim'];
   
   // lancement de la requête de modification d'enregistrement
   $requete='UPDATE formulaire SET
   id="",
   nom="",
   prenom="",
   cnib="",
   tel1="",
   tel2="",
   date="",
   lun="'.$_POST['Lun'].'",
   mar="'.$_POST['Mar'].'",
   mer="'.$_POST['Mer'].'",
   jeu="'.$_POST['Jeu'].'",
   ven="'.$_POST['Ven'].'",
   sam="'.$_POST['Sam'].'",
   dim="'.$_POST['Dim'].'" ';

$resultat= $bdd-> exec($requete);
if($resultat==1) { echo'Pointage effectuer';
}else {
echo ' ohlala ...problème';
}

?>

07 - Une image du message d'erreur:
1k0.jpg

Pour finir je signale que absolument tout marche là maintenant sauf cette dernière étape pour modifier les données de la bdd. Merci de m'aider!

#7 Re : Forum Général PHP » Envoi d'un formulaire dans une base de données » 29-04-2019 13:58:24

effectivement je suis sur php7.1.9 Si donc le problème venait de cette extension, j'ai refais mon code sous mysqli (selon ton lien) et j'ai obtenu ce résultat. Mais il ne marche pas. j’obtiens cette erreur :

Parse error: syntax error, unexpected '$mysqli' (T_VARIABLE) in C:\wamp64\www\projet\modifier.php on line 27  (je signale que c'est la dernière ligne de mon code)

je vous met ici le code entier (celui refait sous msqli)

<?php
//connexion
include('connexion.php');

if(isset($_POST['Bouton']))
   // Réecriture des variables
   $_POST['lun'];
   $_POST['mar'];
   $_POST['mer'];
   $_POST['jeu'];
   $_POST['ven'];
   $_POST['sam'];
   $_POST['dim'];
   
   // lancement de la requête de modification d'enregistrement
   $requete='UPDATE formulaire SET
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'" '

   
 // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
$mysqli->query($requete);

?>

#8 Re : Forum Général PHP » Envoi d'un formulaire dans une base de données » 29-04-2019 13:58:24

Merci énormément Tof73 & KOogar! Vous m'avez été d'un grand secourt. Grace à vous j'ai compris et corriger l'erreur.

Je vous demande une dernière chose, que veut dire ce message

Fatal error: Uncaught Error: Call to undefined function mysql_query() in C:\wamp64\www\projet\modifier.php on line 27
( ! ) Error: Call to undefined function mysql_query() in C:\wamp64\www\projet\modifier.php on line 27

voici le code cette fameuse ligne :

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

et maintenant le code entier

<?php
//connexion
include('connexion.php');

if(isset($_POST['Bouton']))
   // Réecriture des variables
   $Lun=$_POST['lun'];
   $Mar=$_POST['mar'];
   $Mer=$_POST['mer'];
   $Jeu=$_POST['jeu'];
   $Ven=$_POST['ven'];
   $Sam=$_POST['sam'];
   $Dim=$_POST['dim'];
   
   // lancement de la requête de modification d'enregistrement
   $sql ="UPDATE formulaire SET
   lun='$Lun',
   mar='$Mar',
   mer='$Mer',
   jeu='$Jeu',
   ven='$Ven',
   sam='$Sam',
   dim='$Dim' ";

   
 // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>

#9 Forum Général PHP » Envoi d'un formulaire dans une base de données » 29-04-2019 13:58:24

filabala321
Réponses : 18

Bonjour. je bloque sur un problème que je pense de PHP et je voudrais demander votre aide.
je développe en local avec Wamp serveur et j'ai un formulaire qui après remplissage doit a travers un fichier php envoyer des information a ma base de données. Seulement lorsque je soumet le formulaire, j'ai ce message d'erreur que je n'arrive pas a passer. ci joint mes codes. Merci de m'aider

Ma page html

<html>
<body>

<form action="insertion.php" method="post">
Nom: <input type="text" name="Nom"><br>
Prenom: <input type="text" name="Prenom"><br>
CNIB: <input type="text" name="CNIB"><br>
Tel 1: <input type="text" name="TEL1"><br>
Tel 2: <input type="text" name="TEL2"><br>
<label>
  <input type="submit"/>
<label/>
</form>

</body>
</html>

Mon fichier de traitement php

<?php
//connexion
include('connexion.php');
//print_r($_FILES);
if( isset($_POST['Valider']) ) // si formulaire soumis

 
$text_rep= $_POST['Nom'];
$text_rep= $_POST['Prenom'];
$text_rep= $_POST['CNIB'];
$text_rep= $_POST['TEL1'];
$text_rep= $_POST['TEL2'];
$requete = "INSERT INTO `formulaire` (`id`, `nom`, `prenom`, `cnib`, `tel1`, `tel2`)
      VALUES(NULL,'$nom','$prenom','$cnib','$tel1','$tel2');";
 $resultat= $bdd-> exec($requete);
if($resultat==1) { echo'les information ont bien été enregistrer';
}else {
echo ' ohlala ...problème';
}


?>

et là le message d’erreur qui  revient

Notice: Undefined variable: nom in C:\wamp64\www\projet\insertion.php on line 14
Notice: Undefined variable: prenom in C:\wamp64\www\projet\insertion.php on line 14
Notice: Undefined variable: cnib in C:\wamp64\www\projet\insertion.php on line 14
Notice: Undefined variable: tel1 in C:\wamp64\www\projet\insertion.php on line 14
Notice: Undefined variable: tel2 in C:\wamp64\www\projet\insertion.php on line 14
les information ont bien été enregistrer


la fameuse ligne 14 est la suivante

VALUES(NULL,'$nom','$prenom','$cnib','$tel1','$tel2');";

je précise qu’après verification, il s'averse que le "id" et la "date" sont bel et bien prient a chaque fois mais pas les autres informations.

#10 Re : Forum Général PHP » traitement d'une page formulaire. » 22-12-2017 23:41:35

Je suis content!! J'ai finalement trouvé l'erreur. Je devais juste ajouter l'atibut data-ajax = "false" à la balise de formulaire. Du coup, sujet résolu!

#11 Forum Général PHP » traitement d'une page formulaire. » 22-12-2017 23:41:35

filabala321
Réponses : 1

salut! J'ai commencé un projet pour créer un site local en JQuery Mobile. Ce site dispose d'un formulaire (liste déroulante, champs de texte et envoi d'une image) qui une fois complété doit transmettre les informations collectées via un bouton '' Envoyer '' à ma base de données MySql préalablement créée. La préoccupation est à ce niveau; Une fois que le bouton '' Envoyer '' (Submit) a été actionné, j'ai ce message d'erreur: Note: Undefined index: upload dans C: \ wamp64 \ www \ impricolor-final2 \ insert.php à la ligne 27  (le contenue de la ligne 27 est $tmp_file = $_FILES['upload']['tmp_name'];)
J'ai demander de l'aide dans  les forums jQuery Mobile et il semblerait que l'erreur vient de mon code PHP. J'ai alors fait un débogage de mon PHP et il semble que le problème vient du code pour l’envoi de l'image. Je suis bloquer à ce niveau et toute aide serait la bienvenue.
PS: En HTML simple (Lorsque je retire les scripts JQM) les codes fonctionnent très bien. Le problème se produit uniquement lorsque je passe à Jquery Mobile(v1.4.5).
Ci joint les codes et le message d'erreur
Merci d'avance.

Le code de mon formulaire

<!DOCTYPE html>
<html>
<head>
  <title>Oups C'est Casser</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
   <link rel="stylesheet" href="Script/jquery.mobile-1.4.5.min.css" />
  <script src="Script/jquery-1.11.1.min.js"></script>
  <script src="Script/jquery.mobile-1.4.5.min.js"></script>
</head>

<body>
<div data-role="page">

  <div data-role="header" data-theme="b">
    <h1>Case ConnecT</h1>
  </div><!-- /header -->
 
  <style>
#output{
  height:110px;
  width:auto;
  display:block;
  margin-left: auto;
   margin-right: auto;
  padding:5px;
}
</style>
<form method="POST" action="insertion.php" enctype="multipart/form-data">
 
<label for="select-choice-1" class="select">Selectionner votre machine</label>
<select name="select-choice-1" id="select-choice-1">
    <option value="Rotative: Derouleur">Rotative: Derouleur</option>
    <option value="Rotative: Debiteur">Rotative: Debiteur</option>
    <option value="Rotative: armoire electrique">Rotative: armoire electrique</option>
    <option value="Rotative: Pupitre">Rotative: Pupitre</option>
</select>
 
<label for="textarea">Textarea:</label>
<textarea cols="40" rows="8" name="text_rep" id="textarea"></textarea>

<label for="file">File:</label>
<input name="upload" id="file" value="" type="file" onchange="loadFile(event)"><img id="output"/>

</br><input type="submit" name="Envoyer" value="Enregistrer" />

</form>
<script>
  var loadFile = function(event) {
    var reader = new FileReader();
    reader.onload = function(){
      var output = document.getElementById('output');
      output.src = reader.result;
    };
    reader.readAsDataURL(event.target.files[0]);
  };
</script>


  <div data-role="footer" data-theme="b">
    <h4>Case ConnecT Version 1.1</h4>
  </div><!-- /footer -->
</div><!-- /page -->

</body>

</html>

Le code de ma page de traitement

<!DOCTYPE html>
<html>
<head>
  <title>insertion</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="Script/jquery.mobile-1.4.5.min.css" />
  <script src="Script/jquery-1.11.1.min.js"></script>
  <script src="Script/jquery.mobile-1.4.5.min.js"></script>
</head>

<body>

   <div data-role="page">

  <div data-role="header" data-theme="b">
    <h1>Case ConnecT</h1>
  </div><!-- /header -->
<?php

//connexion
include('connexion.php');
//print_r($_FILES);
if( isset($_POST['Envoyer']) ) // si formulaire soumis
{
    $content_dir = 'images/'; // dossier où sera déplacé le fichier

    $tmp_file = $_FILES['upload']['tmp_name'];

    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable");
    }

    // on vérifie maintenant l'extension
    $type_file = $_FILES['upload']['type'];

    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }

    // on copie le fichier dans le dossier de destination
    $timeline = time();
$name_file = $timeline . "-" . $_FILES['upload']['name'];

    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }

    echo "Le fichier a bien été uploadé";
}
 
$Designation= $_POST['Designation'];
$text_rep= $_POST['text_rep'];
$requete = "INSERT INTO `repare_panne` (`id`, `Designation`, `text_rep`, `photo`) VALUES
                                 (NULL, '$Designation', '$text_rep', '$name_file');";
 $resultat= $bdd-> exec($requete);
if($resultat==1) { echo'Votre panne a bien ete envoyer';
}else {
echo ' ohlala ...problème';
}
?>

<div data-role="footer" data-theme="b">
    <h4>Case ConnecT Version 1.1</h4>
  </div><!-- /footer -->
</div><!-- /page -->

</body>

</body>

</html>

Pied de page des forums

Propulsé par FluxBB