Posez votre question Signaler

Passer des variables de php en perl [Résolu]

Charliedu82 9Messages postés 16 octobre 2009Date d'inscription - Dernière réponse le 16 oct. 2009 à 22:37
Bonjour,
Juste un petit préambule, j'ai 63 ans, pas doué en php et encore moins en perl et la comprenette parfois bouchée... Je vais donc essayer d'être clair dans ma demande et si vous pouvez l'être autant dans une réponse éventuelle ça m'éviterait quelques insomnies... lol
Le problème :
J'installe sur le site d'une asso humanitaire un système de paiement par CB Cyberplus. Aucun problème pour l'installation si ce n'est qu'il m'a fallu utiliser les fichiers perl, l'hébergeur n'acceptant pas certaines fonctions du php (exec() ) notamment.
J'ai donc un formulaire de saisie, un fichier php qui me permet d'alimenter une base de données (ça c'est fait et ça marche) et il me faut transmettre une valeur du formulaire vers le fichier perl.. Simple sans doute pour certains d'entre vous, trop complexe pour moi...
Le champ en question c'est la variable $amount que j'envoie vers ma base de données ici (le champ du formulaire est donc : amount)
$sql = "INSERT INTO formulaire VALUES ('','".$civilite."', '".$nom."', '".$prenom."','".$adresse1."', '".$adresse2."','".$codepostal."', '".$ville."', '".$pays."', '".$mail."', '".$comments."', '".$amount."', '".$telephone."','".$don."' ,'".$affectation."' ,'".$adhesion."','".$recu."' ,'".$transaction_id."' ,now())";
Dans le fichier php j'ai :
header('Location: http://www...com/cgi-bin/call_request.pl');
Qui me renvoie vers le fameux fichier perl et dans ce fichier perl il me faut alimenter le champ amount
# Affectation des paramètres obligatoires
$parm=$parm . " amount=";
Donc question simple : comment je fais pour passer de l'un à l'autre cette foutue variable... ?
PS: si possible soyez concrets, je patauge grave... J'ai fouillé un peu partout mais tout ce que j'essaie échoue lamentablement...
Gracias ;)
Lire la suite 

Passer des variables de php en perl »

14 réponses
Réponse
+0
moins plus
Salut,

Tu devrais passer le paramètre au script perl

Quelque chose de genre

header('Location: http://www...com/cgi-bin/call_request.pl?amount=$amount');

Et dans le script Perl tu devrais récupérer le contenu du paramètre amount

Tu dois avoir dans ton script Perl quelque chose de genre

use CGI;
my $req=new CGI;

......


$parm=$parm . " amount=$req->param("amount")"; 


Ajouter un commentaire
Réponse
+0
moins plus
Merci de t'intéresser à mon cas ;)

Visiblement il y a une erreur sur la ligne :

$parm=$parm . " amount=$req->param("amount")";

Ca m'entraîne une erreur du serveur... Internal servor error

Une fois mis les instructions du début, v'la tout le début de la page perl jusqu'à la variable en question

#!/usr/bin/perl

use CGI;
my $req=new CGI;

#-------------------------------------------------------------
# Topic : Exemple PERL traitement de la requête de paiement
# Version : P600
#
# Dans cet exemple, on affiche un formulaire HTML
# de connection à l'internaute.
#
#-------------------------------------------------------------


payment_request();

sub payment_request
{

# affichage du debut de la page

print "Content-Type: text/html\n\n";
print "";
print "<HTML><HEAD><TITLE>CYBERPLUS - Paiement Securise sur Internet</TITLE></HEAD>";
print "<BODY bgcolor=#ffffff>";
print "<Font color=#000000>";
print "<center><H1>Test de l'API plug-in CYBERPLUS</H1></center><br><br>";





# Affectation des paramètres obligatoires

$parm="merchant_id=038862749811111";
$parm=$parm . " merchant_country=fr";
$parm=$parm . " amount=$req->param("amount")";
$parm=$parm . " currency_code=978";
Ajouter un commentaire
Réponse
+0
moins plus
Re,

As-tu mis le paramètre pour le header, dans ton script php ?
Ajouter un commentaire
Réponse
+0
moins plus
oui c'est fait
Ajouter un commentaire
Réponse
+0
moins plus
Re,

Essaie
my $val_param=$req->param("amount");

$parm="merchant_id=038862749811111";
$parm=$parm . " merchant_country=fr";
$parm=$parm . " amount=$val_param"; 
$parm=$parm . " currency_code=978";

Ajouter un commentaire
Réponse
+0
moins plus
Pas de pot... :(

Error in call parameters structure (amount not filled)
Ajouter un commentaire
Réponse
+0
moins plus
Re,

Et si tu mets dans ton script php (guillemets au lieu d'apostrohpes)

header("Location: http://www...com/cgi-bin/call_request.pl?amount=$amount");
Ajouter un commentaire
Réponse
+0
moins plus
Ben voilaaaaaaaa !!! super !!! tu me sors une grosse épine du pied.....

PS: et s'il me fallait (on sait jamais) passer deux variables au lieu d'une ?? C'est plus complexe dans le perl je suppose...
Ajouter un commentaire
Réponse
+0
moins plus
Re,

Tu peux mettre combien de paramètres tu veux

header("Location: http://www...com/cgi-bin/call_request.pl?amount=$amount¶m2=$var2¶m3=$var3");

Dans le script perl

my $param2 = $req->param("param2");
my $param3 = $req->param("param3");

En bref, dans URL la syntaxe et PARAMETRE=VALEUR et chaque couple est séparé par un &

Exemple :
http://mon.domaine.com/script.perl?param1=VALEUR1¶m2=VALEUR2



Tu as bien compris que $req c'est une variable choisi par nous. Elle peut avoir n'importe quel nom.

use CGI;
my $ma_variable=new CGI;

$var1=$ma_variable->param("NOM_PARAMETRE1");
$var2=$ma_variable->param("NOM_PARAMETRE2");
etc.

Tu as compris?
Ajouter un commentaire
Réponse
+0
moins plus
ok capito !! grand merci encore !

A charge de revanche, mais pas dans ce domaine ... lol

Photo oui par contre (www.aginum.net) ;)
Ajouter un commentaire
Réponse
+0
moins plus
Re,

Donc on peut mettre résolu ;-)
Ajouter un commentaire
Réponse
+0
moins plus
On peut et encore merci... :)
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour escusez de faire remonter ce topic mais je cherche une personne assez douer pour m'aider car j'ai un probleme avec l'un de mes script et je ne vois pas l'erreur svp si ya quelqun cela prendra pas plus de deux minute juste pour voir l'erreur merci d'avance a tous le monde.
lami20j- 16 oct. 2009 à 22:37
Salut,

Ouvre un autre message et poste ta question.
Merci.
Ajouter un commentaire
Ce document intitulé « passer des variables de php en perl » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?