Passer des variables de php en perl

Résolu
Charliedu82 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21331 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 ;)
A voir également:

13 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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")"; 


0
Charliedu82 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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";
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

As-tu mis le paramètre pour le header, dans ton script php ?
0
Charliedu82 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
oui c'est fait
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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";

0
Charliedu82 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Pas de pot... :(

Error in call parameters structure (amount not filled)
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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");
0
Charliedu82 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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...
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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?
0
Charliedu82 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
ok capito !! grand merci encore !

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

Photo oui par contre (www.aginum.net) ;)
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

Donc on peut mettre résolu ;-)
0
Charliedu82 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
On peut et encore merci... :)
0
kilou
 
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.
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Ouvre un autre message et poste ta question.
Merci.
0