1

banniere_alea.php
J'ai les bonbons qui collent au papier.

Adoptez le http://www.sodomyth.com/ Way of Life

2

cry
J'ai les bonbons qui collent au papier.

Adoptez le http://www.sodomyth.com/ Way of Life

3

faut pas que tu fasses une page html, mais que tu mettes directement le contenu de l'image (et content-type soit une image)

4

si tu veux je dois avoir du code tout prêt qui marche avec pas mal de type de fichiers, même des css
avatar

5

nEUrOO: Euh... j'ai pris un script tout fait, bête et méchant, et j'y connais peu, voire rien en la matière. Et effectivement, ça ne marche pas grin C'est *ahem* quoi, un content-type ? gni

aze: Carrément smile
J'ai les bonbons qui collent au papier.

Adoptez le http://www.sodomyth.com/ Way of Life

6

Juste pour l'info, le "content-type" c'est un header http (c'est à dire une directive envoyée par le serveur et qui indique à ton navigateur comment traiter les données qui vont suivre) qui spécifie le type des données. En l'occurrence, il faudrait définir ce content-type pour indiquer que tu vas envoyer une image.

La version la plus simple possible pourrait ressembler à ça, en admettant que l'image "plop.png" existe dans le même dossier que ton script :

<?php

header ('Content-Type: image/png'); // cf. http://www.w3schools.com/media/media_mimeref.asp
readfile ('plop.png');

?>
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

Le problème (qui était l'avantage de ce script) est que les URL des images inclues dans des lignes de codes HTML, elles-même stockées dans un fichier texte vers lequel le fichier PHP envoie une requête. Tronche du fichier txt:

<img src="http://thomas.hercouet.free.fr/ban/01.gif">
<img src="http://thomas.hercouet.free.fr/ban/02.PNG">
<img src="http://thomas.hercouet.free.fr/ban/03.PNG">
<img src="http://thomas.hercouet.free.fr/ban/04.PNG">
<img src="http://thomas.hercouet.free.fr/ban/05.png">
<img src="http://thomas.hercouet.free.fr/ban/06.png">
J'ai les bonbons qui collent au papier.

Adoptez le http://www.sodomyth.com/ Way of Life

8

Tu peux virer tout le code HTML de tes lignes pour ne laisser qu'une url (http://blabla.png) par ligne, puis garder ton bout de script qui va lire une ligne en random pour finalement envoyer le header (./6) et faire un "readfile ($ligne);".

Sinon, plus simple, tu peux simplement lancer une redirection vers l'image (ça autorisera les navigateurs à les mettre en cache, c'est pas plus mal) : même modif à faire sur ton fichier txt, puis : header ('Location: ' . $ligne);
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

9

tiens :
<?php
$keys=array_keys($_GET);
$path=$keys[0];

$path = ltrim($path,'/');

if(!is_dir($path))
{
  header('HTTP/1.1 404 Not Found');
  exit;
}

$handle=opendir($path);
while ($file = readdir($handle)) {
  if($file != '.' && $file != '..') {
    if(is_file($path.'/'.$file))
      $filelist[]=$file;
    }
}
closedir($handle);

$filename = $filelist[rand(0,count($filelist)-1)];
$filepath = $path.'/'.$filename;


$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
header("location: http://$host$uri/$filepath");

exit;


function getExt($file)
{
  $pos0=strpos($file,'.');
  if($pos0===FALSE)
    return('');
  while(!($pos0===FALSE))
  {
    $pos=$pos0;
    $pos0=strpos($file,'.',$pos+1);
  }
  return (substr($file,$pos+1));
}

function getMime($extension)
{
  static $mime_types=array(
	'gif'=>'image/gif','jpg'=>'image/jpeg','bmp'=>'image/bmp','png'=>'image/png','svg'=>'image/svg+xml',
	'css'=>'text/css','html'=>'text/html','htm'=>'text/html',
	'swf'=>'application/x-shockwave-flash');
  if(array_key_exists($extension,$mime_types))
    return $mime_types[$extension];
  else
    return 'text/plain';
}

?>

tu nommes le script index.php, tu fous ça dans un dossier, genre rand/ sur www.hercouetcorp.com . Dans ce même dossier tu crées un nouveau dossier que t'appelles comme tu veux et tu mets tous les fichiers que tu veux dedans, par exemple le dossier banner/
ensuite t'as qu'à appeller http://www.hercouetcorp.com/rand/?banner et ça choisira un fichier au pif dans le répertoire banner/
du coup tu peux créer autant de dossiers que tu veux dans rand/ pour créer autant de sélection de fichiers que tu veux. évite juste les caractères trop compliqués dans le nom des répertoires. par exemple si ya un point, ça ne marchera pas

bon sinon je pense que le script ne permettra pas de lire n'importe quel répertoire de ton ftp car php a l'air de remplacer les points dans le nom des paramètres de l'url par des underscore

(sinon, pour les gens qui si connaissent, j'en ai fait une version avec un fopen et un fpassthru, je sais pas vraiment si ya une méthode à préférer à l'autre)
avatar

10

faut juste faire gaffe que ce truc permet d'aller lire n'importe quel fichier sur ton serveur en passant outre toutes les éventuelles protections d'Apache ^^

(sinon pour getExt ça serait plus simple d'utiliser strrpos)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

11

Muahahah, IT'S ALIIVE !!
J'ai piqué le script de YN qui fonctionne pas mal et qui fait juste un choix aléatoire d'image (l'URL de l'image remplace alors celle du PHP à l'affichage) ça pulse !
Merci pour le coup de main quand même, ça m'a permis de comprendre quelques trucs smile
J'ai les bonbons qui collent au papier.

Adoptez le http://www.sodomyth.com/ Way of Life

12

Zeph> justement j'ai pas l'impression
si tu passes ?.. au script, $path vaudra '__' car il n'aime pas les points dans le nom des clés. et je pense pas qu'on puisse aller dans un répertoire parent sans utiliser ..
mais bon ça fait un peu protection implementation-dependent, c'est par forcément safe

merci pour strrpos, je connaissais pas smile
avatar

13

ah ui tiens, j'avais jamais remarqué ce comportement, ça a l'air d'être spécifique aux tableaux $_GET/$_POST & co puisque les "." passent (heureusement) sans pb en temps normal
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

14

J'ai eu des soucis avec mon avatar aussi ! Lorsque je mettais le fichier PHP (et les images) sur ma page perso multimania, ça ne marchait pas alors que la même chose sur ma page perso Free fonctionne très bien... (c'est tellement rare que ça fonctionne mieux sur Free qu'il faut le signaler quand ce n'est pas le cas ^^)
Rest... In... Peace

15

Il me semble que c'est parceque les serveurs multimania ont une protection pour éviter que les images soient utilisés sur des sites hébergés ailleurs que chez eux.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

16

Zephyr (./10) :
faut juste faire gaffe que ce truc permet d'aller lire n'importe quel fichier sur ton serveur en passant outre toutes les éventuelles protections d'Apache ^^

Utiliser l'en-tete "location" justement empeche ce genre de choses ^^

./9 D'ailleurs envoyer une entete de type ne sert a rien, vu que tu redirige vers une nouvelle URL ou c'est apache qui va gérer ça
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

17

location fait juste une redir HTTP (donc visible web par apache), c'est pas pareil

18

Tout a fait
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.