J'ai l'erreur : Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traitement

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 : J'ai l'erreur : Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traitement

Re: J'ai l'erreur : Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traite

par anouchka2586 » 27 juil. 2017, 21:31

Le but de mon exercice est d'une part envoyer les données saisies du formulaire par mail et aussi les envoyer dans la base de données. Mais je ne reçois pas la confirmation que les données ont été insérées dans la bdd comme ce marqué dans le code :
if ($conn->query($sql) === TRUE) {
echo "les données ont bien étés insérées dans la base de données";

Re: J'ai l'erreur : Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traite

par Naroth » 27 juil. 2017, 21:21

En effet. C'est la même logique

Re: J'ai l'erreur : Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traite

par anouchka2586 » 27 juil. 2017, 21:13

J'ai aussi cette erreur : Warning: Illegal string offset 'label' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traitement.php on line 18

Et la ligne 18 c : $email_body .= "<strong>" . $value['label'] . ": </strong> " . $value['val'] . "<br/><br/>";

Dois-je enlever des label et val qui sont entre crochets ?

Re: J'ai l'erreur : Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traite

par Naroth » 27 juil. 2017, 21:07

Je le remet un peu en forme
array(5) { 
    ["nomprenom"]=> string(6) "sdfghj" 
    ["email"]=> string(16) "[email protected]"
    ["phone"]=> string(10) "0658898531" 
    ["id"]=> string(1) "1" 
    ["siret"]=> string(17) "254 851 369 54218"
 }
Ton adresse email se récupère de la façon suivante :

$_POST['email']['val']; voudrait dire que ton $_POST["email"] soient une array
du coup pour récupérer ton email tu dois juste
echo $_POST["email"];

Re: J'ai l'erreur : Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traite

par anouchka2586 » 27 juil. 2017, 20:59

Voici ce que j'obtiens:
Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traitement.php on line 13
array(5) { ["nomprenom"]=> string(6) "sdfghj" ["email"]=> string(16) "[email protected]" ["phone"]=> string(10) "0658898531" ["id"]=> string(1) "1" ["siret"]=> string(17) "254 851 369 54218" }

Re: J'ai l'erreur : Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traite

par Naroth » 27 juil. 2017, 20:55

Bonsoir,

Avant la ligne 13 utilise un var_dump pour voir ce que contient ta variable $_POST
Je pense que tu trouveras tout de suite ce qui ne va pas
var_dump($_POST);

J'ai l'erreur : Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traitement

par anouchka2586 » 27 juil. 2017, 20:50

Bonjour
J'obtiens cette erreur, je ne comprend pas, pouvez-vous m'aider ?
Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traitement.php on line 13

Warning: Illegal string offset 'label' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traitement.php on line 18

Warning: Illegal string offset 'val' in /home/toutpaie/public_html/ServicesVendeurs/form-data/traitement.php on line 18
Voici mon code PHP:

Code : Tout sélectionner

<?php if (isset($_POST) && sizeof($_POST) > 0) { //$to = $_POST['to']['val']; // <=== Set static email here. $to = "[email protected]"; // Alain Serge if (isset($_POST['formtype'])) { unset($_POST['formtype']); } if (isset($_POST['to'])) { unset($_POST['to']); } $email_address = $_POST['email']['val']; $email_subject = "Formulaire soumis par: ".$_POST['name']['val']; $email_body = "Vous avez reçu un nouveau message. <br/>". "Voici les détails: <br/><br/>"; foreach ($_POST as $key => $value) { $email_body .= "<strong>" . $value['label'] . ": </strong> " . $value['val'] . "<br/><br/>"; } $headers = "From:<$email_address>\n"; $headers.= "Content-Type:text/html; charset=UTF-8"; if($email_address != "") { mail($to,$email_subject,$email_body,$headers); return true; } } //------------------------------------------------ $servername = "localhost"; $username = "ttttttt"; $password = "xxxxxx"; $dbname = "uuuuuuuu"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } //echo "Connected successfully"; // On vérifie si la variable existe et sinon elle vaut NULL $nomprenom = isset($_POST['nomprenom']) ? $_POST['nomprenom'] : NULL; $email = isset($_POST['email']) ? $_POST['email'] : NULL; $phone = isset($_POST['phone']) ? $_POST['phone'] : NULL; //$adressepostale = isset($_POST['adressepostale']) ? $_POST['adressepostale'] : NULL; //$cp = isset($_POST['cp']) ? $_POST['cp'] : NULL; //$ville = isset($_POST['ville']) ? $_POST['ville'] : NULL; $siret = isset($_POST['siret']) ? $_POST['siret'] : NULL; $id_zone = isset($_POST['id']) ? $_POST['id'] : NULL; $sql = 'INSERT INTO shop_apply (linkman, mail, mobile, siret, zone_id) VALUES("'.$nomprenom.'", "'.$email.'", "'.$phone.'", "'.$siret.'", "'.$id_zone.'")'; if ($conn->query($sql) === TRUE) { echo "les données ont bien étés insérées dans la base de données"; } else { echo "Error " . $sql . "<br>" . $conn->error; } $conn->close(); ?>
Voici mon code HTML contenant mon formulaire :

Code : Tout sélectionner

<?php $servername = "localhost"; $username = "ttttttt"; $password = "xxxxxx"; $dbname = "uuuuuuuu"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } //echo "Connected successfully"; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ventes Pro sur ToutPaie - Comment ça marche | Vendeur ToutPaie Professionnel </title> <!--pageMeta--> <!-- Lib CSS --> <link href="minify/rgen_min.css" rel="stylesheet"> <link href="css/custom.css" rel="stylesheet"> <link href="css/ajout.css" rel="stylesheet"> <!-- Favicons --> <link rel="icon" href="images/favicons/favicon.ico"> <link rel="apple-touch-icon" href="images/favicons/apple-touch-icon.png"> <link rel="apple-touch-icon" sizes="72x72" href="images/favicons/apple-touch-icon-72x72.png"> <link rel="apple-touch-icon" sizes="114x114" href="images/favicons/apple-touch-icon-114x114.png"> <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. --> <!--[if lt IE 9]> <script src="js/html5shiv.js"></script> <script src="js/respond.min.js"></script> <![endif]--> <!--[if IE 9 ]><script src="js/ie-matchmedia.js"></script><![endif]--> </head> <body> <div id="page" data-linkscroll='y'> <!-- ************************************************************ * Intro section ************************************************************ --> <section class="taille pd-0 pos-rel vh100" data-rgen-sm="h-reset" id="home"> <!-- ************************************************************ * Popup form block ************************************************************ --> <!-- form : "mfp-hide" Add this class before using --> <div class="white-block"> <div class="align-c pd-b-0" data-rgen-sm="pd-20"> <p class="sq90 inline-flex flex-cc fs80 mr-0 txt-color1"><img src="images/logoRegister.png" width="400px" height="400px" /></p> <h2 class="title mr-0" data-rgen-sm="small">Inscription pour vendre sur ToutPaie</h2> </div> <div class="pop-body" data-rgen-sm="pd-20"> <!-- form-block --> <div class="form-block"> <form action="form-data/traitement.php" method="POST"> <div class="field-wrp"> <input type="hidden" name="to" value="[email protected]"> <div class="form-group"> <input class="form-control" data-label="Nom et prénom" required data-msg="Entrez votre Nom et prénom." type="text" name="nomprenom" placeholder="Nom et prénom"> </div> <div class="form-group"> <input class="form-control" data-label="Email" required data-msg="Entrez votre email." type="email" name="email" placeholder="Email"> </div> <div class="form-group"> <input class="form-control" required data-label="Phone" pattern="(01|02|03|04|05|06|07|08|09)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}" data-msg="Entrez votre numéro de téléphone." type="text" name="phone" placeholder="Téléphone" title="Téléphone au format 04.00.00.00.00 ou 0400000000"> </div> <!--<div class="form-group"> <input class="form-control" data-label="Adresse postale" required data-msg="Entrez votre adresse postal." type="text" name="adressepostale" placeholder="Adresse postale"> </div> <div class="form-group"> <input class="form-control" data-label="Code postal" pattern="([A-Z]+[A-Z]?\-)?[0-9]{1,2} ?[0-9]{3}" required data-msg="Entrez votre code postal." type="text" name="cp" placeholder="Code postal" title="Code postal au format 31 100 ou 31100"> </div> <div class="form-group"> <input class="form-control" data-label="Ville" required data-msg="Entrez votre ville." type="text" name="ville" placeholder="Ville"> </div>--> <div class="form-group"> Départements : <select name="id"> <?php $sql2 = 'SELECT * FROM client_zone'; $result2 = $conn->query($sql2); if ($result2->num_rows > 0) { while($donnees2 = $result2->fetch_assoc()) { echo ('<option value="'.$donnees2['id'].'">'.$donnees2['name'].'</option>'); } } else { echo "0 results"; } $conn->close(); ?> </select> </div> <div class="form-group"> <input class="form-control" data-label="siret" pattern="[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{5}" data-msg="Entrez votre Siret." type="text" name="siret" placeholder="Siret" title="Siret au format 254 851 369 54218"> </div> </div> <button type="submit" class="btn solid btn-default block"><i class="fa fa-envelope-o"></i> soumettre</button> </form><!-- / form --> </div><!-- / form block --> </div> </div><!-- /#popup-content --> <!-- ************** END : Popup form block ************** --> </section> <!-- ************** END : Intro section ************** --> <!-- ************************************************************ * Award logos ************************************************************ --> <div class="pos-rel pd-tb-tiny bg-dark1"> <div class="container"> <ul class="logo-list gt-small size-medium reset op-05"> <li><img src="images/award-logo-light-01.png" alt="award"></li> <li><img src="images/award-logo-light-02.png" alt="award"></li> <li><img src="images/award-logo-light-03.png" alt="award"></li> <li><img src="images/award-logo-light-04.png" alt="award"></li> <li><img src="images/award-logo-light-05.png" alt="award"></li> </ul> </div> </div> <!-- ************** END : Award logos ************** --> <!-- **************************************************************************** * Footer section * **************************************************************************** --> <footer class="pd-tb-small pos-rel bg-gray2" data-rgen-sm="pd-tb-small"> <div class="container" data-rgen-sm="align-c"> <div class="flex-row gt20 mb30"> <div class="flex-col-md-3"> <p><a class="inline-block max-px-w150" href="#"><img alt="logo" src="images/logo.png" /></a></p> <p>Siège social: <br /> Tel : </p> <div class="mr-b-20"></div> </div> <!-- // END : column // --> <div class="flex-col-md-3"> <h3 class="title tiny bold-n">A propos de ToutPaie</h3> <ul class="list-1"> <li><a href="#popup-content" target="_blank">Mentions l&eacute;gales</a></li> <li><a href="#popup-content" target="_blank">Opportunit&eacute;s de carri&egrave;re</a></li> <li><a href="#popup-content" target="_blank">ToutPaie Assistant</a></li> <li><a href="#popup-content" target="_blank">Application Mobile</a></li> <li><a href="#popup-content" target="_blank">Vendez gratuitement sur ToutPaie</a></li> <li><a href="#popup-content" target="_blank">ToutPaie Advertising</a></li> </ul> </div> <!-- // END : column // --> <div class="flex-col-md-3"> <h3 class="title tiny bold-n">RESOURCES</h3> <ul class="list-1"> <li><a href="#popup-content" target="_blank">Support</a></li> <li><a href="#popup-content" target="_blank">Blog</a></li> <li><a href="http://www.mon.ToutPaie.com/kb.php?id=privacy" target="_blank">POLITIQUE DE CONFIDENTIALIT&Eacute;</a></li> <li><a href="http://www.mon.ToutPaie.com/kb.php?id=second-question" target="_blank">Espace S&eacute;curit&eacute;</a></li> <li><a class="set-popup" href="http://www.mon.ToutPaie.com/kb.php?id=condition-dutilisateion" target="_blank">CONDITIONS D&#39;UTILISATION...</a></li> <li><a class="set-popup" href="#popup-content" target="_blank">POLITIQUE DE CONFIDENTIALIT&Eacute; </a></li> </ul> </div> <!-- // END : column // --> <div class="flex-col-md-3"> <h2 class="title tiny bold-n">NEWSLETTERS</h2> <p>Abonnez-vous &agrave; notre newsletter mensuelle pour rester &agrave; jour</p> <!-- form-block --> <div class="form-block"> <form action="form-data/notify-me.php" class="form-widget" data-formtype="newsletter"> <div class="flex-row gt10"> <div class="flex-col-md-9"> <div class="form-group"><input class="form-control w-100" data-label="Email" data-msg="Please enter email." name="email" placeholder="Votre adresse email" type="email" /></div> </div> <div class="flex-col-md-3"><button class="btn solid btn-default block fs22 btn-reset" data-loading-text="Merci de patienter.." type="submit"></button></div> </div> <!-- / row --></form> <!-- / form --></div> <!-- form-block --></div> <!-- // END : column // --></div> <!-- // END : row // --> <hr /> <p class="align-c"><a href="http://wwww.ToutPaie.com." target="_blank">ToutPaie</a> &copy; <script>document.write(new Date().getFullYear());</script></p> </div> </footer> <!-- ************** END : footer ************** --> </div> <!-- /#page --> <!-- JavaScript --> <script> /* Use fonts with class name in sequence => f-1, f-2, f-3 .... */ var fgroup = [ 'Open Sans:400,300,300italic,400italic,600,700,600italic,700italic,800,800italic', 'Montserrat:400,700' ]; </script> <script data-pace-options='{ "ajax": false }' src="lib/pace/pace.min.js"></script> <script src="minify/rgen_min.js"></script> <script async src="js/rgen.js"></script> <script type='text/javascript' data-cfasync='false'>window.purechatApi = { l: [], t: [], on: function () { this.l.push(arguments); } }; (function () { var done = false; var script = document.createElement('script'); script.async = true; script.type = 'text/javascript'; script.src = 'https://app.purechat.com/VisitorWidget/WidgetScript'; document.getElementsByTagName('HEAD').item(0).appendChild(script); script.onreadystatechange = script.onload = function (e) { if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { var w = new PCWidget({c: '0d0a1cee-f727-4d80-b1ac-51c519f59284', f: true }); done = true; } }; })();</script> </body> </html>