[RESOLU] Notice: Undefined variable: numPage, une erreur devenant incompréhensible !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Notice: Undefined variable: numPage, une erreur devenant incompréhensible !

Re: Notice: Undefined variable: numPage, une erreur devenant incompréhensible !

par lucieemtl » 12 janv. 2016, 16:05

Et bien j'avais bien raison par rapport à la remarque je vous avais faite, c'est-à-dire qu'il fallait en effet enlever toutes références au formulaire envoiVariable, par contre, votre correction m'a aidé à corriger mon erreur !
Je vous remercie énormément !

Re: Notice: Undefined variable: numPage, une erreur devenant incompréhensible !

par lucieemtl » 12 janv. 2016, 16:00

Je tiens à vous préciser que lorsque j'envoie les variables dans variablePage.php, et que je les lis dans multiFormSubmit.php, il lit bien la valeur de $_POST['var1'] mais ne parviens pas à l'enregistrer dans ma requête SQL..

Ma foi j'essai tout de même votre correction, mais il me semble que vous avez oublié d'écrire le formulaire envoiVariable (dans l'appel du script, vous avez laisser l'appel), non ?

Re: Notice: Undefined variable: numPage, une erreur devenant incompréhensible !

par Spols » 12 janv. 2016, 13:59

Tu as plusieurs formulaires, mais un seul est envoyé. donc $_POST['var1'] n'est pas défini après l'envoi du formulaire.

Ton premier fichier :
<!DOCTYPE>
<html>
<head>
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
   <div class="pluginLucie">
      <div id="simple-msg"></div>
      <div id="multi-msg"></div><br/>
      
      <!--FORMULAIRE ENVOIE DU FICHIER & ENVOIE DE VARIABLE DE LA PAGE -->
      <form name="multiform" id="multiform" action="../wp-content/plugins/essaiplugin/multiFormSubmit.php" method="POST" enctype="multipart/form-data">
