Radom image op pagina.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Ad

Ad

17/01/2007 13:28:00
Quote Anchor link
Ik ben bezig met een website via php en sql. Alles is tot nu toe gelukt, maar nu moet ik twee foto's per pagina van 190x190 random laden op een bepaalde plaats.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?
$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
 
PHP hulp

PHP hulp

24/11/2024 00:34:12
 
- SanThe -

- SanThe -

17/01/2007 13:37:00
Quote Anchor link
Hoe stop je het in je pagina? Met een include?
 
Bart van der veen

bart van der veen

17/01/2007 14:45:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
?>
 
Ad

Ad

17/01/2007 18:22:00
Quote Anchor link
Bedankt voor jullie reacties.

@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.
 
Ad

Ad

18/01/2007 09:19:00
Quote Anchor link
Zou iemand mij nog willen helpen?
 
Ad

Ad

18/01/2007 12:02:00
Quote Anchor link
Ik zal het nog even iets anders uitleggen.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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]."\">";

?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


Maar dat doet het niet, en krijg geen foutmelding.
 
- SanThe -

- SanThe -

18/01/2007 12:08:00
Quote Anchor link
* Bumpen * is pas na 24 uur toegestaan. Zie de FAQ.
 
Ad

Ad

18/01/2007 12:09:00
Quote Anchor link
Sorry, mijn excuses.
 
Ad

Ad

19/01/2007 12:20:00
Quote Anchor link
Nog één poging dan.. iemand?
 
Dennis S

Dennis S

19/01/2007 12:28:00
Quote Anchor link
ik heb er een keer een script geschreven, mischien heb je erwat aan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);
    }
}

?>


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
 
Ad

Ad

19/01/2007 12:39:00
Quote Anchor link
Bedankt voor je reactie Rednl.
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?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<img src="<?php include "random.php"; ?>" alt="" height="190" width="190" border="0"/>
 
Dennis S

Dennis S

19/01/2007 12:43:00
Quote Anchor link
Je geeft bij $folder aan in welke map je plaatjes staan die random getoond moet worden, doordat er in het script dmv header() wordt aangegeven wat voor soort bestand het kan je hem gewoon als volgt includen in je huidige pagina's:

<img src="random.php" alt="" height="190" width="190" border="0"/>
 
GaMer B

GaMer B

19/01/2007 12:43:00
Quote Anchor link
Volgens mij hoef je hem alleen maar te includen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include("random.php");
?>


Edit:
laat maar
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
 
Ad

Ad

19/01/2007 13:13:00
Quote Anchor link
Hm ik heb de folder verandert naar 'images/foto/'
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?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo("<img src=" . $img . ">");
Gewijzigd op 01/01/1970 01:00:00 door Ad
 
Ad

Ad

21/01/2007 18:47:00
Quote Anchor link
Zou iemand hier nog één keer naar kunnen kijken? Of een ander script. Ik kom er echt niet uit.

Bedankt.
 
Vincent

Vincent

21/01/2007 19:03:00
 
Ad

Ad

21/01/2007 19:05:00
Quote Anchor link
Ja dat is wel wat ik zoek! Zal even proberen.
 
Lukke

lukke

21/01/2007 19:07:00
Quote Anchor link
http://dollepret.awardspace.com/testplaatjes/random2.php

Geen idee waarom het niet werkt...

Maar mss werkt het zo

Bestand 1:
random1.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);

?>


en waar je het plaatje wilt

random2.php
ergens bovenaan zet je

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include ("random1.php")
?>


en op de plaats waar je het plaatje wilt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "<img src=\"".$afbeelding[$rand]."\">"
?>


Oja, je 2de bestand moet ook .php zijn he
 
Vincent

Vincent

21/01/2007 19:10:00
Quote Anchor link
haha lol dat zijn mij plaatjes:D
Teminste uit mijn topic;)
Gewijzigd op 01/01/1970 01:00:00 door Vincent
 
Ad

Ad

21/01/2007 19:30:00
Quote Anchor link
@Lukke,

Hij doet dat niet.. :S
Kan dit soms niet?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<td width="190" height="205" valign="top" align="left" xpos="447"><?php echo "<img src=\"".$afbeelding[$rand]."\">"?></td>
 
Ad

Ad

21/01/2007 19:36:00
Quote Anchor link
@Vincent:

Dit werkt! Super, dankje! Net op tijd af nu :-)
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.