Problème sur formulaire

Résolu/Fermé
patdu17000 Messages postés 6 Date d'inscription samedi 14 janvier 2017 Statut Membre Dernière intervention 14 janvier 2017 - 14 janv. 2017 à 12:23
patdu17000 Messages postés 6 Date d'inscription samedi 14 janvier 2017 Statut Membre Dernière intervention 14 janvier 2017 - 14 janv. 2017 à 17:30
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

4 réponses

NHenry Messages postés 15175 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 25 décembre 2024 350
14 janv. 2017 à 12:26
Sans le code concerné, impossible de répondre.
0
patdu17000 Messages postés 6 Date d'inscription samedi 14 janvier 2017 Statut Membre Dernière intervention 14 janvier 2017
Modifié par NHenry le 14/01/2017 à 14:08
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.
0
patdu17000 Messages postés 6 Date d'inscription samedi 14 janvier 2017 Statut Membre Dernière intervention 14 janvier 2017
Modifié par NHenry le 14/01/2017 à 14:08
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.
0
NHenry Messages postés 15175 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 25 décembre 2024 350
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).
0
patdu17000 Messages postés 6 Date d'inscription samedi 14 janvier 2017 Statut Membre Dernière intervention 14 janvier 2017 > NHenry Messages postés 15175 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 25 décembre 2024
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();
?>
0
NHenry Messages postés 15175 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 25 décembre 2024 350
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.
0
patdu17000 Messages postés 6 Date d'inscription samedi 14 janvier 2017 Statut Membre Dernière intervention 14 janvier 2017
14 janv. 2017 à 17:13
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
0
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
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.
0
patdu17000 Messages postés 6 Date d'inscription samedi 14 janvier 2017 Statut Membre Dernière intervention 14 janvier 2017
14 janv. 2017 à 17:30
mille mercis Jordane

c’était en effet que ça

patrick
0