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

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Points : 6
    Points
    6
    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 éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    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
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Points : 6
    Points
    6
    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 : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    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;
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Points : 6
    Points
    6
    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 : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    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 ?
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  7. #7
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par marcha Voir le message
    Pour le MD5, c'est faisable avec du javascript, mais je doute que tu puisses
    intégrer du javascript dans un mail html, à tester.
    il n'a pas besoin de d'utiliser du JavaScript, l'e-mail est créé en PHP
    comme je le disais dans mon premier message, il suffit de faire passer une identifiant dans l'URL pour éviter de mettre le mot de passe dans l'URL

  8. #8
    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 : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Citation Envoyé par mathieu Voir le message
    il n'a pas besoin de d'utiliser du JavaScript, l'e-mail est créé en PHP
    Si je ne m'abuse, c'est au moment de poster le formulaire qu'il aimerait
    encoder en md5, donc coté client.
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Salut et merci a vous,
    Tout a fait si c'est possible le md5 devrait se faire du cote client.
    Pour l'identifiant c'est assez complique parce que j'envoie le meme mail a tout les administrateurs et il suffit au'un seul valide pour que la personne qui vient de s'enregistrer soit autorise a avoir acces au systeme.
    Le mail sert en effet a valider les autorisations d'un nouveau client.
    L'identifiant m'obligerais a envoyer a chaque administrateur un mail different et donc du coup a faire une nouvelle page pour la validation en fonction de l'identifiant alors que j'ei deja la page pour la validation en fonction du mot de passe et de l'identifiant de l administrateur.
    Je vais regarder sur le forum si c'est possible d'encoder en md5 du cote client.

    J'avais penser que ca serait peut etre possible en incluant dans le code du mail un script present sur le serveur en donnant l'adresse de la page sur le serveur comme url...

  10. #10
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bon bah ca marche j'ai recupere un script aui permet d'encoder en md5 et j'ai fait comme j'ai dit dans le precedent post avec l'url en absolu.

    Voila le script, merci a son auteur s'il passe par la:
    Script md5

    Merci a tous.

    Et si quelqu'un peut me dire pourquoi ca ne marche pas en POST ca m'interesse de savoir.

    ++
    Thomas

+ 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