[PHP] Plaatje bestaat, maar doet het pas na bezoek

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 18:49

HaTe

haat niet

Topicstarter
Ik ben een website aan het verhuizen, van mijn eigen server bij mijndomein.com naar de server van mijn vader bij one.com. Dit ging grotendeels goed, maar nu is er toch echt een heel raar probleem.
De support bij one.com komt er ook niet uit en zegt dat het een script fout is. Maar nu heb ik een lege test pagina gemaakt, waar het probleem nog steeds is.

Het probleem:
Ik heb een aantal foto's geupload voor het fotoalbum en het fotoalbum script heeft er daarna thumbnails van gemaakt. Nu is het probleem dat de helft van de foto's niet werkt. Zie de test pagina.

Hier is de testpagina

Bij het alt attribuut van het plaatje heb ik 'Dont Work' staan. Daaronder staat de link naar de foto, zodat je die niet in de bron hoeft op te zoeken. Ga daarheen. Die doet het ook niet. Vul nu de url van het plaatje nog een keer in (gewoon de adresbalk selecteren en op enter drukken). Nu doet ie het wel! Ga nu weer terug naar de testpagina. Je ziet dat de foto daar ook werkt, maar als je de pagina refreshed niet meer.

Wat is dit voor een raar probleem? Kan het liggen aan de manier hoe ik de thumbnails heb gemaakt?

code:
1
2
3
4
$afbeelding_origineel = imagecreatefromgif($srcfile);
            imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
            ImageString($afbeelding, $fontgroote, ($breedte/2)-70, $hoogte/2, $tekst, $kleur);
            imagegif($afbeelding, $dstfile);


Wel raar, op de andere server werkt het perfect!

Wie o wie kan mij helpen. De service van one.com is echt slecht. Zij weten het niet.

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 03-07 14:47

disjfa

be

PHP:
1
imagegif($afbeelding, $dstfile);


scrijft je pic alleen weg op de webserver, laat hem nog niet zien. Dus ook nog een keer zonder dest erna zetten om de afbeelding te laten zien. Daarna natuurlijk eerst je cachefile nakijken ;)

[ Voor 5% gewijzigd door disjfa op 27-12-2008 00:01 ]

disjfa - disj·fa (meneer)
disjfa.nl


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 21:26
Ik kan niet op je server kijken dus wat er precies aan de hand is moet je zelf uitzoeken. Het gedrag is echter wel goed te analyseren:

Een request waarbij het plaatje niet getoond is ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
GET /ve/fotoalbum/Jaar%202003/Kerstoptreden%20Hofkerk%202003/thumbs/Bild0154.jpg HTTP/1.1
Host: vocal-essen.nl
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: nl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://vocal-essen.nl/ve/test.php


Hierbij is het antwoord als volgt:
code:
1
2
3
4
5
6
7
8
9
HTTP/1.0 404 Not Found
Date: Fri, 26 Dec 2008 23:10:22 GMT
Server: Apache
X-Powered-By: PHP/5.2.8
Content-Type: text/html
X-Cache: MISS from localhost.localdomain
Connection: close

No input file specified.


Een request waarbij je het plaatje binnenkrijgt ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
GET /ve/fotoalbum/Jaar%202003/Kerstoptreden%20Hofkerk%202003/thumbs/Bild0154.jpg HTTP/1.1
Host: vocal-essen.nl
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: nl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive


En dan krijg je de volgende header terug:
code:
1
2
3
4
5
6
7
8
9
10
HTTP/1.0 200 OK
Date: Fri, 26 Dec 2008 23:10:25 GMT
Server: Apache
Last-Modified: Tue, 23 Dec 2008 23:33:39 GMT
ETag: "99058a04-ccb-49517553"
Accept-Ranges: bytes
Content-Length: 3275
Content-Type: image/jpeg
X-Cache: MISS from localhost.localdomain
Connection: close

... en uiteraard de inhoud van het plaatje.

Als je de requests vergelijkt, dan schijnt het fout te gaan als er een referer wordt meegestuurd. Is er toevallig een slecht werkende hotlink-beveiliging ingeschakeld? Spit je .htaccess eens door op instellingen die hier iets mee te maken hebben.

Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 18:49

HaTe

