Signaler

Problème sur formulaire [Résolu]

Posez votre question patdu17000 6Messages postés samedi 14 janvier 2017Date d'inscription 14 janvier 2017 Dernière intervention - Dernière réponse le 14 janv. 2017 à 17:30 par patdu17000
Bonjour,

j'utilise avec succés ce traitement de formulaire en PHP depuis de nombreuse année,

sauf que depuis quelque temps OVH me lance un message d'alerte en me disant que ma version PHP 4.4 est périmé,

je modifie dan mon espace client la version en PHP 5.6, version conseillé par OVH et la, plus rien ne foctionne...

voici ce qui s'affiche aprés l'envoi du formulaire :

Avertissement : Variable passé à chaque () est pas un tableau ou un objet dans /home/locationli/www/traitement.php sur la ligne 10

avis : Undefined variable: sujet dans /home/locationli/www/traitement.php sur la ligne 13

Avertissement : Vous ne pouvez pas modifier les informations d' en- tête - headers already envoyés par (output started at /home/locationli/www/traitement.php:10) dans /home/locationli/www/traitement.php sur la ligne 15

que faut il ajouter pour qu'il fonctionne sur d'autres vertion de PHP ?

pat du 17000

merci

Afficher la suite 
Utile
+0
plus moins
Sans le code concerné, impossible de répondre.
patdu17000 6Messages postés samedi 14 janvier 2017Date d'inscription 14 janvier 2017 Dernière intervention - 14 janv. 2017 à 13:56
bonjour Henry,

voici le code html du formulaire
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="formulaire.css" />



   <title>Formulaire de réservation, location bateaux à moteur</title>


   <link rel="SHORTCUT ICON" href="logolblr2.png" />

            </head>
              <body>
      <div id="bloc_page">

             <div id="www"> 
      <a href="http://www.Location-bateau-la-rochelle.fr" rel="nofollow noopener noreferrer" target="_blank"><img src=""quot;"quot;images/logo_location.png" style="border: 0px none;" alt="logo" width="253" height="120" title="www.location-bateau-la-rochelle.fr"></a>
       </div> <br/><br/><br/><br/><br/><br/><br/>


  <p>Avez vous vérifiez la disponibilité du bateau que vous allez reserver ?<br/><br/>

  <a href="tarif.php" rel="nofollow noopener noreferrer" target="_blank" title="Voir le planning des reservations">Page tarif</a> ou appelez 7J/7J nous au 07 81 98 97 90 <br/><br/><br/><br/>

  Afin de remplir votre contrat et de valider votre réservation,<br/><br/>
  merci de compléter les renseignements demandés ci-dessous <br/><br/>
  et sur la page suivante de choisir le bateau et de régler l'acompte<br/><br/>

  </p>




        <form method="post" action="traitement.php" >
  <input type="hidden" name="subject" value="reservation">

  <fieldset>
   <legend>Renseignez vos coordonnées :</legend>
 <br />

 <label>Votre Email * : </label>
 <input type="email" name="email" size="40" required /><br /><br />


    <label>Votre Téléphone portable * : </label>
 <input type="text" name="telephone_portable" size="14" id="telephone_portable" placeholder="Ex : 0602020202" required /><br /><br />


 <label>Civilité * : </label>
    <input type="radio" name="civilite" id="monsieur" value="monsieur" />M.
    <input type="radio" name="civilite" id="mlle" value="mlle" />Mlle
    <input type="radio" name="civilite" id="mme" value="mme" />Mme<br /><br />

 <label>Nom * : </label>
    <input type="text" name="nom" size="30" required /><br /><br/> 
 <label>Prénom * : </label>
    <input type="text" name="prenom" size="30" required /><br /><br />



 <label>Permis, si location de bateau à moteur en navigation :</label>
    <input type="radio" name="permis" id="cotier" value="cotier" />
    Côtier
    <input type="radio" name="permis" id="hauturier" value="hauturier" />Hauturier<br /><br />
  <label>Numéro du permis : </label>
    <input type="text" name="permis" size="30" /><br /><br/>


