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 :

Stocker valeur input dans une variable avant submit


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 42
    Points
    42
    Par défaut Stocker valeur input dans une variable avant submit
    Bonjour à tous,

    Alors voilàa le problème, j'ai un formulaire avec des boutons radio correspondants chacun à un montant différent.
    Je souhaite pouvoir stocker la valeur du bouton sélectionné dans une variable PHP avant l'envoi du formulaire.

    Pourquoi ? J'utilise en fait Ogone comme moyen de paiement, dans le cas présent pour des dons. Ogone nécéssite d'envoyer une variable PHP contenant le montant avec application de sha1() et d'une passphrase en même temps que le formulaire.

    C'est faisable a partir du moment ou on connait le montant, mais dans le cas présent le visiteur l'introduit lui-même...

    Y-a-t'il une solution ? J'utilise deja le jvascript pour tester mes bouttons...

    Un grand merci !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux simplement faire d'abord l'envoi sur ton site, calculer les données dont tu as besoin, puis faire un renvoi vers Ogone.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 42
    Points
    42
    Par défaut
    Tu peux me dire en deux mots comment faire ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je prends le cas simple ou Ogone accepte les données en $_GET

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $montant = sha1($_POST['montant']);
    $passphrase = 'xxxxxxxxxx';
    header('Location : http://urldeogone/pagedeogone?montant=' . $montant . '&passphrase=' . $passphrase . '&autrechamp=autrevaleur');

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 42
    Points
    42
    Par défaut
    Les données ne peuvent être transmises qu'en POST à Ogone.
    Je compte donc envoyer le montant à une page PHP qui contiendrait donc mon formulaire caché dans le cas j'affecte la nouvelle valeur montant calculée dans un des input.

    Mais comme il n'y aura plus de montant submit, comment procèder à l'envoi du formulaire sans bouton submit ?
    J'ai pensé au form.submit() javascript mais il faut lui affecter un évènement je pense...

    Comment faire ?

    Merci beaucoup de ton aide

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux utiliser cURL pour faire des requêtes POST.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 42
    Points
    42
    Par défaut
    J'ai fait comme ceci :

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    <?php
    /*
    Template Name: Donations
    */
    ?>
     
    <?php get_header(); ?>
     
    <section class="main page donations">
    	<div class="post">
    		<h1 class="post-title"><?php the_title(); ?></h1>
    		<div class="post-content">
     
     
     
                <div id="ogone-donations">
     
                	<h2 class="paypal-step">Etape 2 | Précisez le montant de votre don</h2>
     
    				<table>	
    					<tr height="25"><td width="300"><input type="radio" name="ogone-donation-amount" value="30" onclick="set_ogone_amount(this.value);" /><label for="ogone-donation-amount">€30 (1 jour de formation)</label></td></tr>
    					<tr height="25"><td width="300"><input type="radio" name="ogone-donation-amount" value="90" onclick="set_ogone_amount(this.value);" /><label for="ogone-donation-amount">€90 (3 jours de formation)</label></td></tr>
    					<tr height="25"><td width="300"><input type="radio" name="ogone-donation-amount" value="150" onclick="set_ogone_amount(this.value);" /><label for="ogone-donation-amount">€150 (1 semaine de formation)</label></td></tr>
    					<tr height="25"><td width="300"><input type="radio" name="ogone-donation-amount" value="365" onclick="set_ogone_amount(this.value);" /><label for="ogone-donation-amount">€365 (1 euro par jour)</label></td></tr>
    					<tr height="25"><td width="500"><input type="radio" name="ogone-donation-amount" value="custom" id="ogone-custom-donation" /><input type="text" value="Montant personnalisé" id="ogone-custom-amount" onclick="if (this.defaultValue==this.value) this.value=''" onblur="if (this.value=='') this.value=this.defaultValue" onchange="set_ogone_amount(this.value);"></td></tr>
    				</table>
     
     
                	<form name="ogone" id="ogone" action="" method="post">
    					<input type="hidden" name="AMOUNT" id="ogone-amount" value="">
     
                         <h2 class="paypal-step">Etape 4 | Je valide mon don</h2>
     
                        <input type="submit" value="Je donne">   	
                	</form>
     
                    <?php if(isset($_POST['AMOUNT']) && !empty($_POST['AMOUNT'])):
     
    					// ces constantes sont traditionnellement définies dans un fichier annexe
    					define("URLOGONE", "https://secure.ogone.com/ncol/prod/orderstandard.asp");
    					define("PSPID", "XXXXXX");     // identifiant du marchand = login du compte Ogone
    					define("SHASIG", "XXXXXX");    // chaine de car. pour construire la sig. SHA-1
    					define("ACCEPTURL", "XXX/");    // chaine de car. pour construire la sig. SHA-1
    					define("CANCELURL", "XXX");    // chaine de car. pour construire la sig. SHA-1
    					define("TITLE", "Don");    // chaine de car. pour construire la sig. SHA-1
     
    					$price = $_POST['AMOUNT'];
    					$id = RAND(890000,895689596);
     
    					$shasign = 
    						"ACCEPTURL=".ACCEPTURL.SHASIG.
    						"AMOUNT=".$price.SHASIG.
    						"CANCELURL=".CANCELURL.SHASIG.
    						"CURRENCY=EUR".SHASIG.
    						"DECLINEURL=".CANCELURL.SHASIG.
    						"EXCEPTIONURL=".CANCELURL.SHASIG.
    						"LANGUAGE=fr_FR".SHASIG.
    						"ORDERID=".$id.SHASIG.
    						"PSPID=".PSPID.SHASIG.
    						"TITLE=".TITLE.SHASIG;
     
    					//Creating the signature
    					$shasign = sha1($shasign);
     
    					// For test use the url in action https://secure.ogone.com/ncol/test/orderstandard.asp
    					?>
     
    					<form name="ogone-final" id="ogone-final" action="<?php echo URLOGONE; ?>" method="post">
    						<input type="hidden" name="ORDERID" value="<?php echo $id; ?>">
    						<input type="hidden" name="PSPID" value="<?php echo PSPID; ?>">
    						<input type="hidden" name="CURRENCY" value="EUR">
    						<input type="hidden" name="LANGUAGE" value="fr_FR">
    						<input type="hidden" name="AMOUNT" id="ogone-amount" value="<?php echo $_POST['AMOUNT']; ?>">
     
    						<!-- optional fields -->
                            <input type="hidden" name="ACCEPTURL" value="<?php echo ACCEPTURL; ?>">
                            <input type="hidden" name="DECLINEURL" value="<?php echo CANCELURL; ?>">
                            <input type="hidden" name="EXCEPTIONURL" value="<?php echo CANCELURL; ?>">
                            <input type="hidden" name="CANCELURL" value="<?php echo CANCELURL; ?>">
                            <input type="hidden" name="TITLE" value="<?php echo TITLE; ?>">
     
                            <input type="hidden" name="SHASIGN" value="<?php echo $shasign; ?>">
    					</form>
     
    					<script>document.getElementById("ogone-final").submit();</script>
     
    				<?php endif; ?>
     
                </div>
    		</div>
    	</div>
    </section>
     
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    Si vous voyez une solution plus propre...parce que ce rechargement de page c'est pas top ! Tout ca pour recuperer justa la valeur d'un input dans une variable php avant envoi...

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme je t'ai dit tu peux faire :
    formulaire -> page php avec sha1 et Curl -> redirection vers ce que tu veux

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Points : 42
    Points
    42
    Par défaut
    Le curl ne me redirige pas directement vers ogone. il ne fait qu'envoyer les données je suppose... Dans tout les cas, j'ai quand même deux pages à charger non ?

    Si j'ai bien compris j'ai mon formulaire, lors du submit cela renvoie vers une page php où je recois mes donnees post, et je fais le sha1. Mais apres je dois renvoyer toutes les données à Ogone en POST, curl me redirige également vers Ogone ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2011, 11h34
  2. [VB6 ArcView9] Recuperer valeur RMS dans une variable
    Par TiT0f dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/05/2006, 15h49
  3. Comment afficher une valeur contenue dans une variable ?
    Par manubrard dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 15h56
  4. Utiliser la valeur d'un input dans une variable php
    Par megane dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 16h02
  5. Stocker un noeud dans une variable
    Par Devotion dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 23/09/2004, 17h02

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