Exporter des données via joomla

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

  • Exporter des données via joomla

    Bonjour à tous, j'utilise un code php et mysql me permettant d'exporter des données dans un fichier csv. Ce code fonctionne puis qu'il est déjà en place.
    Sauf qu'avec joomla, impossible de le faire fonctionner, il me retourne l'erreur :
    Code:
    Illegal variable _files or _env or _get or _post or _cookie or _server or _session or globals passed to script.
    est-ce que quelqu'un a une idée ?

  • #2
    Re : Exporter des données via joomla

    Bonjour,

    Sans l'extrait de code qui plante, ... ce ne sera pas simple de pouvoir vous aider

    et aussi de quelle facon l'appelez vous (quelle url ?) ?
    Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
    « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
    c’est parce que nous n’osons pas qu’elles sont difficiles. »
    - Sénèque

    Commentaire


    • #3
      Re : Exporter des données via joomla

      voila le code

      Code:
      <?php
      	include "connec.inc.php";
      ?>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <title>Exporter</title>
      <?php
      
      
      if(isset($_POST['valider']))
      {
      	$critere = "";
      	
      	foreach ($_POST  as $cle=>$valeur)
      	{	
      		if ($cle!='supprimer')
      		{
      				$param = $critere."(((delegues_organisme_membre.ID)=".$cle.")) OR ";
      				$critere = $param;
      		}
      	}
      	
      	$parametre = substr($critere, 0, -95); 
      	
      	$query = "SELECT delegues_membres.CIVILITE, delegues_membres.TITRE, delegues_membres.NOM, delegues_membres.PRENOM, delegues_membres.ADRESSE, delegues_membres.CP, delegues_membres.VILLE, delegues_membres.ADRESSE_PRO, delegues_membres.CP_PRO, delegues_membres.VILLE_PRO, delegues_membres.ANNIVERSAIRE, delegues_membres.TEL, delegues_membres.FAX, delegues_membres.PORTABLE, delegues_membres.EMAIL, delegues_organisme_membre.ID, delegues_organisme.LIBELLES "
      	."FROM delegues_organisme INNER JOIN (delegues_membres INNER JOIN delegues_organisme_membre ON delegues_membres.NUMERO = delegues_organisme_membre.NUMERO) ON delegues_organisme.ID = delegues_organisme_membre.ID "
      	."WHERE ".$parametre." ORDER BY delegues_membres.VILLE;";
      
      	$result = mysql_query($query) or die('Erreur SQL !<br />' . $query . '<br />' . mysql_error());
      	
      	$csv_output = "'LIBELLES;'CIVILITE;'TITRE;'NOM;'PRENOM;'ADRESSE;'CP;'VILLE;'ADRESSE_PRO;'CP_PRO;'VILLE_PRO;'ANNIVERSAIRE, 'TEL, 'FAX, 'PORTABLE, 'EMAIL\n";
      	while($row = mysql_fetch_array($result)) 
      	{
      		$csv_output .= "$row[LIBELLES];$row[CIVILITE];$row[TITRE];$row[NOM];$row[PRENOM];$row[ADRESSE];$row[CP];$row[VILLE];$row[ADRESSE_PRO];$row[CP_PRO];$row[VILLE_PRO];$row[ANNIVERSAIRE];$row[TEL];$row[FAX];$row[PORTABLE];$row[EMAIL]";
      		$csv_output .= "\n";
      	}
      	 
      	$fic = $_POST['fichier'].".csv";   
      	$fichier="D:/Documents/Commun/Base données/Mailling/".$_POST['fichier'].".csv";
      	if (!$handle = fopen($fichier, 'w+')) {
      		$msg="Impossible d'ouvrir / créer ($fichier)";
      		exit;
      	} elseif (fwrite($handle, $csv_output) === FALSE) {
      		$msg="Impossible d'écrire dans le fichier ($fichier)";
      		exit;
      	} else {
      		$msg="L'export est terminé dans le répertoire Commun, puis Base de Données, puis Mailling : $fic";
      		fclose($handle);
      	}
      }
      ?>
      </head>
      
      <body>
      <?php
      		if (isset($msg))
      		{
      			echo "<table width='450' border='1' align='left' cellpadding='0' cellspacing='0'>";
          		echo "<tr>";
            		echo "<td height='50' valign=middle><p align='left'><img src='interface/info.png' width='30' height='30' align='absmiddle'>&nbsp;&nbsp;$msg</p></td>";
      			echo "</tr>";
      			echo "</table>";
      		}
      ?>
      </br>
      <h3>S&eacute;lectionner les organismes pour le mailling et donner un nom au fichier en bas de page</h3>
      <form name="form1" method="post" action="">
      <?php
      	$sql=mysql_query("SELECT ID, LIBELLES FROM delegues_organisme GROUP BY LIBELLES;");
      			 
      	if (!$sql) { echo "Erreur requete"; exit;} 
      			 
      	while ($ligne=mysql_fetch_array($sql))
      	{
      		$lib = $ligne['LIBELLES'];
      		$id = $ligne['ID'];
      		echo "<input type=checkbox name=$id>&nbsp;&nbsp;$lib<br />";
      	}
      ?>
      <p>Nom du fichier : <input name="fichier" type="text" id="fichier">&nbsp;&nbsp; 
      <input type="submit" name="valider" value="Exporter"></p> 
      </form>
      </body>
      </html>
      je reprécise que le code fonctionne mais dès que je l'inclus dans un article joomla avec l'utilisation du plugin Jumi ça ne fonctionne pas
      Dernière édition par berti à 11/10/2011, 16h20

      Commentaire


      • #4
        Re : Exporter des données via joomla

        après avoir gratté rien est à modifier du code.
        C'est un paramètre de joomla

        Allez dans le répertoire /libraries/joomla/environment/
        Ouvrir le fichier request.php
        il faut commenter la ligne
        Code:
        $failed |= is_numeric( $key );

        Commentaire


        • #5
          Re : Exporter des données via joomla

          Bonjour,

          En commentant cette ligne, tu ouvres une brèche en sécurité, la validation des paramètres n'étant plus assurée complètement.
          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


          • #6
            Re : Exporter des données via joomla

            Hello,

            a premiere vue, ton code n'utilise pas du tout le framework Joomla, c'est dommage car il serait plus simple, plus court et plus sécurisé , mais peut-etre ne t'es tu pas encore interessé au Framework Joomla !?

            Sinon, on a l'impression que ton code n'a pas de raison de planter, mais imbriquer du code PHP via un plugin Jumi, c'est clairement indébugable pour trouver la ligne qui plante !

            Concernant le message d'erreur d'origine, je ne sais pas si ca veut dire que JUMI ne tolere pas que l'on utilise le $_Post ou autre variable global PHP ... surement un truc a creuser de ce coté la

            J'en profite pour commencer a approcher le framework Joomla

            un
            Code PHP:
            if(isset($_POST['valider'])) 
            en joomla, ca se traduit par :

            Code PHP:
            if ( isset ( JRequest::getVar('valider') ) ) 
            Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
            « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
            c’est parce que nous n’osons pas qu’elles sont difficiles. »
            - Sénèque

            Commentaire


            • #7
              Re : Exporter des données via joomla

              Envoyé par berti Voir le message
              Allez dans le répertoire /libraries/joomla/environment/
              Ouvrir le fichier request.php
              il faut commenter la ligne
              Code:
              $failed |= is_numeric( $key );
              Modifier le core Joomla n'est pas recommandé. Lorsqu'il s'agit des classes de l'API Joomla et de surcroît de la classe JRequest c'est à proscrire pour des raisons de sécurité évidente.

              Au lieu d'agir sur le symptôme tu devrais agir sur la cause du problème et modifier ton script de façon à n'utiliser que des clés de paramètres alphanumériques.

              A première vue, le problème vient de la checkbox :

              Code PHP:
              $id $ligne['ID'];
              echo 
              "<input type=checkbox name=$id>&nbsp;&nbsp;$lib<br />"
              Si $id est numérique, le remplacer par :
              Code PHP:
              $id $ligne['ID'];
              echo 
              "<input type=\"checkbox\" name=\"id_$id\">&nbsp;&nbsp;$lib<br />"
              Il faut aussi modifier la partie traitement du formulaire en conséquence...
              Fly06_Fr (http://www.fly06.fr/)
              -------------------------------------------
              Classe MooTools pour Recherche Asynchrone (Ajax) : http://forum.joomla.fr/showthread.ph...one-%28Ajax%29

              Commentaire

              Annonce

              Réduire
              1 sur 2 < >

              C'est [Réglé] et on n'en parle plus ?

              A quoi ça sert ?
              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
              Comment ajouter la mention [Réglé] à votre discussion ?
              1 - Aller sur votre discussion et éditer votre premier message :


              2 - Cliquer sur la liste déroulante Préfixe.

              3 - Choisir le préfixe [Réglé].


              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

              2 sur 2 < >

              Assistance au forum - Outil de publication d'infos de votre site

              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

              UTILISER À VOS PROPRES RISQUES :
              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

              Problèmes connus :
              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

              Installation :

              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

              Archive zip : https://github.com/AFUJ/FPA/zipball/master

              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
              et remplacer www. votresite .com par votre nom de domaine


              Exemples:
              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
              Télécharger le script fpa-fr.php dans: /public_html/
              Pour executer le script: http://www..com/fpa-fr.php

              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
              Télécharger le script fpa-fr.php dans: /public_html/cms/
              Pour executer le script: http://www..com/cms/fpa-fr.php

              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
              Voir plus
              Voir moins
              Travaille ...
              X