haat niet

Topicstarter
Mijn vader heeft wel op de root van de website (vocal-essen.nl) .htaccess files staan. Deze heb ik er net allemaal even afgegooid, maar het probleem was niet weg.

Ik check het nog een keer. Bedankt voor de hulp tot nu toe!

@disjva: Klopt. Zo heb ik de foto weggeschreven op de server. Ik heb het niet doormiddel van dat stukje code laten zien!

@NMe: Sorry! Mijn fout. Maar ik denk dat je zelf ook fout zit. Hij moet (denk ik) naar Non-Windows Operating systems

//edit
Ik heb nog een keer gechecked en het resultaat is positief na het verwijderen van alle .htaccess bestanden. Nu ga ze weer langzaam terugplaatsen toch niet

[ Voor 20% gewijzigd door HaTe op 27-12-2008 00:43 ]

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • MvBeest
  • Registratie: Maart 2008
  • Laatst online: 22:00
Het is mogelijk dat de afbeelding gewoonweg niet in het beschikbare geheugen past. Je kan dit proberen op te lossen door een ini_set commando aan te roepen bovenaan je script.

PHP:
1
ini_set("memory_limit", "128M");

Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 18:49

HaTe

haat niet

Topicstarter
Er is iets mis gegaan. Mijn vader heeft de website in Frontpage geopend. Nu staan er overal _vti_cnf mappen :s Ik ga ze even verwijderen en probeer het nog eens.

//edit
Vage crap. Ik heb de _vti_cnf mappen verwijderd (waar een kopie van alles instaat ofzo :s). Die staan in elke map... veel werk..

Nu is er niks mis met alles. Ik ga nu wat .htaccess bestanden terugzetten.

//edit
Gevonden!
Het was een .htaccess bestand die ik zelf nooit heb gemaakt :s Ik snap ook niet wat er in staat en wat het doet. Dus zeker niet van mij. Ook niet van mijn vader en het stond ook niet op mijn andere server. Frontpage zal het wel gedaan hebben. Dit stond in de file:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?vocalessen.brothersofflames.net/.*$ [NC]
RewriteRule \.(gif|jpg|png|bmp)$ http://vocalessen.brothersofflames.net/images/header.jpg [R,L]
Ik verban Frontpage meteen van zijn computer!!

[ Voor 83% gewijzigd door HaTe op 27-12-2008 01:00 ]

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • DrClaw
  • Registratie: November 2002
  • Laatst online: 21-08 21:39
als je die _vti_cnf nou ook uit de test.php weghaalt, dan doet ie het wel ?

//edit:
find -iname _vti_cnf -type d -exec rm -rf \{} \;

//edit2:
heb je soms ergens, in je database bijvoorbeeld, spaties in de filenames zitten, die niet goed worden geconverteerd naar %20 ?

[ Voor 62% gewijzigd door DrClaw op 27-12-2008 00:59 ]


Acties:
  • 0 Henk 'm!

  • NielsNL
  • Registratie: Januari 2002
  • Laatst online: 08-09 20:14

NielsNL

DigiCow

HaTe schreef op zaterdag 27 december 2008 @ 00:44:

[...]

Ik verban Frontpage meteen van zijn computer!!
Frontpage gaat geen .htaccess files voor je maken/aanpassen, volgens mij is Frontpage toch niet op de hoogre van .htaccess files die Apache gebruikt.
Verdiep je eens in .htaccess files, hartstikke handig!

Sowieso mag je je in het geheel wel eens gaan inlezen op het gebied van hosting programma's.
En dan Vooral Apache/PHP in jouw geval. :)
code:
1
2
3
4
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?vocalessen.brothersofflames.net/.*$ [NC]
RewriteRule \.(gif|jpg|png|bmp)$ http://vocalessen.brothersofflames.net/images/header.jpg [R,L]

Is inderdaad een hotlink beveiliging.
Als je de 3e regel aanpast naar de locatie van je nieuwe site zal het weer werken.
En natuurlijk de 4e regel naar de locatie waar je nieuwe hotlink plaatje gaat staan.

[ Voor 84% gewijzigd door NielsNL op 27-12-2008 14:52 ]

M'n Oma is een site aan het haken.

Pagina: 1