<?php 
            $var1 = $_GET['post'];
         ?>
         <input type="hidden" name="var1" value="<?php echo $var1; ?>"></input>
         <h1 style="font-size: 18px;">Associer une image à cette page ?</h1><hr/><input type="file" name="imageLucie" /><br/>
      </form>   

      <input type="button" id="multi-post" class="myButton" value="Ajouter"></input>
   </div>
   
   <!--ENVOI DES FICHIERS-->
   <script>
   $(document).ready(function()
   {

   $("#multiform").submit(function(e)
   {
      var formObj = $(this);
      var formURL = formObj.attr("action");

   if(window.FormData !== undefined)  // for HTML5 browsers
   //   if(false)
      {
      
         var formData = new FormData(this);
         $.ajax({
            url: formURL,
            type: 'POST',
            data:  formData,
            mimeType:"multipart/form-data",
            contentType: false,
            cache: false,
            processData:false,
            success: function(data, textStatus, jqXHR)
            {
                  function include(file) {
                     var oScript =  document.createElement("script");
                     oScript.src = file;
                     document.body.appendChild(oScript);
                     $("#multi-msg").html(data);
                  }
                  include("../wp-content/plugins/essaiplugin/multiFormSubmit.php");
            },
            error: function(jqXHR, textStatus, errorThrown) 
            {
               $("#multi-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
            }            
         });
         e.preventDefault();
      }
   });
   
   $("#envoiVariable").submit(function(e)
   {
         var postData = $(this).serializeArray();
         var formURL = $(this).attr("action");
         $.ajax(
         {
            url : formURL,
            type: "POST",
            data : postData,
            success:function(data, textStatus, jqXHR) 
            {
               $("#simple-msg").html('<pre><code class="prettyprint">'+data+'</code></pre>');
               function include(file) {
                     var oScript =  document.createElement("script");
                     oScript.src = file;
                     document.body.appendChild(oScript);
                     $("#multi-msg").html(data);
               }
               include("../wp-content/plugins/essaiplugin/variablePage.php");
            },
            error: function(jqXHR, textStatus, errorThrown) 
            {
               $("#simple-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
            }
         });
         e.preventDefault();   //STOP default action
   });
         
   $("#multi-post").click(function()
   {
      $("#multiform").submit();
      $("#envoiVariable").submit(); //SUBMIT FORM
   });
   });
   </script>
</body>
</html>

Notice: Undefined variable: numPage, une erreur devenant incompréhensible !

par lucieemtl » 12 janv. 2016, 13:17

Bonjour à tous et à toute,

Pour mon problème aujourd'hui, c'est que je n'arrive pas à exécuter une requête avec une variable.

Je m'explique :

Voici multiForm.php :

Code : Tout sélectionner

<!DOCTYPE> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> </head> <body> <div class="pluginLucie"> <div id="simple-msg"></div> <div id="multi-msg"></div><br/> <!--FORMULAIRE ENVOIE DE VARIABLE DE LA PAGE--> <form name="envoiVariable" id ="envoiVariable" method="POST" action="../wp-content/plugins/essaiplugin/variablePage.php"> <?php $var1 = $_GET['post']; ?> <input type="hidden" name="var1" value="<?php echo $var1; ?>"></input> </form> <!--FORMULAIRE ENVOIE DU FICHIER--> <form name="multiform" id="multiform" action="../wp-content/plugins/essaiplugin/multiFormSubmit.php" method="POST" enctype="multipart/form-data"> <h1 style="font-size: 18px;">Associer une image à cette page ?</h1><hr/><input type="file" name="imageLucie" /><br/> </form> <input type="button" id="multi-post" class="myButton" value="Ajouter"></input> </div> <!--ENVOI DES FICHIERS--> <script> $(document).ready(function() { $("#multiform").submit(function(e) { var formObj = $(this); var formURL = formObj.attr("action"); if(window.FormData !== undefined) // for HTML5 browsers // if(false) { var formData = new FormData(this); $.ajax({ url: formURL, type: 'POST', data: formData, mimeType:"multipart/form-data", contentType: false, cache: false, processData:false, success: function(data, textStatus, jqXHR) { function include(file) { var oScript = document.createElement("script"); oScript.src = file; document.body.appendChild(oScript); $("#multi-msg").html(data); } include("../wp-content/plugins/essaiplugin/multiFormSubmit.php"); }, error: function(jqXHR, textStatus, errorThrown) { $("#multi-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>'); } }); e.preventDefault(); } }); $("#envoiVariable").submit(function(e) { var postData = $(this).serializeArray(); var formURL = $(this).attr("action"); $.ajax( { url : formURL, type: "POST", data : postData, success:function(data, textStatus, jqXHR) { $("#simple-msg").html('<pre><code class="prettyprint">'+data+'</code></pre>'); function include(file) { var oScript = document.createElement("script"); oScript.src = file; document.body.appendChild(oScript); $("#multi-msg").html(data); } include("../wp-content/plugins/essaiplugin/variablePage.php"); }, error: function(jqXHR, textStatus, errorThrown) { $("#simple-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>'); } }); e.preventDefault(); //STOP default action }); $("#multi-post").click(function() { $("#multiform").submit(); $("#envoiVariable").submit(); //SUBMIT FORM }); }); </script> </body> </html>
Donc qui renvoi bien vers multiFormSubmit.php :

Code : Tout sélectionner

<?php $bdd = "wordpress2"; $host= "localhost"; $user= "root"; $pass= ""; @mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données"); @mysql_select_db($bdd); if(!empty($_FILES)) { $img_name = $_FILES['imageLucie']['name']; $img_extension = strrchr($img_name, "."); $extensions_autorisees = array('.png', '.PNG'); $img_tmp_name = $_FILES['imageLucie']['tmp_name']; $destination="uploads/lucie/"; include 'variablePage.php'; if (isset($_POST['var1'])) { $numPage = $_POST["var1"]; echo $numPage; } if(file_exists($destination)) { if(file_exists($destination . $img_name)) { echo "Un fichier possédant le même nom a été écraser."; //On améliorera le code on proposant un formulaire à boutons à l'utilisateur : "Souhaitez-vous écraser l'ancien fichier ?" Si oui action.. Si non annuler } } else{ mkdir($destination, 0777, true); } if(in_array($img_extension, $extensions_autorisees)) { if(move_uploaded_file($img_tmp_name, $destination.$img_name)){ $sql = "INSERT INTO filesLucie(id, nameFile, urlFile) VALUES('','$img_name','$destination$img_name')"; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); print '<img src="/wordpress2/wp-content/plugins/essaiplugin/uploads/lucie/'. $img_name .'"/><br/><br/>'; $addColumn = "Show columns from wp_posts"; $result = mysql_query($addColumn); if (mysql_num_rows($result) == 23){ mysql_query("ALTER TABLE wp_posts ADD nameFile varchar(255)"); exit; } echo $sql_updateImage= "UPDATE wp_posts SET nameFile = '$img_name' WHERE ID = '$numPage'"; $result_sql_updateImage = mysql_query($sql_updateImage); } else{ echo '<div class=\'pluginLucie\'>Une erreur est survenue lors de l\'envoi du fichier.</div>'; } } else{ echo '<div class=\'pluginLucie\'>Veuillez vérifier les extensions acceptées s\'il vous plaît.</div>'; } } ?>
Et voici variablePage.php dont le rôle est de retenir le nom de l'input hidden dans multiForm.php, qui ce dernier est en fait le numéro de page dans l'url :

Code : Tout sélectionner

<?php if (isset($_POST['var1'])) { echo $_POST["var1"]; $numPage = $_POST["var1"]; } ?>
Et donc l'erreur est la suivante :

Notice: Undefined variable: numPage in C:\wamp\www\wordpress2\wp-content\plugins\essaiplugin\multiFormSubmit.php on line 51;

Quelqu'un pourrait-il m'aider s'il vous plaît ?