* champ obligatoire<br /><br />   </fieldset>            <fieldset> <legend>Renseignez les menus déroulants ci-dessous :</legend> <br />      <label><em>Dates de votre location * :</em><br/><br/></label>  du <input type="date" name="date_de_debut" id="date_de_debut" required > au <input type="date" name="date_de_fin" id="date_de_fin" required ><br /><br /><br/>    <label><em>Heure d'arrivée :</em><br/><br/></label>        <label for="heure_nuit_quai"><strong>Heure d'arrivée pour une nuit à quai</strong><br/><br/>        dans la vedette Antares 8.80, Prestige 30, NC 9, Monte Carlo 32 :</label>  <select name="heure_nuit_quai" id="heure_nuit_quai">   <option value="rien">------------</option>   <option value="definir">à définir</option>   <option value="18h30">18h30</option>   <option value="19h00">19h00</option>   <option value="19h30">19h30</option>   <option value="20h00">20h00</option>   <option value="20h30">20h30</option>   </select><br /><br /><br/><br/>      <label><strong>Heure d'arrivée pour naviguer en mer</strong><br/><br/>            avec les bateaux :</label>  <select name="heure_naviguer" id="heure_naviguer">   <option value="rien">--------------------------------------------------------------------------------------</option>   <option value="definir">à définir</option>                        <option value="9h00">9h00</option>   <option value="9h30">9h30</option>   <option value="10h00">10h00</option>   <option value="10h30">10h30</option>   <option value="14h00">14h00 uniquement si le bateau est louable à la 1/2 journée</option>   <option value="14h30">14h30 uniquement si le bateau est louable à la 1/2 journée</option>   </select><br /><br /><br/>                        <p>----------------------- Uniquement pour le Jet Ski -----------------------</p>            <label for="heure_jetski">Heure d'arrivée :</label>  <select name="heure_jetski" id="heure_jetski">   <option value="rien">------------</option>   <option value="definir">à définir</option>   <option value="9h30">9h30</option>   <option value="10h00">10h00</option>            <option value="13h00">13h00</option>   <option value="13h30">13h30</option>   <option value="16h30">16h30</option>   <option value="17h00">17h00</option>   </select><br /><br /><br/>                                      <label for="commentaires">Commentaires :</label><br/>   <textarea name="commentaires" id="commentaires" rows="10" cols="50"></textarea><br /><br />   * choix obligatoire       </fieldset>      <h6>   <label for="envoyer">En cliquant ici vous allez finaliser votre réservation choisir votre bateau, la durée et payer l'acompte :</label>   <input type="submit" name="envoi" value="Cliquez ici" />      </h6>      </form>        <div id="bas">                                         <img src=""quot;"quot;images_tarifs/2tours.png" alt="2tours" title="Les 2 tours" width="782" height="322">                                                       <script type="text/javascript">  var _gaq = _gaq || [];  _gaq.push(['_setAccount', 'UA-32817916-3']);  _gaq.push(['_trackPageview']);  (function() {    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;    ga.src=""quot;"'https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);  })();       </script>                                         </div>                    </div>     </body>          </html>


EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
Répondre
Donnez votre avis
Utile
+0
plus moins
voici maintenant le code du traitement :

<?php

  error_reporting(E_ALL);
ini_set('display_errors', 'On');


  $TO = "patrick.gillet@location-bateau-la-rochelle.fr";
  $h = "From: " . $TO;
  $message = "";
  while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}
  mail($TO, $subject, $message, $h);

  header('Location: [http://www.location-bateaux-la-rochelle.com/index.php%27); http://www.location-bateaux-la-rochelle.com/index.php');|nofollow]    exit();
?>  


merci

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
NHenry 13699Messages postés vendredi 14 mars 2003Date d'inscription ModérateurStatut 21 mars 2017 Dernière intervention - 14 janv. 2017 à 14:11
Pour récupérer les données d'un formulaire, ce n'est plus $HTTP_POST_VARS, mais $_POST (ou $_GET, $_REQUEST, $_SERVER, ... ).
De plus, tu récupère directement la valeur du champ, il est donc possible d'injecter un code HTML malveillant dans ton mail sans aucun problème (voir htmlspecialchars).
Répondre
patdu17000 6Messages postés samedi 14 janvier 2017Date d'inscription 14 janvier 2017 Dernière intervention - 14 janv. 2017 à 14:43
merci Henry

de ta réponse rapide mais en configuration PHP 5.6

voici le code erreur que j'ai :

Avis : Undefined variable: sujet dans /home/locationli/www/traitement.php sur la ligne 13

Avertissement : Vous ne pouvez pas modifier les informations d' en- tête - headers already sent by (output started at /home/locationli/www/traitement.php:13) dans / home / locationli / www / traitement.php sur la ligne 15

voici le code du traitement que je viens de faire suite à ta modification :

<?php

error_reporting(E_ALL);
ini_set('display_errors', 'On');


$TO = "patrick.gillet@location-bateau-la-rochelle.fr";
$h = "From: " . $TO;
$message = "";
while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);

header('Location: http://www.location-bateaux-la-rochelle.com/index.php');
exit();
?>
Répondre
NHenry 13699Messages postés vendredi 14 mars 2003Date d'inscription ModérateurStatut 21 mars 2017 Dernière intervention - 14 janv. 2017 à 15:37
Merci de mettre les messages d'erreur dans leur langue d'origine, cela évite es approximations de la traduction.

Où assignes-tu la variable $subject ?

Comme tu as un avertissement qui s'affiche, il y a déjà un envoi de contenu, donc ça verrouille les headers.
Répondre
Donnez votre avis
Utile
+0
plus moins
voici le message non traduit :

Notice: Undefined variable: subject in /home/locationli/www/traitement.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at /home/locationli/www/traitement.php:13) in /home/locationli/www/traitement.php on line 15

ce que je ne comprend pas c'est que si mon hébergement sur ovh est réglé sur php 4.4,

il fonctionne correctement sans message d'erreur,

hors dès que je le réglé en PHP 5.6 le message d'erreur arrive
jordane45 16484Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 23 mars 2017 Dernière intervention - 14 janv. 2017 à 17:18
Bonjour,

Sans oublier les lignes suivantes dans le code
error_reporting(E_ALL);
ini_set('display_errors', 'On');

Qui active l'affichage des erreurs PHP ....

Mais comme le dit NHENRY, la variable $subject n'est pas initialisée dans ton code .. d'où le message d'erreur !

Ajoute un truc du genre :
 $subject = "Le sujet du mail que tu veux mettre";

avant la fonction mail et tout devrait rentrer dans l'ordre.
Répondre
Donnez votre avis
Utile
+0
plus moins
mille mercis Jordane

c’était en effet que ça

patrick
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !