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 :

Insérer variable dans un URL


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Insérer variable dans un URL
    Salut salut!

    Je viens quémander de l'aide car je suis profondément nul en php...

    J'ai un site de vente, et je dois faire une méthode de paiement. Pour cela, je dois simplement renvoyer mes utilisateurs sur un URL contenant l'identifiant de ma boutique, et le montant...

    Cependant voilà, je bloque car je ne sais pas insérer une variable dans un url :/

    Voilà le script, les champs $order_total par exemple sont déjà renseignés dans le logiciel (joomla - virtuemart) que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $db1 = new ps_DB();
    $q = "SELECT country_2_code FROM #__vm_country WHERE country_3_code='".$user->country."' ORDER BY country_2_code ASC";
    $db1->query($q);
    $url = "https://www.eurowebpayment.org/cb/?EWP_KEY=ED7734FR&EWP_AMOUNT=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
     vmRedirect( $url );
    ?>
    Si à la place du xxxxxx je met 10 par exemple, ca fonctionne et renvoi l'acheteur vers une page pour payer 10€.

    Par contre le montant doit être celui contenu dans la variable "$order_total".

    J'ai essayé : $url = "https://www.eurowebpayment.org/cb/?EWP_KEY=ED7734FR&EWP_AMOUNT=$order_total";

    mais ca ne marche pas...

    Une idée?

    Merci les gens!!!

  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
    Quand tu mets $order_total, est ce que tu vois la valeur dans le lien sur ta page web ?
    Si non, ou et comment définis tu $order_total ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Non j'ai une erreur
    "montant non renseigné"

    Euh.. Normalement je ne la définis pas moi même, cela se fait tout seul car virtuemart retiens dans ma base de données le montant de la commande, sous cette variable (il me semble).

    Donc peut-être que le problème vient de là effectivement..

    En fait je ne connais rien en php, mais je me base juste sur les observations que j'ai fait du script du module de paypal pour virtuemart que j'ai essayé d'adapter en beaucoup plus simple. J'ai juste changé l'adresse où les variables déjà renseignées étaient envoyées.

    Son script est plus compliqué, mais je ne le vois pas définier $order_total pourtant cela marche (j'utilise le module paypal):
    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
     
    <?php
    $db1 = new ps_DB();
    $q = "SELECT country_2_code FROM #__vm_country WHERE country_3_code='".$user->country."' ORDER BY country_2_code ASC";
    $db1->query($q);
     
    $url = "https://www.paypal.com/cgi-bin/webscr";
    $tax_total = $db->f("order_tax") + $db->f("order_shipping_tax");
    $discount_total = $db->f("coupon_discount") + $db->f("order_discount");
     
    //sous-total ttc : pour chèque boutique appliqué après le calcul des taxes
    $sous_total_ttc = $db->f("order_total") - $db->f("order_shipping") - $tax_total;
     
    $post_variables = Array(
    "charset" => "utf-8",
    "cmd" => "_ext-enter",
    "redirect_cmd" => "_xclick",
    "upload" => "1",
    "business" => PAYPAL_EMAIL,
    "receiver_email" => PAYPAL_EMAIL,
    "item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": ". $db->f("order_id"),
    "order_id" => $db->f("order_id"),
    "invoice" => $db->f("order_number"),
     
    // si application du chèque boutique après calcul des taxes
    "amount" => round($sous_total_ttc, 2),
    "tax" => $tax_total,
    "shipping" => sprintf("%.2f", $db->f("order_shipping")),
    "currency_code" => $_SESSION['vendor_currency'],
     
    "address_override" => "1",
    "first_name" => $dbbt->f('first_name'),
    "last_name" => $dbbt->f('last_name'),
    "address1" => $dbbt->f('address_1'),
    "address2" => $dbbt->f('address_2'),
    "zip" => $dbbt->f('zip'),
    "city" => $dbbt->f('city'),
    "state" => $dbbt->f('state'),
    "country" => $db1->f('country_2_code'),
    "email" => $dbbt->f('user_email'),
    "night_phone_b" => $dbbt->f('phone_1'),
    "cpp_header_image" => "https://static.e-junkie.com/sslpic/18337.4c3701f34c14cc27824a98b699519120.jpg",
     
    "return" => SECUREURL ."index.php?option=com_virtuemart&page=checkout.result&order_id=".$db->f("order_id"),
    "notify_url" => SECUREURL ."administrator/components/com_virtuemart/notify.php",
    "cancel_return" => SECUREURL ."index.php?option=com_virtuemart&page=account.order_details&order_id=".$db->f("order_id"),
    "undefined_quantity" => "0",
     
    "test_ipn" => PAYPAL_DEBUG,
    "pal" => "NRUBJXESJTY24",
    "no_shipping" => "1",
    "no_note" => "1"
    );
    if( $page == "checkout.thankyou" ) {
     $query_string = "?";
     foreach( $post_variables as $name => $value ) {
      $query_string .= $name. "=" . urlencode($value) ."&";
     }
     vmRedirect( $url . $query_string );
    } else {
     echo '<form action="'.$url.'" method="post" target="_blank">';
     echo '<input type="image" name="submit" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_paynowCC_LG.gif" border="0" alt="Payer vos achats avec PayPal, un moyen de paiement rapide, sûr, et sécurisé" />';
     foreach( $post_variables as $name => $value ) {
      echo '<input type="hidden" name="'.$name.'" value="'.htmlspecialchars($value).'" />';
     }
     echo '</form>';
    }
    ?>
    Sinon la mise en forme est bonne pour appeler la variable en faisant comme je l'ai montré? C'est à dire en ajoutant simplement $order_total dans l'adresse?

    Peut-être que je n'ai simplement pas vu où cette variable était renseignée dans le code original...

    Merci beaucoup de votre temps en tout cas Je galère depuis 3 jours lol

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    W00T!!!

    En fait j'ai trouvé, en parler m'a fait réfléchir!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $db1 = new ps_DB();
    $q = "SELECT country_2_code FROM #__vm_country WHERE country_3_code='".$user->country."' ORDER BY country_2_code ASC";
    $db1->query($q);
    $total_ttc = $db->f("order_total");
    $url = "https://www.eurowebpayment.org/cb/?EWP_KEY=ED7734FR&EWP_AMOUNT=$total_ttc";
     vmRedirect( $url );
    ?>
    Merci!!!


    Du coup j'aurais juste une autre pitite question...

    Si je veux renseigner des champs supplémentaires (EWP_MAIL etc..)

    Quelle mise en forme pour cela? Il faut fermer le $ avec un point?

    Du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $url = "https://www.eurowebpayment.org/cb/?EWP_KEY=ED7734FR&EWP_AMOUNT=$total_ttc.&EWP_CB_EMAIL_DEBITEUR=$mail";

  5. #5
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    il ne faut pas mettre de point, tu peux faire comme ça par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $url = "https://www.eurowebpayment.org/cb/?EWP_KEY=ED7734FR&EWP_AMOUNT=$total_ttc&EWP_CB_EMAIL_DEBITEUR=$mail";
    GNAP !

Discussions similaires

  1. passage de variables dans l'url
    Par pimpmyride dans le forum Langage
    Réponses: 1
    Dernier message: 26/03/2006, 16h35
  2. Réponses: 6
    Dernier message: 19/12/2005, 13h41
  3. envoyer plusieurs variables dans l'url?
    Par brgui dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h18
  4. [Struts] Passer une variable dans l'url
    Par pilz dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/03/2005, 15h23
  5. [VB.NET]Recuperation de variable dans un URL...
    Par seb_acsg dans le forum ASP.NET
    Réponses: 11
    Dernier message: 28/01/2004, 14h01

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