Page 1 sur 1

formulaire news et online

Posté : 15 nov. 2005, 11:45
par raph
bonjour

voila j'ai creer une formulaire d'inscription a une newsletter qui envoi la commande a un robot le probleme est le suivant ce n'est pas l'adresse email saisi dans le formulaire qui envoi la commande subscribe donc elle n'est pas enregistre par le robot ci dessous lescript du formulaire y a t'il qq qui sache solutionner ce pb merci d'avance
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Document sans titre</title> 
<style type="text/css">
<!--
.Style1 {
	color: #0000FF;
	font-weight: bold;
	font-size: 36px;
}
-->
</style>
</head> 

<body> 
<p>&nbsp;</p> 





<table width="484" border="2">
  <tr>
    <td width="472"><div align="center" class="Style1">NEWSLETTER</div></td>
  </tr>
  <tr>
    <td height="111"><p align="center">    
      <p align="center">Email :
      <form name="form1" method="post" action="">
        <div align="center">
          <input name="email" type="text" id="email" size="30">
        </div>
     <p align="center">    </td>
  </tr>
  <tr>
    <td height="62">      


	 
      <div align="left">
        
          <p>
            <input name="B1" type="radio" value="subscribe" checked>Abonnement
</p>
          <p>
            <input type="radio" name="B1" value="unscribe"> Désabonnement     
            </p>
   
    </div></td>
  </tr>
  <tr>
    <td height="62">
      <div align="right">
        <input type="submit" name="Submit" value="Envoyer">
        <input type="reset" name="Submit" value="Réinitialiser">
      </div>
    </form></td>
  </tr>
  <tr>
    <td height="62"><p align="center"> 
      <p align="center">
        <?php
if(!empty($_POST["B1"])) 
$message = $_POST['B1']." [ ".$_POST['email']." ]"; 
$email = $_POST['email'];
$point = strpos($email,".");
$aroba = strpos($email,"@"); 

if (isset($email) && $email != "") {
if($point=='')
{
echo "erreur point";
}
elseif($aroba=='')
{
echo "erreur arobase";
}
else
{
 if(email( 
  "webmaster",
  "[email protected]", 
    "" , $message )) {
echo "merci votre requete a été prise en compte"; 
}
else {
echo "desolé votre requete n'a pu aboutir";
}
} 
}
?>    
      <p align="center">
      </td>
  </tr>
</table> 
<p>&nbsp;</p> 
</body> 
</html>

Posté : 15 nov. 2005, 12:32
par DarkBlue
Je peux me tromper mais tu n as pas mis de script au bout du formulaire donc le formulaire ne marche pas :
<form name="form1" method="post" action=""> 

Posté : 15 nov. 2005, 12:42
par raph
le formulaire fonctionne tres bien et l'envoi egalement par contre la forme de l'envoi n'est pas bonne
le mail d'inscription devrait etre de la forme
exprediteur"[email protected]"
sujet "subscribe"
si l'utilisateur qui desir s'enregistré est toto

Posté : 15 nov. 2005, 12:45
par rami
Que fait le fonction email(..)? Car à priori, c'est elle qui envoit le mail. Donne nous son bout de code ;)

Posté : 15 nov. 2005, 12:54
par raph
en fait apres l'envoi du mail j'obtien

expediteur [email protected]
subject :
message subscribe [ [email protected] ]

j'ai prefere mettre la commande dans le message mais l'inscription ne fonctionne pas le robot prend en compte webmaster pour inscrition le code du formulaire et de la fonction email est un peut plus haut

Posté : 15 nov. 2005, 14:51
par rami
Il nous faut le code de la fonction email() pour t'aider. On ne peut pas deviner ce qu'elle fait!

En attendant, un exemple issu de la doc pour envoyer un mail:
<?php
     $to      = '[email protected]';
     $subject = 'le sujet';
     $message = 'Bonjour !';
     $headers = 'From: [email protected]' . "\r\n" .
     'Reply-To: [email protected]' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

     mail($to, $subject, $message, $headers);
 ?> 

Posté : 15 nov. 2005, 15:00
par raph
voici le code
<?php 

$message = $_POST['B1']." [ ".$_POST['email']." ]"; 
$email = $_POST['email']; 
$point = strpos($email,"."); 
$aroba = strpos($email,"@"); 

if (isset($email) && $email != "") { 
  if($point=='') 
  { 
    echo "erreur point"; 
  } 
  elseif($aroba=='') 
  { 
    echo "erreur arobase"; 
  } 
  else 
  { 
    if(email("webmaster", "[email protected]", "" , message )) { 
      echo "merci votre requete a été prise en compte"; 
    } 
    else { 
      echo "desolé votre requete n'a pu aboutir"; 
    } 
  } 
} 
?> 
B1 prenant alternativement la valeur "subscribe" ou unsubscribe" en fonction que ce sois un abonnement ou une desinscription
"email" etant l'adresse email entrer dans le formulaire avec laquelle l'utilisateur desir s'inscrire

Posté : 15 nov. 2005, 15:03
par rami
Tu l'as déjà donné ce code. Je te demande le code de la fonction email(), présente à cette ligne:
f(email("webmaster", "[email protected]", "" , message )) { 

Posté : 15 nov. 2005, 15:19
par raph
voici ce que j'ai pu trouver

email(chaîne compte,chaîne destinataire,chaîne sujet,chaîne message[,options]);
Cas concret, pour le compte "toto", cela donne :

email( "toto", "[email protected]", "Commentaire sur phpfrance.com", $_POST['nom'] . " a laissé un commentaire à propos de phpfrance.com: \n\n" . $_POST['texte'], $entetemail);

Posté : 15 nov. 2005, 15:22
par rami
Et tu n'as pas accès au code php de cette fonction? Parcequ'à priori, ton problème vient d'elle, ou du moins de son utilisation.

Posté : 15 nov. 2005, 15:27
par raph
non je ne pense pas

je sais juste que online a remplacer la fonction mail par email dans php rien de plus

Posté : 15 nov. 2005, 15:33
par zeus
Modération : raph, pense à utiliser les balise
 et [code] qui sont disponible au dessus de la zone de saisie du texte lorsque tu saisis du code, c'est plus lisible et ça donne plus envie de t'aider

Pour cette fois, je l'ai fait pour toi mais pense y ;)[/color]

Posté : 15 nov. 2005, 15:39
par rami
Ok, j'ai été voir le site d'online et j'ai trouvé ca:
bool email(string From, string To, string Sujet, string Message, string [Reply To]);

Détail des paramètres

From : une adresse simple (sans le domaine). Le nom de domaine est automatiquement rajouté. Ce paramètre ne peut pas être vide.
To : adresse de destination. Ce champ ne peut pas être vide.
Sujet : sujet.
Message : corps du message. Limité à 100 Ko.
Reply-To : ce paramètre est facultatif. S'il est mis, il indique une adresse de retour. Cela doit être une adresse simple (sans le domaine). Le nom du domaine est automatiquement rajouté.