[PHP] Random logo

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • vranqz
  • Registratie: September 2003
  • Laatst online: 26-05-2021
Boven m'n pivot weblog ben ik bezig met een random header, maar echt vlotten wil het niet echt.

Wanneer ik in mijn frontpage_template het volgende plaats:

code:
1
2
<h1 style="background: url('http://www.vranqz.nl/randomheader.php') no-repeat 
center center;"></h1>


krijg ik niets te zien, terwijl de link http://www.vranqz.nl/randomheader.php op zichzelf wel werkt.

de PHP file ziet er zo uit:

code:
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
<?
Header("Cache-Control: no-cache, must-revalidate");
?>

<html>
<head>
</head>
<body>

<?
$szImgUrlPrefix = "http://www.vranqz.nl/pivot/randomheader/";
$szImgUrlTrailer = ".jpg";

$nStartImage = 1;
$nEndImage = 2;

$szImgArgs = " border='0'";

$nWhichImage = rand($nStartImage, $nEndImage);

print "<a href='" . $szImgTarget . "' target='_top'>";
print "<img src='" . $szImgUrlPrefix . $nWhichImage . $szImgUrlTrailer
. "' alt='" . $szAltText . "'" . $szImgArgs . ">";
print "</a>";
?>

</body>
</html>


Iemand enig idee waarom de boel niet werkt op m'n frontpage zelf?

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
je bckground moet een plaatje zijn, en de file die je inlaad is dit niet. Je moet de file die je inlaad dus een plaatje laten uitpoepen bijvoorbeeld.

Acties:
  • 0 Henk 'm!

  • vranqz
  • Registratie: September 2003
  • Laatst online: 26-05-2021
Je bedoeld op zo'n manier?

code:
1
<h1>[img]"http://www.vranqz.nl/randomheader.php"></h1[/img]

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

Zet een random nummber achter randomheader.php, dus randomheader.php?131243242

[ Voor 26% gewijzigd door gorgi_19 op 12-07-2004 16:04 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Nee, je php produceert nu geen plaatje, maar een html-pagina.

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

VrAnqZ schreef op 12 juli 2004 @ 16:03:
Je bedoeld op zo'n manier?

code:
1
<h1>[img]"http://www.vranqz.nl/randomheader.php"></h1[/img]
Dat maakt niet uit.

randomheader.php maakt nu een HTML bestand, dat kan je dus niet als afbeelding of achtergrond gebruiken, je moet hem een afbeelding laten maken.

mar dan toch, je doet wel onnodig moeilijk. Je kunt veel makkelijker enkel de URL van de header veranderen dan iedere keer een nieuwe afbeelding maken in PHP.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

Verwijderd

Zoals je het nu doet zal het inderdaad niet werken, want je probeert (zoals hierboven ook al beschreven) een HTML pagina als plaatje te gebruiken, wat de browser natuurlijk niet snapt en een "kruisje" laat zien.

Wat je kan doen is hetvolgende: open het plaatje met fopen, en stuur het dan door naar de browser met fpassthru.

Een voorbeeldje:
PHP:
1
2
3
4
5
6
$img = "mijnplaatje.jpg" //kan je dus ook random laten maken
Header("Content-type: image/jpeg"); //je verstuurt een plaatje
Header("Cache-Control: no-cache, must-revalidate");
$fn=fopen($img,"r");
fpassthru($fn);
fclose($fn);



Edit:
Wat sjaakduhuuhl zegt: je kan nu gewoon kiezen uit 3 alternatieven :)

[ Voor 49% gewijzigd door Verwijderd op 12-07-2004 16:21 ]


Acties:
  • 0 Henk 'm!

  • creative8500
  • Registratie: September 2001
  • Laatst online: 01-02 14:14

creative8500

freedom.

Verscheidene opties, hierbij twéé die er vanuit gaan dat je het PHP-bestand als achtergrond hebt:
  1. Headers meegeven die het cachen voorkomen (kost veel bandbreedte).
  2. PHP:
    1
    
    header ('Location: ./images/' . rand($nStartImage, $nEndImage) . '.jpg');

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Doe gewoon dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?

$nStartImage = 1;
$nEndImage = 2;

$nWhichImage = rand($nStartImage, $nEndImage);

?>

<h1 style="background: url('http://www.vranqz.nl/pivot/randomheader/<?=$nWhichImage; ?>.jpg') no-repeat 
center center;"></h1>


edit:
hehe, nou heb je iig wat alternatieven :)

[ Voor 21% gewijzigd door Room42 op 12-07-2004 16:16 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • vranqz
  • Registratie: September 2003
  • Laatst online: 26-05-2021
Johnny schreef op 12 juli 2004 @ 16:07:
randomheader.php maakt nu een HTML bestand, dat kan je dus niet als afbeelding of achtergrond gebruiken, je moet hem een afbeelding laten maken.

mar dan toch, je doet wel onnodig moeilijk. Je kunt veel makkelijker enkel de URL van de header veranderen dan iedere keer een nieuwe afbeelding maken in PHP.
Hmm, m'n PHP kennis is niet al te groot, de randomheader.php file is door een vriend van me in elkaar gedraaid.

Wel snap ik het feit dat er nu een HTML uit komt rollen, dat dat een image moet zijn, maar hoe ik dat dan ga doen moet ik maar eens uitzoeken ;).

