Ne télécharge à la volée que les petits fichiers (csv)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Ne télécharge à la volée que les petits fichiers (csv)

par TomTom85 » 07 août 2008, 18:25

Merci !!!

La solution est de créer une nouvelle form, puis d'ajouter les variables en input.
En effet car la méthode get n'accepte pas + de 256 caractères apres le nom !!
echo "<br><form class='extract' id='extract' method='post' action='../prg/Extraction.php'>";
Le contenu
//Enregistre dans le fichier
				echo "<input type='hidden' name='contenu' value='".$tabExtract."'>".
				"<input type='hidden' name='fichier' value='Affaires_nouvelles.csv'>".
				"<center><a class='lien' href='".'javascript: onclick=document.getElementById("extract").submit()'."'>Extraction</a></center>".
			"</form><br>";
Voila résolut !!

par zigz4g » 07 août 2008, 15:51

Salut,
essaye avec la methode POST au lieu de GET.
Peut etre que c'est lie avec les infos de ce post : http://www.phpfrance.com/forums/voir_sujet-242142.php

Ne télécharge à la volée que les petits fichiers (csv)

par TomTom85 » 05 août 2008, 10:34

Bonjour

J'ai un truc bizard. J'ai créer un fichier php auquel je passe une chaine de caractère csv (avec les ; et \n), et un nom de fichier.

Fichier php
<?php
	//Permet d'envoyer un fichier au format csv avec le contenu des tableaux

	//Variables
	$contenu = isset($_GET['contenu']) ? (unserialize(urldecode(stripslashes($_GET['contenu'])))) : "Erreur";
	$nomFichier = isset($_GET['fichier']) ? ($_GET['fichier']) : "Erreur.csv";
	
	//Récupération des informations
	
	//Envoi du fichier
	header("Content-Type: text/csv"); // L'extension
	header("Content-disposition: inline; filename=".$nomFichier); //Fichier à envoyer
	header("Pragma: public");
	header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
	header("Cache-Control: private",false);
	header("Content-Length: ".strlen($contenu)); //Taille du fichier
	echo $contenu;
	exit();
?>
Mon problème est que si les données que j'envoi ont trop de lignes (ou peut etre caractère), firefox ne me le télécharge pas ("Ce téléchargement a été bloqué par votre politique de zone de sécurité - localhost"), et ie7 ("Internet explorer ne peut pas afficher cette page web").

Quelqu'un aurais t'il une solution ?

Merci d'avance