Passer des variables de php en perl

Résolu/Fermé
Charliedu82 Messages postés 9 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 24 octobre 2009 - 16 oct. 2009 à 20:00
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 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 ;)
A voir également:

13 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
16 oct. 2009 à 20:52
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 vendredi 16 octobre 2009 Statut Membre Dernière intervention 24 octobre 2009
16 oct. 2009 à 21:06
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
16 oct. 2009 à 21:17
Re,

As-tu mis le paramètre pour le header, dans ton script php ?
0
Charliedu82 Messages postés 9 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 24 octobre 2009
16 oct. 2009 à 21:19
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
16 oct. 2009 à 21:23
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 vendredi 16 octobre 2009 Statut Membre Dernière intervention 24 octobre 2009
16 oct. 2009 à 21:34
Pas de pot... :(

Error in call parameters structure (amount not filled)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
16 oct. 2009 à 21:39
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 vendredi 16 octobre 2009 Statut Membre Dernière intervention 24 octobre 2009
16 oct. 2009 à 21:44
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
16 oct. 2009 à 21:53
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 vendredi 16 octobre 2009 Statut Membre Dernière intervention 24 octobre 2009
16 oct. 2009 à 22:00
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
16 oct. 2009 à 22:02
Re,

Donc on peut mettre résolu ;-)
0
Charliedu82 Messages postés 9 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 24 octobre 2009
16 oct. 2009 à 22:08
On peut et encore merci... :)
0
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
16 oct. 2009 à 22:37
Salut,

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