Zoals sommigen van jullie misschien wel is opgevallen, heb ik al een tijdje een signature welke veranderd, elke keer als je de pagina ververst. Nu kreeg ik van sommige mensen een vraag hoe je dit moest maken, daarom deze tutorial.
Wat gaan we doen?
Deze tutorial bestaat niet uit verschrikkelijk veel, wat we in principe doen is het uploaden van de afbeeldingen, een script maken waar we random een afbeelding kunnen laten kiezen en daarna ervoor zorgen dat we dit PHP-script kunnen gebruiken in onze signature.
Eisen voor de webhost
Jouw webhost moet twee dingen ondersteunen: PHP en mod_rewrite. PHP ondersteunen de meeste hosts wel, maar bij mod_rewrite is dit helaas niet het geval.
Hoe controleer ik of mijn host mod_rewrite ondersteund?
Vrij simpel. Maak eerst een tekstbestand met de volgende inhoud:
Options +FollowSymLinks
RewriteEngine On
Maak dan een map aan op jouw webserver, en noem deze ModRewriteTest. Zet daar dit tekstdocument in, en noem hem .htaccess. Dit moet je doen via jouw FTP-programma, Windows Explorer geeft een foutmelding. Browse dan naar
http://www.JOUWWEBSITE.nl/ModRewriteTest/
, waarbij je wel kan raden van JOUWWEBSITE.nl is . Nu kunnen er twee dingen gebeuren:
Niets: Gefeliciteerd, mod_rewrite werkt!
Internal Server Error (500): Helaas, geen mod_rewrite voor jou. Regel eerst eens een host die deze functie ondersteund! (Dit doen veel gratis hosts helaas niet.)
Upload alle afbeeldingen die je hebt naar een aparte map op jouw webserver, als voorbeeld zullen we de map RandomSignature gebruiken. Zet hierin alle afbeeldingen. Easy as can be ^^
Stap 2: PHP-script maken
Ik zal hieronder het PHP-script plakken wat nodig is om een signature uit de map te kiezen. Ik zal het script niet stap voor stap met jullie maken, maar wel voorzien van commentaar
<?php
$folder = ''; // Bestand staat in dezelfde map
$exts = 'jpg jpeg png gif'; // Toegestane uitgangen
$files = array(); $i = -1; // Variabelen definieren
if ('' == $folder) $folder = './';
$handle = opendir($folder); // Map openen
$exts = explode(' ', $exts);
while (false !== ($file = readdir($handle))) {
foreach($exts as $ext) { // Controleer de extensie
if (preg_match('/\.'.$ext.'$/i', $file, $test)) { // Strings controleren
$files[] = $file; // Het is goed
++$i;
}
}
}
closedir($handle); // Map sluiten
mt_srand((double)microtime()*1000000); // Nodig als PHP versie < 4.2
$rand = mt_rand(0, $i); // $i was halverwege eentje hoger gemaakt
header('Location: '.$folder.$files[$rand]); // Uitvoer
?>
LET OP: Dit script is niet gemaakt door mij, maar door Matt Mullenweg. Ik heb het script alleen verzien van (Nederlands) commentaar!
Sla dit bestand op op jouw webhost, in dezelfde map (RandomSignature) als jouw afbeeldingen. Noem dit bestand index.php
Okay, als het goed is krijg je nu een van jouw afbeeldingen te zien als je browsed naar
http://www.JOUWSITE.nl/RandomSignature
Probleem is alleen dat je nu met een .php (index.php) extensie zit. En de [ img ] tags op het forum ondersteunen alleen afbeeldingsextensies (.png, .jpg, .gif, etc). Hoe nu verder?
Stap 3: mod_rewrite
Okay, nu komt het trucje in beeld. We moeten ervoor zorgen dat we het PHP-script in een afbeeldings-URL weten te gieten. We moeten dus eigenlijk het forum weten te foppen, een valse URL aanmaken. En hiervoor hebben wij mod_rewrite. Opnieuw gaan we nu een .htaccess maken, alleen dit keer met een andere inhoud:
RewriteEngine On
RewriteRule ^randomsig.jpg index.php
Wat doet wat?
RewriteEngine On: Zeggen dat we mod_rewrite gaan gebruiken
RewriteRule...: Zeggen dat we een "fopadres" gaan gebruiken
^randomsig.jpg: Het valse adres aanmaken
index.php: Zeggen waarnaar het valse adres moet doorverwijzen
Dus, in feite zeggen we nu dat de inhoud van index.php uitgevoerd moet worden als we randomsig.jpg intypen. Ideaal dus! Zet nu deze .htaccess in de map RandomSignature, en test het maar! Als je nu naar
Tutorial
Een random signature welke ook werkt op het forum
Inleiding
Zoals sommigen van jullie misschien wel is opgevallen, heb ik al een tijdje een signature welke veranderd, elke keer als je de pagina ververst. Nu kreeg ik van sommige mensen een vraag hoe je dit moest maken, daarom deze tutorial.
Wat gaan we doen?
Deze tutorial bestaat niet uit verschrikkelijk veel, wat we in principe doen is het uploaden van de afbeeldingen, een script maken waar we random een afbeelding kunnen laten kiezen en daarna ervoor zorgen dat we dit PHP-script kunnen gebruiken in onze signature.
Eisen voor de webhost
Jouw webhost moet twee dingen ondersteunen: PHP en mod_rewrite. PHP ondersteunen de meeste hosts wel, maar bij mod_rewrite is dit helaas niet het geval.
Hoe controleer ik of mijn host mod_rewrite ondersteund?
Vrij simpel. Maak eerst een tekstbestand met de volgende inhoud:
Maak dan een map aan op jouw webserver, en noem deze ModRewriteTest. Zet daar dit tekstdocument in, en noem hem .htaccess. Dit moet je doen via jouw FTP-programma, Windows Explorer geeft een foutmelding. Browse dan naar
, waarbij je wel kan raden van JOUWWEBSITE.nl is
. Nu kunnen er twee dingen gebeuren:
Niets: Gefeliciteerd, mod_rewrite werkt!
Internal Server Error (500): Helaas, geen mod_rewrite voor jou. Regel eerst eens een host die deze functie ondersteund! (Dit doen veel gratis hosts helaas niet.)
Andere manier (door Donald F. Duck)
Stap 1: Afbeeldingen uploaden
Upload alle afbeeldingen die je hebt naar een aparte map op jouw webserver, als voorbeeld zullen we de map RandomSignature gebruiken. Zet hierin alle afbeeldingen. Easy as can be ^^
Stap 2: PHP-script maken
Ik zal hieronder het PHP-script plakken wat nodig is om een signature uit de map te kiezen. Ik zal het script niet stap voor stap met jullie maken, maar wel voorzien van commentaar
LET OP: Dit script is niet gemaakt door mij, maar door Matt Mullenweg. Ik heb het script alleen verzien van (Nederlands) commentaar!
Sla dit bestand op op jouw webhost, in dezelfde map (RandomSignature) als jouw afbeeldingen. Noem dit bestand index.php
Okay, als het goed is krijg je nu een van jouw afbeeldingen te zien als je browsed naar
Probleem is alleen dat je nu met een .php (index.php) extensie zit. En de [ img ] tags op het forum ondersteunen alleen afbeeldingsextensies (.png, .jpg, .gif, etc). Hoe nu verder?
Stap 3: mod_rewrite
Okay, nu komt het trucje in beeld. We moeten ervoor zorgen dat we het PHP-script in een afbeeldings-URL weten te gieten. We moeten dus eigenlijk het forum weten te foppen, een valse URL aanmaken. En hiervoor hebben wij mod_rewrite. Opnieuw gaan we nu een .htaccess maken, alleen dit keer met een andere inhoud:
Wat doet wat?
RewriteEngine On: Zeggen dat we mod_rewrite gaan gebruiken
RewriteRule...: Zeggen dat we een "fopadres" gaan gebruiken
^randomsig.jpg: Het valse adres aanmaken
index.php: Zeggen waarnaar het valse adres moet doorverwijzen
Dus, in feite zeggen we nu dat de inhoud van index.php uitgevoerd moet worden als we randomsig.jpg intypen. Ideaal dus! Zet nu deze .htaccess in de map RandomSignature, en test het maar! Als je nu naar
browsed, zal je de inhoud van jouw PHP-script uitgevoerd zien!
Nu moeten we alleen nog het PHP-script in jouw signature zetten. Maar, omdat we al een "fopadres" hebben, is dit supermakkelijk!
Stap 4: de signature in de signature zetten
Ik neem aan dat je wel weet hoe de IMG-tags op het forum werken?
Een mogelijk eindresultaat (mijn signature):
Er is ook nog een andere manier om het script werkend te krijgen: Klik (Door Ymosky)
Veel succes, en stel gerucht vragen!
David22
Bewerkt: door David22