Met het randomheader.php?ext=.jpg werkt het nl. ook niet. Het gekke vind ik wel dat het bij m'n vorige layout wel altijd heeft gewerkt :)

//edit: Ik ga maar eens bezig met de boel hierboven :D kijken of ik eruit kom, iedereen bedankt voor de vele mogelijkheden :)

[ Voor 9% gewijzigd door vranqz op 12-07-2004 16:19 ]


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Stond hij toen in een (i)frame ofzo? Dan werkt het wel idd :)

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • vranqz
  • Registratie: September 2003
  • Laatst online: 26-05-2021
Room42 schreef op 12 juli 2004 @ 16:15:
Doe gewoon dit:
edit:
hehe, nou heb je iig wat alternatieven :)
Whoehoe, thnx! De makkelijkste manier maar geprobeerd (deze dus ;)) en het werkt!

Acties:
  • 0 Henk 'm!

  • Apolloc
  • Registratie: Maart 2002
  • Laatst online: 12-06 18:36
Ook een optie.. een van de vele

code:
1
2
3
4
5
6
7
8
9
<?php
$links=array(   0=>'image1.jpg',
                1=>'plaatje.gif', 
                2=>'images/achtergrond.png');
shuffle($links);

print $links[0];

?>

[ Voor 17% gewijzigd door Apolloc op 12-07-2004 16:26 ]


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Apolloc schreef op 12 juli 2004 @ 16:24:
Ook een optie.. een van de vele

code:
1
2
3
4
5
6
7
8
9
<?php
$links=array(   0=>'image1.jpg',
                1=>'plaatje.gif', 
                2=>'images/achtergrond.png');
shuffle($links);

print $links[0];

?>
Waarom shuffle en niet gewoon iets als rand() % 3?

Acties:
  • 0 Henk 'm!

  • Apolloc
  • Registratie: Maart 2002
  • Laatst online: 12-06 18:36
Omdat shuffle het eerst in me opkwam.

Acties:
  • 0 Henk 'm!

  • Tweeker
  • Registratie: April 2003
  • Laatst online: 01-10-2023

Tweeker

1 + 1 = 3

je kan beter redirecten dan

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
$szImgUrlPrefix = "http://www.vranqz.nl/pivot/randomheader/";
$szImgUrlTrailer = ".jpg";

$nStartImage = 1;
$nEndImage = 2;

$nWhichImage = rand($nStartImage, $nEndImage);

header("location: $szImgUrlPrefix . $nWhichImage . $szImgUrlTrailer");
?>


dan krijgt de browser de melding dat he plaatje verplaatst is en zal hem van de nieuwe locatie laden
Whoehoe, thnx! De makkelijkste manier maar geprobeerd (deze dus ) en het werkt!
ik ben geen voorstander van fopen in dit geval, geeft extra serverbelasting (geheugen en proc). De redirect is het minst arbeidsintensief voor de server

[ Voor 28% gewijzigd door Tweeker op 13-07-2004 10:11 ]

1 + 1 = 3


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
GOTTER schreef op 13 juli 2004 @ 10:09:
ik ben geen voorstander van fopen in dit geval, geeft extra serverbelasting (geheugen en proc). De redirect is het minst arbeidsintensief voor de server
Huh? Hij had het over mijn post, hoor :? Ik zie geen fopen.

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20-09 18:51
GOTTER schreef op 13 juli 2004 @ 10:09:
je kan beter redirecten dan
[..]
dan krijgt de browser de melding dat he plaatje verplaatst is en zal hem van de nieuwe locatie laden
Dat is grote ellende, want dan moet die eerste URL elke keer door de server herladen worden (die kan dus niet gecached worden). Als je toch een beperkt aantal plaatjes hebt, verwijs dan gewoon naar een random plaatje in je HTML code. Op die manier kan de browser alle plaatjes gewoon cachen en hoef je helemaal geen plaatje-producerende scripts te hebben.

Acties:
  • 0 Henk 'm!

  • Tweeker
  • Registratie: April 2003
  • Laatst online: 01-10-2023

Tweeker

1 + 1 = 3

Room42 schreef op 13 juli 2004 @ 16:00:
[...]

Huh? Hij had het over mijn post, hoor :? Ik zie geen fopen.
Oeps :( ik dag dat hij reageerde op slindenau. Goed mijn oplossing is ook EEN van vele mogelijke oplossingen zoals ik het zou doen.
Soultaker schreef op 13 juli 2004 @ 16:11:
[...]

Dat is grote ellende, want dan moet die eerste URL elke keer door de server herladen worden (die kan dus niet gecached worden). Als je toch een beperkt aantal plaatjes hebt, verwijs dan gewoon naar een random plaatje in je HTML code. Op die manier kan de browser alle plaatjes gewoon cachen en hoef je helemaal geen plaatje-producerende scripts te hebben.
Die URL moest toch geladen worden anders is het nooit echt random, en een geredirect URL wordt ook gewoon gecached hoor. Nadeel is echter dat het in je stats een extra hit oplevert.

1 + 1 = 3

Pagina: 1