Passer des variables de php en perl
Résolu
Charliedu82
Messages postés
9
Statut
Membre
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
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 ;)
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 ;)
Configuration: Windows XP Internet Explorer 7.0
13 réponses
-
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")";
-
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"; -
Re,
As-tu mis le paramètre pour le header, dans ton script php ? -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Re,
Essaiemy $val_param=$req->param("amount"); $parm="merchant_id=038862749811111"; $parm=$parm . " merchant_country=fr"; $parm=$parm . " amount=$val_param"; $parm=$parm . " currency_code=978";
-
Pas de pot... :(
Error in call parameters structure (amount not filled) -
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"); -
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... -
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? -
ok capito !! grand merci encore !
A charge de revanche, mais pas dans ce domaine ... lol
Photo oui par contre (www.aginum.net) ;) -
Re,
Donc on peut mettre résolu ;-) -
-
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.