IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoyer une requête POST à partir d'un e-mail


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Par défaut Envoyer une requête POST à partir d'un e-mail
    Salut a tous,

    Alors voila mon probleme j'aimerais inclure dans un e-mail un formulaire et renvoyer la reponse avec une requete POST mais ca ne marche pas alors qu qvec une requete GET cela fonctionne. J'ai besoin d'une requete POST car je demande l'envoi d'un mot de passe dans ce formulaire.

    J'ai fait le code de l'e-mail et il fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     function sendRegister($user,$level){
          $headers = "From: ".EMAIL_FROM_ADDR."\n";
         $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
         $headers .='Content-Transfer-Encoding: 8bit'; 
     
    	$subject = "Request Autorisation";
     
    	 $message ='<html><head><title>Request Autorisation</title></head><body>The user <b>'.$user.'</b> wants an autorisation to be <b>'; 
     
          if($level=="2"){
    		$message.="Customer";
    	  }
     if($level=="9"){
    		$message.="Administrator";
    	  }
    	  $message.='<form action="http://localhost/xampp/BAP/process.php" method="POST">';
    	  $message.="</b><br/>Fill in and submit to give the autorisation:<br/>";
    	  $message.='Name<input type="text" name="name"/><br/>Password<input type="password" name="password"/><br/>';
    	  $message.='<input type="hidden" name="subvalid" value="1">';
    	  $message.='<input type="hidden" name="user" value="'.$user.'"><br/>';
    	  $message.='<input type="hidden" name="level" value="'.$level.'"><br/>';
    	  $message.='<input type="submit" value="Autorise"></td></tr>';
    	  $message.='</form>';
     
          return mail(EMAIL_FROM_ADDR,$subject,$message,$headers);
       }
    Donc voila j'aimerais savoir s'il y a possibilite que ca fonctionne avec une requete POST. Ou alors auriez vous quelque chose a me proposer pour securiser l'envoi du mot de passe (du moins qu'il n'apparaisse pas en clair dans la requete).

    Pour tester la presence des parametre j'ai fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach($_POST as $key => $val) echo '$_POST["'.$key.'"]='.$val.'<br />';
    et ca ne me renvoie rien alors que auand je change dans le mail le POST en GET et que je fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach($_GET as $key => $val) echo '$_GET["'.$key.'"]='.$val.'<br />';
    J'ai bien mes parametres avec leurs valeurs respectives qui s'affichent.

    Merci de m'avoir lu et merci d'avance des vos reponses.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 719
    Par défaut
    Tous les lecteurs d'e-mail ne gèrent peut-être pas l'HTML donc il vaut mieux faire un lien avec un identifiant par exemple pour ne pas afficher d'informations sensibles dans l'URL

  3. #3
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Par défaut
    Citation Envoyé par mathieu Voir le message
    Tous les lecteurs d'e-mail ne gèrent peut-être pas l'HTML donc il vaut mieux faire un lien avec un identifiant par exemple pour ne pas afficher d'informations sensibles dans l'URL
    Merci pour ta reponse,
    Ici le lecteur d'e-mail sera forcement outlook qui gere l'html donc ca ne devrait pas poser de probleme a se niveau la.

    Par contre tout doit se passer dans l'e-mail, la personne responsable ne doit pas avoir a se loguer puis valider le lien. Je sais que ca revient au meme mais c'est dans le cahier des charges. Desole d'avoir oublie ce point.

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Si tu n'arrives pas à utiliser POST, tu peux toujours laisser en GET mais
    rediriger le navigateur pour "nettoyer" l'url.

    Si j'ai bien compris, ce qui t'embête avant tout, c'est que le mot de passe
    figure dans l'url après l'envoi ?

    essaie donc ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    // traiter les paramètres ici
     
    header('Location: http://...../page.html');
    exit;

  5. #5
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Par défaut
    Citation Envoyé par marcha Voir le message
    Salut,

    Si tu n'arrives pas à utiliser POST, tu peux toujours laisser en GET mais
    rediriger le navigateur pour "nettoyer" l'url.

    Si j'ai bien compris, ce qui t'embête avant tout, c'est que le mot de passe
    figure dans l'url après l'envoi ?

    essaie donc ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    // traiter les paramètres ici
     
    header('Location: http://...../page.html');
    exit;
    Salut,
    Merci de ta reponse.
    C'est tout a fait ca le mot de passe ne doit pas figurer dans l'url renvoyee par le mail.
    Si j'ai bien compris je place ca dans la page qui traite l'url renvoyee donc oui ca doit surement marcher (je testerais ca demain au boulot).
    Est ce aue quelqu'un saurait pourquoi on ne peut pas renvoyer des parametres en POST a partir d'un mail alors au'on peut le faire en GET.
    Est il possible d'encoder le mot de passe en md5 lors du traitement du mail donc chez le client?

  6. #6
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Pour le MD5, c'est faisable avec du javascript, mais je doute que tu puisses
    intégrer du javascript dans un mail html, à tester.

    Sinon, as-tu essayer d'utiliser un iframe ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer une requête POST
    Par manquant dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 08/03/2012, 16h17
  2. Envoi d'une requête POST à partir d'un client telnet!
    Par mumu27 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 22/11/2009, 10h18
  3. envoyer une requète "post" à un site internet
    Par CobolProgrammator dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2009, 13h40
  4. Réponses: 6
    Dernier message: 11/07/2008, 09h34
  5. Comment envoyer une requête POST via HTTP ?
    Par pdtor dans le forum C++
    Réponses: 2
    Dernier message: 13/09/2005, 05h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo