Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[PHP]Clickbaar maken van random generated image?

Pagina: 1
Acties:
  • 80 views sinds 30-01-2008

Verwijderd

Topicstarter
De PHP code hieronder genereert random een image uit een directory en geeft die terug.
Ik heb niet veel verstand van deze code, dus ik weet niet precies waar de waarde gereturnd wordt en hoe ik deze dan clickbaar kan maken.
Het moet ook in deze code gebeuren, aangezien ik deze PHP file aanroep in een iframe om die image te tonen.

Wie kan mij vertellen hoe ik de images die random gegenereerd worden uit een directory via deze code clickbaar kan maken, dus met iets van <a href=link></a>.
Ik heb het geprobeerd om de PHP code heen te plaatsen maar dat werkt niet.

Hieronder de 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
<?php

    $folder = '.';

    $extList = array();
    $extList['gif'] = 'image/gif';
    $extList['jpg'] = 'image/jpeg';
    $extList['jpeg'] = 'image/jpeg';
    $extList['png'] = 'image/png';
    

$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);
    readfile($img);
} else {
    if ( function_exists('imagecreate') ) {
        header ("Content-type: image/png");
        $im = @imagecreate (100, 100)
            or die ("Cannot initialize new GD image stream");
        $background_color = imagecolorallocate ($im, 255, 255, 255);
        $text_color = imagecolorallocate ($im, 0,0,0);
        imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);
        imagepng ($im);
        imagedestroy($im);
    }
}
?>

  • Icekiller2k6
  • Registratie: Februari 2005
  • Laatst online: 12:17
eerste gedachte is omdat je geen html code hebt maar een jpg file.
dit los op door uw img te loaden in een html page...
dan werkt <a href' wel..

MT Venus E 5KW (V151) P1 HomeWizard | Hackerspace Brixel te Hasselt (BE) - http://www.brixel.be | 9800X3D, 96GB DDR5 6000MHZ, NVIDIA GEFORCE 4090, ASRock X670E Steel Legend, Seasonic GX1000


  • Scott
  • Registratie: December 2004
  • Laatst online: 30-11 19:40

Scott

Ik ben, dus ik tweak

In deze code kun je geen link maken. De code zorgt voor de output van een afbeelding en niet van tekst. Je kunt bijvoorbeeld ook geen directe link zetten in een foto die je geupload hebt.

Je zult dus een nieuwe HTML-pagina moeten maken met daarin een link naar dit PHP-bestand :)

Verwijderd

Topicstarter
Ik roep die PHP code aan via deze IFRAME

code:
1
2
3
<iframe framepadding=0 framespacing=0 src=randomimage.php height=100 width=100
 SCROLLING=no FRAMEBORDER=0>Sorry, je browser ondersteunt geen frames...
</iframe>


Naar mijn weten kan je hier ook weinig doen om die images die door die php worden getoond in de iframe clickbaar te maken, of is er wel een oplossing voor?

[ Voor 3% gewijzigd door Verwijderd op 15-08-2007 03:24 ]


  • danslo
  • Registratie: Januari 2003
  • Laatst online: 13:15
:?

Waarom doe je niet gewoon:
code:
1
<img src="randomimage.php" height="100" width="100">


En dan kan je eventueel nog dit doen:
code:
1
2
3
<a href="link" alt="random image">
    <img src="randomimage.php" height="100" width="100">
</a>

Verwijderd

Topicstarter
Ik wil het per see in een IFRAME aanroepen als het kan.

  • Scott
  • Registratie: December 2004
  • Laatst online: 30-11 19:40

Scott

Ik ben, dus ik tweak

Sowieso is een iframe niet echt een handige manier in mijn ogen. Wat is er mis met de afbeelding gewoon weergeven volgens de <img>-tag en dáár een linkje omheen te zetten ? Mocht je het toch met een iframe willen om welke reden dan ook, dan kun je het op twee manieren doen:

- Een <a> om het iframe heen zetten (ik weet niet of dat mag, is afhankelijk van of het een block level element is of een inline element. Denk echter dat het wel mag)
- Zoals ik in mijn vorige post zei: een nieuw HTML-bestand maken waarin je die afbeelding laat zien met een <a>-tag er omheen.

  • danslo
  • Registratie: Januari 2003
  • Laatst online: 13:15
Verwijderd schreef op woensdag 15 augustus 2007 @ 03:36:
Ik wil het per see in een IFRAME aanroepen als het kan.
Waarom?

Verwijderd

Topicstarter
ScottB schreef op woensdag 15 augustus 2007 @ 03:36:
Sowieso is een iframe niet echt een handige manier in mijn ogen. Wat is er mis met de afbeelding gewoon weergeven volgens de <img>-tag en dáár een linkje omheen te zetten ? Mocht je het toch met een iframe willen om welke reden dan ook, dan kun je het op twee manieren doen:

- Een <a> om het iframe heen zetten (ik weet niet of dat mag, is afhankelijk van of het een block level element is of een inline element. Denk echter dat het wel mag)
- Zoals ik in mijn vorige post zei: een nieuw HTML-bestand maken waarin je die afbeelding laat zien met een <a>-tag er omheen.
Ik moet het eenmaal aanleveren in IFRAME omdat hij het op zijn website wil plaatsen op die manier.

Je eerste methode werkt zowiezo niet, dat had ik al geprobeerd.
Je tweede methode wil mij ook niet lukken. Op de een of andere manier kan ik die php file neit goed aanroepen in html of een ander php file.

Ik heb dit gedaan in een php file:
<?php
require("rotate.php");
?>

dan krijg ik deze error als ik naar die page ga:

Warning: Cannot modify header information - headers already sent by (output started...)

[ Voor 9% gewijzigd door Verwijderd op 15-08-2007 04:00 ]


Verwijderd

Nofi, maar misschien dat je beter eerst even kunt verdiepen in de basics voordat je hiermee aan de gang gaat.

Je haalt nu client en serverside door elkaar, PHP en HTML en doet (IMHO) hele rare dingen zonder daar echt een goede reden voor te geven.

Daarnaast is het antwoord nu al meerdere keren gegeven maar kun je daar blijkbaar niets mee.

Verwijderd

Topicstarter
Ik kan al aardig wat programmeren in php en html heb ik ook helemaal onder de kniie, dus zo'n noob ben ik ook weer niet.

Er is nog geen antwoord gegeven dat voor mij werkt, en daar gaat het toch om in dit topic of niet?

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 25-11 22:57

dusty

Celebrate Life!

Antwoord IS gegeven, <a href="pagina.php"><img .... ></a> doen, betekent dus iframe.php aanmaken waarin je de output <a ...>..</a> zet.. met een link naar de bovenstaande script in een img tag.

En uiteindelijk is dit dus Basic stuff.

Bovenstaande script geeft een plaatje weer, wat in feite hetzelfde is als direct naar een .gif/.jpg te gaan via de webbrowser, daarbij heb je ook niet de mogelijkheid om binnen de .gif/.jpg een link aan te geven, dat zal toch echt via html moeten gebeuren.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1

Dit topic is gesloten.