Images aléatoires [Résolu]

Signaler
Messages postés
130
Date d'inscription
vendredi 5 octobre 2007
Statut
Membre
Dernière intervention
29 octobre 2012
-
Messages postés
130
Date d'inscription
vendredi 5 octobre 2007
Statut
Membre
Dernière intervention
29 octobre 2012
-
Bonsoir,

J'essaye de modifier le code suivant, de sorte que les images affichées aléatoirement soient puisées dans le répertoire "images/vignettes :

<?php
$nbimages=10;
$nomimages=array();
for($i=1;$i<=10;$i++)
{
$nomimages[$i]="image".$i.".jpg";
}
srand((double)microtime()*50000);
$affimage=rand(1,$nbimages);
?>

<?php
print("");
?>

Mais je n'arrive pas saisir où il faut que je précise le chemin. J'ai bien essayé certaines possibilités, mais à chaque fois j'ai le message qu'il y a une erreur dans la ligne xx (xx = numéro de la ligne). Je ne vois plus comment m'y prendre. Si vous pouviez m'aider ?

Merci d'avance pour votre aide,

TOO
NIE

7 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
<?php
srand();
echo '';
?>
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Bonsoir,

ce code suppose que tes images s'appellent image1.jpg, image2.jpg, etc jusqu'à 10. Et il est vraiment compliqué pour rien !

Ceci sera bien suffisant :

<?php

echo '';

?>

avec tes images qui s'appellent image_1.jpg, etc, dans le même répertoire que le fichier php.

à+
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
salut

srand((double)microtime()*50000);

si on lit la doc

http://fr3.php.net/srand
void srand ([ int $seed ] )

pourquoi tu castes en double ?

50 000 ca fait pas beaucoup de graines possibles... pour l'aleatoire, c'est merdique. alors, c'est sur, ton probleme ne demande pas de l'aleatoire parfait, mais bon... c'est une mauvaise habitude.
Messages postés
130
Date d'inscription
vendredi 5 octobre 2007
Statut
Membre
Dernière intervention
29 octobre 2012

Bonjour à tous,


Evangun : Première erreur de ma part au niveau des noms des images qui ne s'appellent pas "image1.jpg" mais "1.jpg". J'ai donc modifié comme ceci :





<?php
$nbimages=10;
$nomimages=array();
for($i=1;$i<=21;$i++)
{
$nomimages[$i]="./images/vignettes/".$i.".jpg";
}
srand((double)microtime()*50000);
$affimage=rand(1,$nbimages);
?>

<?php
print("");
?>




Maintenant, j'ai bien une image de démarrage, mais qu'une. Les autres ne viennent jamais. De plus, au démarrage, c'est toujours celle-ci qui s'affiche, un peu comme s'il n'y en avait qu'une (il y en a 21).

J'ai essayé echo ''; (bravo pour la simplification !), et j'ai toujours la même image au démarrage (ce qui qui ne devrait pas être le cas ?).

Coucou747 : "50 000 ca fait pas beaucoup de graines possibles... pour l'aleatoire, c'est merdique" Peux-tu m'expliquer un peu plus ? Au départ il y avait 100 000 et j'ai pensé que 50000 est le temps d'attente entre chaque image,ce qui représente quand même beaucoup... Il y a quelque chose que je n'ai pas compris ?

A bientôt,

TOO
NIE
Messages postés
130
Date d'inscription
vendredi 5 octobre 2007
Statut
Membre
Dernière intervention
29 octobre 2012

J'ai rajouté le chemin

<?php
srand();
echo '';
?>

et ça marche nickel;

<merci beaucoup>

TOO
NIE
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Au passage, il n'y a plus besoin d'initialiser le moteur srand( ) avant d'utiliser rand( ), donc tu peux le supprimer.
Messages postés
130
Date d'inscription
vendredi 5 octobre 2007
Statut
Membre
Dernière intervention
29 octobre 2012

Je l'ai supprimé et ça fonctionne comme tu le disais.

Merci à toi également pour tes interventions !

TOO
NIE