Problème sur formulaire [Résolu]

patdu17000 6 Messages postés samedi 14 janvier 2017Date d'inscription 14 janvier 2017 Dernière intervention - 14 janv. 2017 à 12:23 - Dernière réponse : patdu17000 6 Messages postés samedi 14 janvier 2017Date d'inscription 14 janvier 2017 Dernière intervention
- 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

Afficher la suite 

9 réponses

Répondre au sujet
NHenry 14010 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 17 décembre 2017 Dernière intervention - 14 janv. 2017 à 12:26
0
Utile
1
Sans le code concerné, impossible de répondre.
patdu17000 6 Messages 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.
Commenter la réponse de NHenry
patdu17000 6 Messages postés samedi 14 janvier 2017Date d'inscription 14 janvier 2017 Dernière intervention - Modifié par NHenry le 14/01/2017 à 14:08
0
Utile
3
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 14010 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 17 décembre 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).
patdu17000 6 Messages postés samedi 14 janvier 2017Date d'inscription 14 janvier 2017 Dernière intervention > NHenry 14010 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 17 décembre 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();
?>
NHenry 14010 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 17 décembre 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.
Commenter la réponse de patdu17000
patdu17000 6 Messages postés samedi 14 janvier 2017Date d'inscription 14 janvier 2017 Dernière intervention - 14 janv. 2017 à 17:13
0
Utile
1
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 19308 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 décembre 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.
Commenter la réponse de patdu17000
patdu17000 6 Messages postés samedi 14 janvier 2017Date d'inscription 14 janvier 2017 Dernière intervention - 14 janv. 2017 à 17:30
0
Utile
mille mercis Jordane

c’était en effet que ça

patrick
Commenter la réponse de patdu17000