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 :

envoi un $_POST sans formulaire


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut envoi un $_POST sans formulaire
    Bonjour,

    Coment faire pour envoyer une variable par la méthode $POST sans passer par un formulaire?

    Lorsque je clique sur un lien ca m'ouvre un fichier php qui effectue un traitement mail et qui renvoi, à la fin, vers une page PAYPAL par un location header. Je ne souhaite pas faire d'include de cette page de traitement sur la première page ou se trouve le lien.

    Ou par un formulaire avec des variable hidden mais qui s'execute automatiquement à la lecture du code.

    Merci

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    je te conseillerai de t'orienter vers javascript, avec sur ton lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a ... onclick="this.document.form['nom_form'].submit();">
    (pas super sur de mon javascript, mais l'idée est là ...

    tu veux déplacer le sujet ?
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    je ne pense pas que ca soit cela.
    Je m'explique.

    1°/PAGE RECAPITULATIVE sans aucune variable
    2°/ On clique sur un lien qui amene vers une page php end.php
    3°/execution de la page php qui forme toutes les variables à envoyer
    4°/en base de la page end.php j'ai une redirection vers paypal (location header) qui doit envoyer quelques variables en $_POST

  4. #4
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    ce ne serait pas onload ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    pourquoi ne pas utiliser des var de session alors ?

  6. #6
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    je ne pense pas que paypal va recuperer les var de session...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    Sinon essayer de définir la variable post à la main $_POST['var'] = XXX; ensuite rediriger vers la page

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Points : 65
    Points
    65
    Par défaut
    J'ai également le même problème (http://www.developpez.net/forums/vie...749014#2749014). Apparemment, la seule solution sont les sockets.

    Mais regarde dans la faq paypal, si mes souvenirs sont bons, ils donnent le code nécessaire pour différents language dont php ! Ou alors il faut télécharger la doc je ne me souviens plus mais c'est quelque part.
    "Software is like sex, it's better when it's free" -- Linus Torvalds

  9. #9
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    en le definissant à la main ca ne fonctionne pas.

    Jai dehja chercher sur la doc mais je nai pas trouver

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Points : 104
    Points
    104
    Par défaut
    Salut

    Et pourquoi ne pas faire un formulaire avec que des chanps "hidden" et qui s'envoie automatiquement ???

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Points : 65
    Points
    65
    Par défaut
    Oui oui ça existe, mes souvenirs étaient bons. C'est dans "code samples" sur le site.

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    PHP
     
    <?php
    // read the post from PayPal system and add 'cmd'
    $req = 'cmd=_notify-synch';
     
    $tx_token = $_GET['tx'];
    $auth_token = "GX_sTf5bW3wxRfFEbgofs88nQxvMQ7nsI8m21rzNESnl_79ccFTWj2aPgQ0";
    $req .= "&tx=$tx_token&at=$auth_token";
     
    // post back to PayPal system to validate
    $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
    $fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
    // If possible, securely post back to paypal using HTTPS
    // Your PHP server will need to be SSL enabled
    // $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
     
    if (!$fp) {
    // HTTP ERROR
    } else {
    fputs ($fp, $header . $req);
    // read the body data
    $res = '';
    $headerdone = false;
    while (!feof($fp)) {
    $line = fgets ($fp, 1024);
    if (strcmp($line, "\r\n") == 0) {
    // read the header
    $headerdone = true;
    }
    else if ($headerdone)
    {
    // header has been read. now read the contents
    $res .= $line;
    }
    }
     
    // parse the data
    $lines = explode("\n", $res);
    $keyarray = array();
    if (strcmp ($lines[0], "SUCCESS") == 0) {
    for ($i=1; $i<count($lines);$i++){
    list($key,$val) = explode("=", $lines[$i]);
    $keyarray[urldecode($key)] = urldecode($val);
    }
    // check the payment_status is Completed
    // check that txn_id has not been previously processed
    // check that receiver_email is your Primary PayPal email
    // check that payment_amount/payment_currency are correct
    // process payment
    $firstname = $keyarray['first_name'];
    $lastname = $keyarray['last_name'];
    $itemname = $keyarray['item_name'];
    $amount = $keyarray['payment_gross'];
     
    echo ("<p><h3>Thank you for your purchase!</h3></p>");
     
    echo ("<b>Payment Details</b><br>\n");
    echo ("<li>Name: $firstname $lastname</li>\n");
    echo ("<li>Item: $itemname</li>\n");
    echo ("<li>Amount: $amount</li>\n");
    echo ("");
    }
    else if (strcmp ($lines[0], "FAIL") == 0) {
    // log for manual investigation
    }
     
    }
     
    fclose ($fp);
     
    ?>
     
    Your transaction has been completed, and a receipt for your purchase has been emailed to you.<br> You may log into your account at <a href='https://www.paypal.com'>www.paypal.com</a> to view details of this transaction.<br>
    "Software is like sex, it's better when it's free" -- Linus Torvalds

Discussions similaires

  1. [PHP 5.0] Envois de données POST sans formulaire - Curl
    Par phoelis1 dans le forum Langage
    Réponses: 5
    Dernier message: 30/04/2009, 20h05
  2. $_POST sans formulaire
    Par david11001 dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2008, 14h36
  3. Formulaire d'envoi de mail sans php
    Par cynoq dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/10/2007, 11h31
  4. Envoi de POST sans formulaire
    Par jpean.net dans le forum Langage
    Réponses: 2
    Dernier message: 19/04/2007, 18h00
  5. Variable $_POST sans formulaire !
    Par Metallic-84s dans le forum Langage
    Réponses: 3
    Dernier message: 01/06/2006, 08h42

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