le formulaire ne se submit apparemment pas tout le temps ?!

le formulaire ne se submit apparemment pas tout le temps ?! - PHP - Programmation

Marsh Posté le 29-05-2006 à 10:21:25    

Bonjour,
 
J'ai développé une page qui permet d'envoyer un mail à partir d'un formulaire tout ce qu'il y a de plus classique.
 
Lorsque je remplis et submit le formulaire depuis mon pc, tout marche bien (et le client reçoit le mail), mais lorsque le client essaie de faire la même chose, le formulaire parait ne pas être envoyé, car il ne passe pas dans la boucle suivante :  

Code :
  1. if ($HTTP_POST_VARS && $action=="send" )


 
sachant que mon formulaire est défini comme suit :

Code :
  1. print "<form action='".url("index.php3?level=$level&pgm=MMP_HLPMAIL&action=send&mail=$mail" )."' enctype=\"multipart/form-data\" method=\"POST\" name=\"hlp_mail\">";


 
Quelqu'un aurait-il une piste à me donner, parce que je commence vraiment à tourner en rond là ?!
 
Merci d'avance.

Message cité 1 fois
Message édité par Blo_odyMarY le 29-05-2006 à 11:01:57
Reply

Marsh Posté le 29-05-2006 à 10:21:25   

Reply

Marsh Posté le 29-05-2006 à 10:47:25    

t'as essayé en remplaçant $action=="send" par un strcmp ?


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 29-05-2006 à 10:48:00    

ah et le parametre session de ton lien c'est normal que ce soit en dur ? :heink:


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 29-05-2006 à 10:51:48    

Blo_odyMarY a écrit :

Bonjour,
 
J'ai développé une page qui permet d'envoyer un mail à partir d'un formulaire tout ce qu'il y a de plus classique.
 
Lorsque je remplis et submit le formulaire depuis mon pc, tout marche bien (et le client reçoit le mail), mais lorsque le client essaie de faire la même chose, le formulaire parait ne pas être envoyé, car il ne passe pas dans la boucle suivante :  

Code :
  1. if ($HTTP_POST_VARS && $action=="send" )


 
sachant que mon formulaire est défini comme suit :

Code :
  1. <form action='index.php3?level=DS&pgm=DJKSDS&action=send&mail=xx&session=fjksdhfkjsdhkjsdhfkj' enctype="multipart/form-data" method="POST" name="hlp_mail">




 
$HTTP_POST_VARS est obsolète dans les versions récentes de PHP (enfin, récentes... ça fait quand même un moment). C'est $_POST qu'il faut utiliser. Mais la condition ne sert à rien, vu que $_POST sera tout le temps défini (!= NULL). D'ailleurs pour tester la définition d'un identifiant, il faut utiliser http://fr.php.net/isset.
 
Pour la deuxième partie de la condition, $action provient de l'url donc il faut remplacer par $_GET['action']... et là aussi passer un coup de isset avant.
 
Bref, revoir les bases... [:spamafote]

Message cité 1 fois
Message édité par sielfried le 29-05-2006 à 10:52:00

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-05-2006 à 10:55:32    

En fait j'ai copié le code html, mais voilà le code php en ce qui concerne le formulaire :
 

Code :
  1. print "<form action='".url("index.php3?level=$level&pgm=MMP_HLPMAIL&action=send&mail=$mail" )."' enctype=\"multipart/form-data\" method=\"POST\" name=\"hlp_mail\">";


 
la fonction url crypte toute l'URL, donc pas de soucis de sécurité.
 
je n'ai pas essayé de faire un strcmp non.
 
ce que j'ai du mal à comprendre, c'est en quoi ca peut marcher chez moi mais pas chez le client ? si ca venait du code php, alors ca devait marcher partout ou déconner partout...
 
j'y trouve aucune logique en fait, et ca me bloque :(

Reply

Marsh Posté le 29-05-2006 à 10:57:08    

"chez toi" ça veut dire sur ton propre serveur PHP ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-05-2006 à 11:00:21    

sielfried a écrit :

$HTTP_POST_VARS est obsolète dans les versions récentes de PHP (enfin, récentes... ça fait quand même un moment). C'est $_POST qu'il faut utiliser. Mais la condition ne sert à rien, vu que $_POST sera tout le temps défini (!= NULL). D'ailleurs pour tester la définition d'un identifiant, il faut utiliser http://fr.php.net/isset.
 
Pour la deuxième partie de la condition, $action provient de l'url donc il faut remplacer par $_GET['action']... et là aussi passer un coup de isset avant.
 
Bref, revoir les bases... [:spamafote]


 
Bonjour et merci pour la réponse,
 
Il se trouve que je travaille sur une appli qui date vraiment, et pour rester homogène j'utilise la même façon de programmer.  
 
Il faut certes utiliser les variables $_POST et $_GET, mais le problème n'est pas là en fait, ca devrait marcher correctement avec le code que j'ai. Ce que je ne comprends vraiment pas, c'est pourquoi ca marche de mon pc et pas de chez les clients...
 
Je sais que c'est pas la bonne manière de faire, mais on a vraiment pas le temps de remettre au gout du jour le code de notre appli pour le moment...

Reply

Marsh Posté le 29-05-2006 à 11:01:17    

sielfried a écrit :

"chez toi" ça veut dire sur ton propre serveur PHP ?


 
non, chez moi c'est sur mon PC, depuis l'endroit ou je travaille.
 
Le client et moi testons à partir du même serveur ! c'est ça que je ne comprends pas ! c'est dingue

Reply

Marsh Posté le 29-05-2006 à 12:43:30    

J'ai pas vraiment d'idée sur pourquoi ça marcherait différemment chez toi, mais tu peux déjà essayer d'écrire quelque chose de plus correct et voir ce que ça donne, histoire d'être fixé(e).
 
Remplace la condition par :

Code :
  1. if (isset($_GET['action']) && $_GET['action'] == 'send')

et teste, tu verras bien.
 
Ceci dit, c'est sûr que c'est cette condition qui bloque ? Ca pourrait pas être juste l'envoi du mail ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed