PHP|Débutant :: Forums

Advertisement

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

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

#1 02-12-2017 19:30:55

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

traitement d'une page formulaire.

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>

Hors ligne

#2 22-12-2017 23:41:35

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

Re : traitement d'une page formulaire.

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!

Hors ligne

Pied de page des forums