Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/07/2008, 17h07   #1
Invité régulier
 
Lycéen
Inscription : novembre 2006
Messages : 105
Détails du profil
Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : novembre 2006
Messages : 105
Points : 8
Points : 8
Par défaut Script de download

Salutations.

Le sujet à bien été bordé dans énormément de communautés, forums, tutos, scripts etc... or, apres avoir tenté bien des choses, micxant le code de diverses manieres, j'ai toujours un bug avec IE... Il me demande de télécharger Download.php, et pas mon fichier (bug innexistant sous ff ....)
voilà mon code actuel :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
<?php
 
define('PUN_ROOT', './PunBB/forum/');
require PUN_ROOT.'*****/punsapi/public.php';  
$pun = new punsapi();
$fileid = $_GET['fileid'];
 
	//*********************************************
	//			Connection à la BDD					
	//*********************************************
		require("*****/mysql_config.inc.php"); //
		mysql_connect($host,$username,$password);//
		mysql_select_db($bdd_name);              //
	//*********************************************
 
$requete = mysql_query('SELECT * FROM data_files WHERE id="'.$fileid.'"');
while ($User_Files = mysql_fetch_array($requete))
{
	$nom = $User_Files['nom'];
	$type = $User_Files['mime'];
	$taille = $User_Files['size'];
}
 
	$url = "http://tixlegeek.ke0.eu/upload/".$pun->get_user_id(true)."/".$nom;
 
 
	if (detect_browser($HTTP_USER_AGENT) == "ie")
	{
		Header("Content-type: application/force-download");
	}else{
		Header("Content-Type: application/octet-stream");
	}
		Header("Content-Length: ".$taille );
		Header("Content-Disposition: attachment; filename=$nom ");
		readfile($url); 
 
 
 
mysql_close();
 
function detect_browser($var)
{
		if(eregi("(msie) ([0-9]{1,2}.[0-9]{1,3})", $var)) 
		{
			$c = "ie"; 
		}else{
			$c = "nn"; 
		}
	return $c;
}
 
?>
auriez vous une idée ? un truc qui marche ?

merci, ++ Tix.
tixweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 17h51   #2
Membre confirmé
 
Avatar de chtipitou
 
Étudiant
Inscription : mars 2006
Messages : 175
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 175
Points : 204
Points : 204
l'idée oui, ce sont les header qui ne doivent pas etre bon
la solution non :s


essaye de regarder les header en passant par telnet

Code :
telnet monserveur.com 80
Code :
1
2
GET /monfichier.php?aveclesarguments HTTP/1.1
host: monserveur.com
et apres quelques retour a la ligne et ca va t envoyer la page mais aussi (le plus interessant les header)
__________________
42
there is no place like 127.0.0.1
Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.
chtipitou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 17h57   #3
Invité régulier
 
Lycéen
Inscription : novembre 2006
Messages : 105
Détails du profil
Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : novembre 2006
Messages : 105
Points : 8
Points : 8
salut

merci pour ta réponse.

comment dis tu que je doive utiliser get etc ?

merci, ++ Tix.
tixweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 18h01   #4
Membre confirmé
 
Avatar de chtipitou
 
Étudiant
Inscription : mars 2006
Messages : 175
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 175
Points : 204
Points : 204
dans un shell ou un prompt de commande

sinon je crois qu il ya des plugin firefox pour ca, mais je sais pas si firefox ne va pas corriger la requete, donc c'est pas tres fiable
__________________
42
there is no place like 127.0.0.1
Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.
chtipitou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2008, 19h37   #5
Invité régulier
 
Lycéen
Inscription : novembre 2006
Messages : 105
Détails du profil
Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : novembre 2006
Messages : 105
Points : 8
Points : 8
voilà ce que revoie le serveur :

Citation:
HTTP/1.1 200 OK
Date: Mon, 07 Jul 2008 17:36:48 GMT
Server: Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 PHP/4.4.4-8+etch6 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_vhs/1.0.32
X-Powered-By: PHP/4.4.4-8+etch6
Content-Length: 204
Content-Disposition: attachment; filename=sadtree01.jpg
Vary: Accept-Encoding
Content-Type: application/octet-stream
voyez vous du mal de fait ? O_o

merci encore, ++ Tix.
tixweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2008, 11h20   #6
Membre confirmé
 
Avatar de chtipitou
 
Étudiant
Inscription : mars 2006
Messages : 175
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 175
Points : 204
Points : 204
voila ce que je trouve pour les header de telechargement

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 <?php
 
// on essaie de reconnaitre l'extension pour que le téléchargement corresponde au type de fichier afin d'éviter les erreurs de corruptions
 
switch(strrchr(basename($Fichier_a_telecharger), ".")) {
 
case ".gz": $type = "application/x-gzip"; break;
case ".tgz": $type = "application/x-gzip"; break;
case ".zip": $type = "application/zip"; break;
case ".pdf": $type = "application/pdf"; break;
case ".png": $type = "image/png"; break;
case ".gif": $type = "image/gif"; break;
case ".jpg": $type = "image/jpeg"; break;
case ".txt": $type = "text/plain"; break;
case ".htm": $type = "text/html"; break;
case ".html": $type = "text/html"; break;
default: $type = "application/octet-stream"; break;
 
}
 
header("Content-disposition: attachment; filename=$Fichier_a_telecharger");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n
header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger));
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
readfile($chemin . $Fichier_a_telecharger);
?>
__________________
42
there is no place like 127.0.0.1
Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.
chtipitou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2008, 16h52   #7
Invité régulier
 
Lycéen
Inscription : novembre 2006
Messages : 105
Détails du profil
Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : novembre 2006
Messages : 105
Points : 8
Points : 8
merci bien

j'ai trouvé le bug.... il vien d'IE, comem ej m'en doutais. EN mettant dirrectement l'URL de mon aiguilleur de DL dans la barre d'adresse, ca ne marche pas, mais via un liens hypertexte, ca va, allez comprendre (non, moi aussi j'ai pensé au cache, mais ca n'est apparement pas ca)

J'ai un autre probleme mtn... je dois inclure l'api Punbb pour gérer les memebres, mais elle fait tout planter ! (FF et IE)

je ne comprends pas, en attendant, je teste d'autres méthodes, si vous avez déjà eu ce genre de soucis, je sui spreneur d'infos

merci encore chipitou pour ton coup de main.

++ Tix.
tixweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h03.


 
 
 
 
Partenaires

Hébergement Web