erreur formulaire php bizarre

Petit nouveau ! | 3 Messages

02 août 2011, 10:40

salut j'ai créer mon script php de contact, celui ci fonctionne parfaitement sur free et quand je mets celui ci sur mon hebergement payant sur online.fr, j'ai comme erreur:
Warning: mail() [function.mail]: No valid recipients in /contact24.php on line 35
c'est exactement le même script que sur free et online, j'ai juste changer le mail destinataire dans mon ficher include config.php!
on dirait que sur online, il ne m'envoi pas les variables du formulaire vers ma page contact24.php
voici mon code:
mon page formulaire:
<table width="44" height="350" border="0" bordercolor="#000066" align="left">
  <tr > 
    <td height="340"> 
      <form action="contact24.php" method="post">
        <div align="left"><b> Votre Email : </b> 
          <input type="text" name="email" value="" size="30">
          <br>
          <b>Votre Nom :</b> 
          <input type="text" name="pseudo" value="" size="30">
          <br>
          <b>Objet de votre contact : </b> <br>
          <textarea name="texte" cols="40"></textarea>
          <br>
          <input type="submit" value="Soumettre" name="submit">
        </div>
      </form>
    </td>
  </tr>
</table>
et ma page contact24.php
<?
require "config.php";
?>
<?
echo " <center><b><i>Votre email : $email </b><br>";
echo " <b>Votre pseudo : $pseudo </b><br>";
echo '<b><br><br>Votre commentaire à bien était transmis.<br>';
echo 'Nous vous réponderons dans les plus brefs délais</b></center><br>';
echo "<center><a href=\"$url\">Retour sur notre site</a></center>"; //
?>
<?php
$to = $email;
$sujet  = 'Confirmation de votre commentaire';
$corps  = "$pseudo , Nous vous confirmons la bonne réception de votre commentaire.\n";
$corps .= "$texte , Nous vous confirmons la bonne réception de votre commentaire.\n";
$corps .= "Nous allons vous répondre trés prochainement.\n";
$corps .= "<br>Vous pouvez vous rendre sur notre site en cliquant a l'adresse suivante :\n<br><a href=\"$url\">Accueil de notre site>/a>"; //
$headers  = "MIME-Version: 1.0\n";
$headers .= "From: $reply\n"; // Votre email
$headers .= "Reply-To:  $reply\n";  // Votre email
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
mail($to,$sujet,$corps,$headers);
?>

merci de votre aide

ViPHP
xTG
ViPHP | 7331 Messages

02 août 2011, 13:10

Alors détaillons ce qui ne va pas en première lecture :
1) il faut mettre <?php au lieu de <?, les short_tags sont dépréciés et sont peut être même désactivé sur ton serveur ce qui pourrait occasionner la non interprétation du code PHP.
2) Il faut récupérer les variables, à savoir $_POST['pseudo'] au lieu de $pseudo. Le paramètre register_global permet de récupérer les variables directement mais n'est pas actif chez tous les hébergeurs.
3) Il faut tester les données provenant du formulaire !!!Est-ce un email valide et pas autre chose ? Est-ce un message correct et non pas une tentative d'injection de code ? Regardes du côté des fonctions suivantes pour les tests : isSet(), filter_input() (ou filter_var())

Petit nouveau ! | 3 Messages

02 août 2011, 13:56

salut xtg, alors j'ai réussi en avec les variables $_post
merci a toi encore