Radom image op pagina.
Er zijn een aantal scripts te vinden met doe dit moet maar deze werken niet zoals ik wil. Ze redirecten ze naar de url van de foto en dan kan ik het dus niet in mijn site implenteren.
Weet iemand hoe dit moet?
Dit leek mij een goed script, maar werkt niet:
Code (php)
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
54
55
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
54
55
<?
$dir = opendir('.');
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
echo "<img src=\"".$afbeelding[$rand]."\">";
?>
[/CODE]
In een los php bestandje doet hij het prima, maar zodra ik hem in mijn pagina stop,dus zo, dan loopt heel internet vast. Ik wijzig dan alleen de directory waar hij de foto's weg moet halen:
<td width="190" height="205" valign="top" align="left" xpos="447">
[CODE]
<?
$dir = opendir('.');
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
echo "<img src=\"".$afbeelding[$rand]."\">";
?>
[/CODE]
</td>
$dir = opendir('.');
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
echo "<img src=\"".$afbeelding[$rand]."\">";
?>
[/CODE]
In een los php bestandje doet hij het prima, maar zodra ik hem in mijn pagina stop,dus zo, dan loopt heel internet vast. Ik wijzig dan alleen de directory waar hij de foto's weg moet halen:
<td width="190" height="205" valign="top" align="left" xpos="447">
[CODE]
<?
$dir = opendir('.');
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
echo "<img src=\"".$afbeelding[$rand]."\">";
?>
[/CODE]
</td>
Gewijzigd op 01/01/1970 01:00:00 door Ad
Hoe stop je het in je pagina? Met een include?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
$fotos=array("bestand1.jpg", "bestand2.jpg", "bestand3.jpg", "bestand4.jpg", "bestand5.jpg",); //een willekeurige array met bestanden
$fotos_rand=array_rand ($fotos, 2); // 2 random foto's uit die array.
echo $fotos[$fotos_rand[0]]; //de eerste
echo $fotos[$fotos_rand[1]]; //de tweede
?>
$fotos=array("bestand1.jpg", "bestand2.jpg", "bestand3.jpg", "bestand4.jpg", "bestand5.jpg",); //een willekeurige array met bestanden
$fotos_rand=array_rand ($fotos, 2); // 2 random foto's uit die array.
echo $fotos[$fotos_rand[0]]; //de eerste
echo $fotos[$fotos_rand[1]]; //de tweede
?>
@SanThe:
Nee, niet met een include. Kan ik het includen tussen <td> </td>?
@Bart
Dat is inderdaad een goede manier, maar de beheerder moet via een CMS ook foto's kunnen uploaden in de betreffende map. Dan is het niet zo logisch meer.
Zou iemand mij nog willen helpen?
In de pagina 'randomfoto.php' wordt een foto gehaald uit een map. Dit werkt goed in een losse pagina.
De pagina ziet er zo uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
$dir = opendir('.');
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
echo "<img src=\"".$afbeelding[$rand]."\">";
?>
$dir = opendir('.');
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
echo "<img src=\"".$afbeelding[$rand]."\">";
?>
Nu heb ik een andere pagina 'sporthealth.php'. Hier moet het script van randomfoto in komen. Ik dacht dat dit vrij simpel door dit te doen:
Code (php)
1
2
3
4
5
2
3
4
5
<td width="190" height="205" valign="top" align="left" xpos="447"><?php include "../images/foto/randomfoto.php"; ?></td>
<td width="1" height="205"><spacer type="block" width="1" height="205"/></td>
</tr>
<tr height="485">
<td width="190" height="485" valign="top" align="left" xpos="447"><?php include "../images/foto/randomfoto.php"; ?></td>
<td width="1" height="205"><spacer type="block" width="1" height="205"/></td>
</tr>
<tr height="485">
<td width="190" height="485" valign="top" align="left" xpos="447"><?php include "../images/foto/randomfoto.php"; ?></td>
Maar dat doet het niet, en krijg geen foutmelding.
* Bumpen * is pas na 24 uur toegestaan. Zie de FAQ.
Sorry, mijn excuses.
Nog één poging dan.. iemand?
Code (php)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
// geef nu aan waar je je mappen nacht, dag en avond staan
$folder = 'images/';
//kies hier op welke extensies je wilt zoeken
$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';
$extList['bmp'] = 'image/bmp';
$img = null;
if (substr($folder,-1) != '/') {
$folder = $folder.'/';
}
if (isset($_GET['img'])) {
$imageInfo = pathinfo($_GET['img']);
if (
isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
file_exists( $folder.$imageInfo['basename'] )
) {
$img = $folder.$imageInfo['basename'];
}
} else {
$fileList = array();
$handle = opendir($folder);
while ( false !== ( $file = readdir($handle) ) ) {
$file_info = pathinfo($file);
if (
isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
$fileList[] = $file;
}
}
closedir($handle);
if (count($fileList) > 0) {
$imageNumber = time() % count($fileList);
$img = $folder.$fileList[$imageNumber];
}
}
if ($img!=null) {
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
header ($contentType);
echo("<img src=" . $img . ">");
} else {
//hieronder wordt de GD module gebruikt om een plaatje
//te maken met een error als deze script geen plaatjes
//kan vinden. Hiervoor moet de GD module geinstalleerd
//zijn.
if ( function_exists('imagecreate') ) {
header ("Content-type: image/png");
$im = @imagecreate (400, 200)
or die ("Cannot initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 0,0,0);
$text_colorred = imagecolorallocate ($im, 255,0,0);
imagestring ($im, 5, 120, 5, "ERROR ", $text_colorred);
imagestring ($im, 5, 5, 25, "deze script geen plaatjes kan vinden", $text_colorred);
imagestring ($im, 3, 5, 100, "De oorzaak kan zijn:", $text_color);
imagestring ($im, 2, 5, 125, "1. de script kan geen plaatjes vinden met de jouw gekozen extensies", $text_color);
imagestring ($im, 2, 5, 150, "2. Er bevinden geen plaatjes in de directory: $folder", $text_color);
imagepng ($im);
imagedestroy($im);
}
}
?>
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
// geef nu aan waar je je mappen nacht, dag en avond staan
$folder = 'images/';
//kies hier op welke extensies je wilt zoeken
$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';
$extList['bmp'] = 'image/bmp';
$img = null;
if (substr($folder,-1) != '/') {
$folder = $folder.'/';
}
if (isset($_GET['img'])) {
$imageInfo = pathinfo($_GET['img']);
if (
isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
file_exists( $folder.$imageInfo['basename'] )
) {
$img = $folder.$imageInfo['basename'];
}
} else {
$fileList = array();
$handle = opendir($folder);
while ( false !== ( $file = readdir($handle) ) ) {
$file_info = pathinfo($file);
if (
isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
$fileList[] = $file;
}
}
closedir($handle);
if (count($fileList) > 0) {
$imageNumber = time() % count($fileList);
$img = $folder.$fileList[$imageNumber];
}
}
if ($img!=null) {
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
header ($contentType);
echo("<img src=" . $img . ">");
} else {
//hieronder wordt de GD module gebruikt om een plaatje
//te maken met een error als deze script geen plaatjes
//kan vinden. Hiervoor moet de GD module geinstalleerd
//zijn.
if ( function_exists('imagecreate') ) {
header ("Content-type: image/png");
$im = @imagecreate (400, 200)
or die ("Cannot initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 0,0,0);
$text_colorred = imagecolorallocate ($im, 255,0,0);
imagestring ($im, 5, 120, 5, "ERROR ", $text_colorred);
imagestring ($im, 5, 5, 25, "deze script geen plaatjes kan vinden", $text_colorred);
imagestring ($im, 3, 5, 100, "De oorzaak kan zijn:", $text_color);
imagestring ($im, 2, 5, 125, "1. de script kan geen plaatjes vinden met de jouw gekozen extensies", $text_color);
imagestring ($im, 2, 5, 150, "2. Er bevinden geen plaatjes in de directory: $folder", $text_color);
imagepng ($im);
imagedestroy($im);
}
}
?>
En vervolgens deze als plaatje includen via de <img> tags
Edit:
Heb even de script aangepast
Gewijzigd op 01/01/1970 01:00:00 door Dennis S
Ik begrijp niet precies hoe dit script werkt, ben pas een beginner. Maar als ik dit script in bijvoorbeeld random.php opsla, kan ik dan op een andere pagina bijv pagina.php hem zo oproepen?
<img src="random.php" alt="" height="190" width="190" border="0"/>
Edit:
laat maar
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
Maar wanneer ik hem test zegt hij het volgende:
"http://localhost/Right%20to%20Play/web-content/random.php"
En geeft geen foto weer.
Dit is dus zonder include maar gewoon random.php
Edit: Heb het ook even op jouw manier geinclude maar dan zegt hij niets meer maar ook geen plaatje.. dus gewoon leeg vakje.
Heeft het hier misschien mee te maken?
Gewijzigd op 01/01/1970 01:00:00 door Ad
Bedankt.
Ja dat is wel wat ik zoek! Zal even proberen.
http://dollepret.awardspace.com/testplaatjes/random2.php
Geen idee waarom het niet werkt...
Maar mss werkt het zo
Bestand 1:
random1.php
en waar je het plaatje wilt
random2.php
ergens bovenaan zet je
en op de plaats waar je het plaatje wilt
Oja, je 2de bestand moet ook .php zijn he
Geen idee waarom het niet werkt...
Maar mss werkt het zo
Bestand 1:
random1.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
$dir = opendir('.');
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
?>
$dir = opendir('.');
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
?>
en waar je het plaatje wilt
random2.php
ergens bovenaan zet je
en op de plaats waar je het plaatje wilt
Oja, je 2de bestand moet ook .php zijn he
Teminste uit mijn topic;)
Gewijzigd op 01/01/1970 01:00:00 door Vincent
Hij doet dat niet.. :S
Kan dit soms niet?
Code (php)
1
<td width="190" height="205" valign="top" align="left" xpos="447"><?php echo "<img src=\"".$afbeelding[$rand]."\">"?></td>
Dit werkt! Super, dankje! Net op tijd af nu :-)