Formulaire PAYBOX dans article (J2.5) : SUBMIT télécharge au lieu de rediriger

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] Formulaire PAYBOX dans article (J2.5) : SUBMIT télécharge au lieu de rediriger

    Bonjour,

    Nous avons récemment migré notre site (HTML/PHP) sous Joomla 2.5, avec les extensions suivantes : FlexiContent, Chronoforms, Sourcerer, sh404SEF.

    Nous disposions sur l'ancien site d'un système de paiement en ligne qui permettait à nos clients de payer leurs factures en ligne avec le module PAYBOX.
    Ce système fonctionnait ainsi :
    1) le client saisissait le n° de facture et un identifiant unique affiché sur sa facture + une adresse mail dans un premier formulaire
    2) A la soumission, le formulaire allait vérifier dans un fichier texte si la combinaison n° facture + identifiant existe et rapportait les infos nécessaires à PAYBOX, notamment le montant de la facture. Sur la page de retour on affichait donc ces infos et un formulaire en champs cachés spécifique à PAYBOX. Le submit de ce 2e form, était un fichier .cgi situé à la racine du site.

    Aujourd'hui, sous Joomla!, plus moyen de faire fonctionner cela, ça fait un mois que je tente de remettre l'outil d'aplomb.
    J'en suis à ce stade :
    1) j'uilise un chronoforms pour la saisie des identifiants
    2) Je renvois (onSubmit) sur un article qui fait le traitement et affiche les infos + le formulaire en champs cachés de PAYBOX.

    Quand je clique sur le submit de ce form, au lieu d'être renvoyé sur la page de paiement en ligne de PAYBOX, le fichier .cgi est téléchargé.

    J'ai également contacté le support de PAYBOX, mais n'ai jamais reçu de réponse. Et je ne peux bien-sûr pas changer de fournisseur car nous sommes une université et ce n'est pas moi qui décide hein !

    Je joins mon code source de l'article :
    Code:
    {source}
    <?php
    
    // Ouverture du fichier texte en lecture seule 
    $fichier = fopen ("facture.txt", "r"); 
    
    // Chaînes à retrouver : identifiant et n° de facture saisis 
    $identifiant = $_POST["num_internet"]; 
    $facture = $_POST["num_facture"]; 
    // On récupère l'e-mail 
    $email = $_POST["courriel"]; 
    
    // Les infos ne sont pas encore valides 
    $valide = false; 
    
    // N° de Ligne de départ = 0 
    $numligne=0; 
    
    while ((!feof($fichier)) and ($valide == false)) { 
    // On regarde dans la ligne si on trouve l'identifiant 
    $ligne = fgets($fichier, 4096); 
    $tab_enr = explode(';', $ligne); 
    // Si on trouve l'identifiant 
    if (($tab_enr[0] == $identifiant) and ($tab_enr[1] == $facture)) { 
    list($id, $numfac, $nomC, $montant, $adresse, $cp, $commune) = $tab_enr ; 
    // Les informations sont valides 
    $valide=true;
    }
    }
    
    if ($valide==true) {
    $montantdec=$montant/100;
    // On affiche les informations du client
    //echo '<h1>Paiement en ligne de votre facture</h1>';
    echo '<h3>' . utf8_encode($nomC) . '</h3>';
    echo 'Domicilié(e) :' . utf8_encode($adresse) . ' - ' . $cp . ' ' . $commune . '<br/><br/>'; 
    echo 'Vous souhaitez régler la facture n° <b>' . $numfac . ', d\'un montant de <b>' . $montantdec . '€</b>.<br/><br/>'; 
    
    // On prépare le formulaire d'envoi à Paybox 
    echo '<FORM ACTION = "../cgi-bin/modulev2_CentOS_42.cgi" METHOD = "POST" name="paybox" id="paybox">
    <INPUT TYPE = "hidden" NAME = "PBX_CMD" value="SERFA_' . $numfac . '"> 
    <INPUT TYPE = "hidden" NAME = "PBX_TOTAL" value="' . $montant . '"> 
    <INPUT TYPE = "hidden" NAME = "PBX_PORTEUR" value="' . $email . '"> 
    <INPUT TYPE = "hidden" NAME = "PBX_LANGUE" VALUE = "FRA"> 
    <INPUT TYPE = "hidden" NAME = "PBX_MODE" VALUE = "13"> 
    <INPUT TYPE = "hidden" NAME = "PBX_OPT" VALUE = "/home/serfa/public_html/cgi-bin/serfapaybox.txt"> 
    <INPUT TYPE = "hidden" NAME = "PBX_EFFECTUE" VALUE = "http://www.serfa.fr/web/fr_merci.htm"> 
    <INPUT TYPE = "hidden" NAME = "PBX_REFUSE" VALUE = "http://www.serfa.fr/web/fr_regret.htm"> 
    <INPUT TYPE = "hidden" NAME = "PBX_ANNULE" VALUE = "http://www.serfa.fr/web/fr_annul.htm"></td></tr>';
    echo '<input type="submit" name="btn_paybox" value="Payer ma facture"/></FORM>'; 
    }
    else 
    {
    $jApp = JFactory::getApplication();
    $jApp->redirect('../component/com_chronoforms/Itemid,181/view,form/', 'Les informations que vous avez saisies ne sont pas valides.<br/>Veuillez renouveler votre saisie ci-dessous :');
    }
    
    //Fermeture du fichier 
    fclose ($fichier);
    
    ?>
    {/source}
    Je vous remercie par avance pour votre aide

  • #2
    Re : Formulaire PAYBOX dans article (J2.5) : SUBMIT télécharge au lieu de rediriger

    Bonjour,

    Le module cgi est-il bien en chmod 755 (donc exécutable). Et le compte du site a t-il le droit d'exécuter du CGI ?
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Formulaire PAYBOX dans article (J2.5) : SUBMIT télécharge au lieu de rediriger

      Effectivement, il y avait un problème de droits sur le cgi, mais malgré cela, j'obtiens maintenant une erreur
      Internal Server Error
      The server encountered an internal error or misconfiguration and was unable to complete your request.
      Please contact the server administrator, webmaster.serfa@uha.fr and inform them of the time the error occurred, and anything you might have done that may have caused the error.
      More information about this error may be available in the server error log.

      Bref ça ne m'en dit pas plus... merci en tout cas pour ta réponse qui m'a permis d'avancer !

      Commentaire


      • #4
        Re : Formulaire PAYBOX dans article (J2.5) : SUBMIT télécharge au lieu de rediriger

        Internal server error..; Du classique.
        Les logs apache du serveur doivent donner une indication précise sur la raison de l'erreur (Perl pas activé, version du cgi compilé en 32 bits et le système ne trouve pas les libs si le serveur est en 64 bits sans libs 32 bits installées, etc)
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Formulaire PAYBOX dans article (J2.5) : SUBMIT télécharge au lieu de rediriger

          J'ai beaucoup avancé avec le support paybox, on a mis à jour le module cgi fait des tests... et c'est là que j'ai trouvé le problème ! C'est Joomla qui protège les adresses mail contre le spam et donc ajoute un script dans mon formulaire, qui ensuite est rejeté par PAYBOX car le champ mail est trop long :

          <INPUT TYPE = "hidden" NAME = "PBX_PORTEUR" value="
          <script type='text/javascript'>
          <!--
          var prefix = 'ma' + 'il' + 'to';
          var path = 'hr' + 'ef' + '=';
          var addy68935 = 'contact' + '@';
          addy68935 = addy68935 + 'serfa' + '.' + 'fr';
          document.write('<a ' + path + '\'' + prefix + ':' + addy68935 + '\'>');
          document.write(addy68935);
          document.write('<\/a>');
          //-->\n </script><script type='text/javascript'>
          <!--
          document.write('<span style=\'display: none;\'>');
          //-->
          </script>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
          <script type='text/javascript'>
          <!--
          document.write('</');
          document.write('span>');
          //-->
          </script>
          ">


          J'ai désactivé le plugin de protection des adresses et cela fonctionne, mais s'il y a moyen de le laisser activé et de juste le désactiver sur cet article je suis preneuse !

          Merci en tout cas pour votre aide
          Dernière édition par V@lentine à 27/09/2013, 07h44

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X