Avatar billede sorenriis Nybegynder
19. januar 2008 - 16:03 Der er 9 kommentarer og
1 løsning

PHP script går kold

Jeg har lavet et lille script, som henter en række billeder ud fra en MySQL-database og viser dem på skærmen.

Hvis jeg afbryder scriptet halvvejs (f.eks. klikker på et link for at gå til en anden side), er det ligesom om at siden går kold.
Jeg er så nødt til at lukke browseren helt, før jeg kan gå ind på siden.

Hvad kan det skyldes? Kan det tænkes at jeg er nødt til at lukke evt. aktive mysql-forespørgsler inden jeg laver en ny?
Avatar billede dcheng Novice
19. januar 2008 - 16:15 #1
Måske sætte denne til at lavere tal.
http://dk.php.net/set_time_limit

Har du husket denne ved alle frespørgsler
http://dk.php.net/manual/da/function.mysql-close.php
Avatar billede sorenriis Nybegynder
19. januar 2008 - 22:48 #2
Siden er lavet så man øverst vælger en billedserie.
Problemet opstår oftest, hvis jeg vælger en billedserie og sætter den igang med at vise billederne på skærmen. Vælger jeg så et nyt galleri, inden den er færdig med at hente galleriet fra før, så går browseren kold.

mysql_close() bruger jeg alle steder, mens jeg ikke har prøvet med "set_time_limit".

Kan du/I komme på andre muligheder?
Avatar billede horsmark Nybegynder
20. januar 2008 - 11:00 #3
har du en url ?
Avatar billede sorenriis Nybegynder
20. januar 2008 - 11:17 #4
Nej, det kører kun lokalt, da det ikke er noget offentligheden skal se :)

Men scriptet gør det at det kører tabellen med billeder igennem.
Hver gang den finder et billede, så vises billedet vha:
<img width=$standardWidth height=$height src='visbillede.php?imageid=$row[imageid]'>

visbillede.php er opbygget således:
$sql1 = "SELECT galleryid, imageData, type FROM image WHERE imageid=$imageid";
$result1 = mysql_query($sql1);
       
$row = mysql_fetch_array($result1);
header("Content-type: $row[type]");
echo $row['imageData'];
Avatar billede horsmark Nybegynder
20. januar 2008 - 11:24 #5
rigtig dårlig ide at generere billeder on the fly. Husk at en enkelt billedevisning kan starte flere hundrede tråde (sidekald til serveren).

Jeg har før haft dette issue og gør digselv den tjeneste at generer thumbs/billeder så de ligger fysisk på serveren og _ikke_ on-the-fly.
Avatar billede sorenriis Nybegynder
20. januar 2008 - 11:40 #6
Grunden til at jeg har lavet det sådan her, er at jeg ikke ønsker at billederne ligger fysisk tilgængelige på serveren.

Hvis jeg vil fastholde dette - kan jeg forbedre scriptet på en eller anden måde?
Avatar billede dcheng Novice
20. januar 2008 - 12:08 #7
Det vil aldrig ligge fysisk :P Det vil altid være logisk, hehe

Men det er en RIGTIG DÅRLIG ide at generere dem on the fly som horsmark siger.

Du du skal gøre at ligge dine et billeder et sted, hvor kun din "webserver bruger" har adgang til. Lave database stuktur på billederne også kalde billederne via en php script.

Hvis du vil sikre dem endnu mere, så skal du lave real time encryption på din harddisk, altså så selv om man stjæler din disk ikke kan se dine data.
Avatar billede horsmark Nybegynder
21. januar 2008 - 07:32 #8
..alternativt kan du bygge en htaccess ting der gør at kun den server hvor billederne ligger på har mulighed for at få billedet vist. Dvs. hvis man henviser til billedet fra en anden server kan du f.eks. returnere et ingen-adgang billede :-).

Dog skal du være opmærksom på at htaccess mod_rewrite sløver serveren MEN det er intet i forhold til måden du løser det på idag :)
Avatar billede sorenriis Nybegynder
10. december 2009 - 11:10 #9
Lukket spørgsmålet. Hvis I vil have del i points, så afgiv svar :)
Jeg kom aldrig videre med projektet grundet tidsmangel.
Avatar billede sorenriis Nybegynder
10. december 2009 - 11:10 #10
Spørgsmålet lukket.

Hvis I vil have del i points, så afgiv svar :)
Jeg kom aldrig videre med projektet grundet tidsmangel.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester