webpagina in img src?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ozzie PHP

Ozzie PHP

12/01/2011 11:31:23
Quote Anchor link
Ik vraag me het volgende af. Als de src van een image naar een webpagina verwijst, wordt die webpagina dan ook daadwerkelijk aangeroepen?

<img src="http://www.mijnsite.nl">

Wordt mijnsite.nl nu aangeroepen? Op het scherm zie ik namelijk een rood kruisje.

Vanwaar deze vraag?
Ik ben bezig een framework te maken en alle aanroepen (via de browser) die niet naar een bestand verwijzen, worden naar het framework gestuurd. Echter, stel dat een afbeelding getoond wordt die van de server is verwijderd, dan bestaat het bestand niet en wordt er dus doorverwezen naar het framework. Er gebeurt dan eigenlijk dus dit:

<img src="http://www.mijnsite.nl/ganaarframework">

Nu ben ik dus benieuwd of 1) het framework daadwerkelijk wordt aangeroepen en 2) of ik in het framework kan detecteren dat het om een afbeelding gaat en dan een "niet gevonden" afbeelding kan laten renderen zodat je niet zo'n lelijk rood kruisje krijgt. Ik hoef niet te weten HOE ik dit zou moeten doen, maar ben alleen even nieuwsgierig of het uberhaupt mogelijk is.
 
PHP hulp

PHP hulp

22/12/2024 09:25:57
 
Terence Hersbach

Terence Hersbach

12/01/2011 11:40:51
Quote Anchor link
De pagina wordt dan inderdaad aangeroepen. Als je er voor zorgt dat er 1 manier is om plaatjes aan te roepen kan je dat in je framework checken en eventueel een 404-afbeelding terug sturen.
 
TJVB tvb

TJVB tvb

12/01/2011 11:44:32
Quote Anchor link
Volgens mij kun je niet detecteren dat er om een afbeelding wordt gevraagd, punt 2 kan dus niet.

De aanroep wordt wel gedaan zoals Terence al zegt
 
Ozzie PHP

Ozzie PHP

12/01/2011 11:55:32
Quote Anchor link
@TH: Oke, met die "1 manier" bedoel jij bijvoorbeeld: http://www.mijnsite.nl/toonplaatje/315 ?

@TJVB: betreffende punt 2...
Stel dat je www.mijnsite.nl/plaatje.jpg aanroept en die bestaat niet. Als het goed is (maar dit weet ik dus niet zeker!!!!) wordt (via htaccess) "plaatje.jpg" nu doorgestuurd naar mijn framework. In het framework zou ik dan kunnen controleren of het om een plaatje gaat. Zo ja, dan een 'niet gevonden' plaatje renderen. Of wordt "plaatje.jpg" niet doorgestuurd omdat het bestand niet bestaat?
 
Bas Cost Budde

Bas Cost Budde

12/01/2011 11:58:44
Quote Anchor link
Je kunt wel detecteren of een bestaand bestand wordt aangeroepen! In htaccess kun je een verzoek om een niet-bestaand plaatje zo doorzetten:

RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} (\.png|\.jpg|\.gif)
RewriteRule ^(.*)$ /images/plaatje_niet_gevonden.png
 
Ozzie PHP

Ozzie PHP

12/01/2011 12:02:29
Quote Anchor link
Dankjewel Bas. Kan dat alleen via htaccess of ook via framework zoals hierboven beschreven?

p.s. waarom gebruik je REQUEST_URI in plaats van REQUEST_FILENAME?
 
Bas Cost Budde

Bas Cost Budde

12/01/2011 12:12:23
Quote Anchor link
Ik test wel meer dingen dan alleen de bestandsnaam, en gebruik uit gewoonte de URI.

Zie ook http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond

Kan *wat* alleen via htaccess? Wanneer je een verzoek naar een niet-bestaand bestand doorstuurt naar je 'framework', ik vermoed naar een of andere front controller, krijg je toch op zijn minst het verzochte pad door? Daar moet je dan aan beslissen of het een afbeelding betreft.
Wel een dure oplossing (performance-wise) als je direct een afbeelding kunt serveren.
 
Ozzie PHP

Ozzie PHP

12/01/2011 12:27:37
Quote Anchor link
Dat laatste bedoel ik inderdaad... of het verzochte pad wordt doorgestuurd naar mijn framework. Ik snap dat het performance kost, maar via mijn framework ben ik wel flexibeler... bijvoorbeeld welk "niet gevonden" plaatje moet worden getoond, de default variant of een specifieke versie enz.

performance ben ik niet bang voor omdat ik niet verwacht dat het vaak zal vorkomen dat er een plaatje ontbreekt.
Gewijzigd op 12/01/2011 12:28:18 door Ozzie PHP
 
Bas Cost Budde

Bas Cost Budde

12/01/2011 12:29:51
Quote Anchor link
Je vraag is dus beantwoord? Je krijgt het request echt binnen. Op je ontwikkelomgeving kun je dat overigens snel vaststellen, en live is het nog altijd in het access_log te zien.
 
Ozzie PHP

Ozzie PHP

12/01/2011 12:54:48
Quote Anchor link
Ja mijn vraag is beantwoord :) Ik wilde inderdaad weten of de request echt binnenkomt, aangezien ik momenteel alleen maar een rood kruisje zie als ik handmatig naar m'n index.php verwijs via <img src="index.php">.
 



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.