Zufälliges Bild anzeigen

proloser

Erfahrenes Mitglied
Hallo,

ich möchte verschiedene Bilder zufällig anzeigen lassen. Das ganze funktioniert auch aber es soll nach dem die Seite wieder aktualisiert wird nicht nochmal das selbe Bild kommen.

Code:
PHP:
$logo = array("logo1.jpg","logo2.jpg","logo3.jpg");
mt_srand ((double)microtime()*1000000);
$number = mt_rand(0,(count($logo) - 1));

echo "<img src=\"http://www.tutorials.de/forum/images/".$logo[$number]."\">";

Mfg
proloser
 
Das kannst du dann am besten mit einem Cookie lösen. Das heißt, dass du in das Cookie schreibst, welches Bild als letztes angezeigt wurde und dann dieses überspringen in deiner Ausgabe.
 
Hört sich schon mal gut an, ich versuchs gerade mit Sessions aber wie ich eben das Bild dann überspringe ist mir unklar :confused:
 
Ich hätte es auch über sessions versucht... übergeb doch einfach über eine session die letzte nummer und prüf, ob die nummer mit dem neuen bild gleich ist. wenn ja einfach nächstes bild.
 
Nun ja, ich würde einfach überprüfen, ob das gerade zufällig ausgewählte Bild in dem Cookie steht. Wenn ja, dann soll noch mal zufällig ein neues ausgewählt werden, wenn nicht, kann das Bild angezeigt werden. Geht ja ganz einfach über eine IF-Struktur.

Edit: Zu spät.
 
Ich habs jetzt so versucht:

PHP:
$logo = array("logo_mann.jpg","logo_ngk.jpg","logo_hella.jpg");
mt_srand ((double)microtime()*1000000);
$number = mt_rand(0,(count($logo) - 1));

if($number == $_SESSION['session_number']) {
  mt_srand ((double)microtime()*10000);
  $number = mt_rand(0,(count($logo) - 1));
}

echo "<img src=\"images/".$logo[$number]."\">";	

$_SESSION['session_number'] = $number;

Allerdings ist bei 3 Bilder die Chance trotzdem sehr hoch damit das selbe Bild nochmal kommt.
 
Na dann würde ich es einfach so machen (sorry, da hab ich vorher nicht dran gedacht):

PHP:
while($number == $_SESSION['session_number']) {
  mt_srand ((double)microtime()*10000);
  $number = mt_rand(0,(count($logo) - 1));
}
 
Ich würde es so anstellen:
PHP:
<?php
session_start();
$pictures = array('logo_mann.jpg', 'logo_ngk.jpg', 'logo_hella.jpg');
// Laedt die Nummer des letzten Bildes
$i = (int) $_SESSION['session_number'];
// Loescht den Eintrag diesen Bildes aus dem Array
unset($pictures[$i]);
// Ordnet die Bilder neu an
$pictures = array_values($pictures);

mt_srand ((double) microtime() * 1000000); 
$number = mt_rand(0, (count($pictures) - 1));

echo '<img src="http://www.tutorials.de/forum/images/'.$logo[$number].'" />';
$_SESSION['session_number'] = $number;
?>
 
Zurück