[RESOLU] interdir le download de fichier

interdir le download de fichier [RESOLU] - PHP - Programmation

Marsh Posté le 12-02-2007 à 08:36:39    

bonjour
j'ai un petit probléme avec se script : $yes reste = 0
le but est d'interdir les telechargements de fichiers de $oksites à partir d'un autre site.
 
si l'internaute est sur le site il est redirigé sur le fichier.zip
sinon il est redirigé sur $oksites
 
merci d'avance pour le coup de main
 
a+
 

Code :
  1. $lesite = $_SERVER["HTTP_REFERER"];
  2. if( ! isset( $_SERVER['HTTP_REFERER'] ) ) {$_SERVER['HTTP_REFERER'] = "" ; }
  3. $oksites = array("http://site_1.com","http://www.site_2.com" );   // le visiteur vient d'ici  
  4. $yes = 0;
  5. while(list($domain, $subarray) = each($oksites))
  6.      {
  7.      if(ereg("$lesite",$subarray)) { $yes = 1; }
  8.      }
  9. if($yes == 1) { header("Location:http://file_1/rep/$monfichier" ); }
  10.   else  { header("Location:http://site_1" ); }


Message édité par gilles974 le 14-02-2007 à 07:39:24
Reply

Marsh Posté le 12-02-2007 à 08:36:39   

Reply

Marsh Posté le 12-02-2007 à 10:50:01    

Bonjour,

 

je ne sais pas comment est définie ta variable "$domain", mais est-ce que tu entres dans ton while ? Essaye un bon vieux "printf debug" des familles, en ajoutant un " echo 'pouet'; " avant le "if" dans ton "while", pour voir ?


Message édité par ZeBix le 12-02-2007 à 10:50:12
Reply

Marsh Posté le 12-02-2007 à 11:06:11    

bonjour
Voici le resultat une fois integre le echo de domain et subarray
 

Code :
  1. while(list($domain, $subarray) = each($oksites))
  2.      {  
  3.      echo "domain=$domain<br>subarray=$subarray<br>";
  4.      if(ereg("$lesite",$subarray)) { $yes = 1; }
  5.      }


 
resultat =
 
domain=0
subarray=http://site_1.com
domain=1
subarray=http://www.site_1.com
 
cordialement gilles

Reply

Marsh Posté le 12-02-2007 à 15:18:21    

Salut,
 
T'as pas vraiment besoin d'utiliser les regex dans ce cas ci. strstr au pire mais ici tu peux utiliser parse_url pour trouver l'hostname de l'url et le comparer aux elements de ton tableau avec in_array
 
Par exemple:
 

Code :
  1. if(isset($_SERVER['HTTP_REFERER'])) {
  2.   $lesite = $_SERVER["HTTP_REFERER"];
  3. }
  4. else{
  5.   header("Location:http://site_1" );
  6. }
  7. $oksites = array("site_1.com","www.site_2.com" );   // le visiteur vient d'ici
  8. $url = parse_url($lesite);
  9. if(!in_array($url['host'],$oksites)){
  10.   header("Location:http://site_1" );
  11. }
  12. else{
  13.   header("Location:http://file_1/rep/$monfichier" );
  14. }


 
J'ai pas testé le code mais ca devrait aller

Reply

Marsh Posté le 14-02-2007 à 07:38:51    

merci math2k pour ce coup de pouce , sa fonctionne bien
salutations gilles
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed