David22 Geplaatst: 27 november 2009 Rapport Geplaatst: 27 november 2009 (bewerkt) 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: 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.) 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 <?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 http://www.JOUWWEBSITE.nl/RandomSignature/randomsig.jpg 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? [img=http://www.JOUWWEBSITE.nl/RandomSignature/randomsig.jpg] 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: 5 december 2009 door David22 Reageren
Thundercover Geplaatst: 27 november 2009 Rapport Geplaatst: 27 november 2009 Duidelijke en handige tutorial! Reageren
Donald F. Duck Geplaatst: 28 november 2009 Rapport Geplaatst: 28 november 2009 (bewerkt) Er is nog een manier om erachter te komen of mod_rewrite draait: <?php phpinfo(); ?> Zoek dan (via Ctrl+F) naar mod_rewrite. Gevonden: je hebt het. Niet gevonden: je hebt het niet. Bewerkt: 28 november 2009 door Donald F. Duck Reageren
Ymosky Geplaatst: 2 december 2009 Rapport Geplaatst: 2 december 2009 (bewerkt) Mooie tutorital!! Ik loop alleen tegen een probleempje aan: mod_rewrite word ondersteund (is eigen host, gecontroleerd bij php-info en via test met .htaccess dus zou volgens mij goed moeten zijn?), Daarna PHP-script, .htaccess en plaatjes geupload. Tot aan het PHP-script werkt alles prima (kijk maar), maar als ik .htaccess ga gebruiken krijg ik een "404 Not Found" pagina (link ernaartoe) Daarna even op een andere website/host (betaalde) geprobeerd maar daar hield ik hetzelfde probleem. Weet iemand misschien waar dat aan kan liggen? Bewerkt: 2 december 2009 door Ymosky Reageren
marcootje Geplaatst: 3 december 2009 Rapport Geplaatst: 3 december 2009 Leuke tut, ik heb hem bij mijn bladwijzers gezet . @Ymosky: Ik gok dat het aan je .htaccess-'script' ligt. Misschien moet je die ff posten.. Reageren
Ymosky Geplaatst: 3 december 2009 Rapport Geplaatst: 3 december 2009 (bewerkt) @Ymosky: Ik gok dat het aan je .htaccess-'script' ligt. Misschien moet je die ff posten.. Ik heb gewoon degene gebruikt die in de beginpost van David staat, deze dus: RewriteEngine On RewriteRule ^randomsig.jpg index.php Bewerkt: 3 december 2009 door Ymosky Reageren
marcootje Geplaatst: 3 december 2009 Rapport Geplaatst: 3 december 2009 Hm ik ben niet heel erg thuis in urls rewriten, maar volgens mij is er iets mis met dat script.. RewriteEngine On RewriteRule randomsig.jpg index.php Volgens mij moet dat het zijn, want ^ geeft aan (in een 'normale' reguliere expressie althans') dat hij aan het begin van in dit geval de url moet beginnen. Ik geef echter geen garantie, het kan ook zijn dat je een internal server error krijgt als je dit runt, of andere rare geintjes krijgt . Misschien moet er bij rewriterule simpelweg een ^ voor staan, maar dat weet ik niet, en lijkt mij onlogisch. (ik moet me er toch nog eens een keertje in verdiepen denk ik... ) Anders zou ik het niet weten, misschien dat je .htaccess niet als .htaccess wordt gezien (. vergeten of zo), of dat soort standaard dingen, maar anders zou ik het echt niet weten. Reageren
Ymosky Geplaatst: 3 december 2009 Rapport Geplaatst: 3 december 2009 Hmm, daarmee werkte het nog steeds niet, Maar inmiddels heb ik met wat googelen wel een andere oplossing ervoor gevonden. Je kunt de map waarin de afbeeldingen en het PHP-script staan eenvoudig de naam van een afbeelding geven, dan krijgt die dus de naam "randomsig.jpg". Net getest en werkt volgens mij prima Reageren
marcootje Geplaatst: 3 december 2009 Rapport Geplaatst: 3 december 2009 hoe bedoel je? kun je een link geven? (klinkt nogal vaag ) Reageren
Ymosky Geplaatst: 3 december 2009 Rapport Geplaatst: 3 december 2009 (bewerkt) Om maar even het voorbeeld van David22 aan te houden: Bij stap 1 en 2 werden de afbeeldingen en het PHP-script (index.php) in de map "RandomSignature" geupload. Ik heb nu de naam van die map veranderd in "randomsig.jpg". Zodat de link er zo uit komt te zien: http://www.JOUWWEBSITE.nl/randomsig.jpg Ik heb dat op m'n eigen website gedaan door wat afbeeldingen + een index.php te uploaden in de map "randomsig.png" dat komt er als volgt uit: [img=http://www.ymosky.nl/images/randomsig.png] Bewerkt: 3 december 2009 door Ymosky Reageren
marcootje Geplaatst: 3 december 2009 Rapport Geplaatst: 3 december 2009 Bedankt, weet ik dat ook weer. @David: misschien is het wel handig om de manier van Ymosky er ook bij te vermelden voor het geval dat de eigenlijke manier niet werkt. Hoeft niet in de beginpost, maar kan ook met een linkje, voor het geval dat er meer mensen komen die er problemen mee hebben, of geen htaccess hebben . Reageren
.Senne Geplaatst: 3 december 2009 Rapport Geplaatst: 3 december 2009 I am so going to try this one. Reageren
Recommended Posts
Een reactie plaatsen
Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.