[PHP] meerdere JPGs openen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 09:00
Het volgende.
Ik heb een directory met daarop een .htaccess bestand omdat niemand deze bestanden op mag roepen, alleen php mag deze bestanden ophalen.
Als een gebruiker de juiste rechten heeft mag deze al deze plaatjes bekijken.

Dit is me wel gelukt met 1 enkel plaatje, zoals vaak in de UTFS voorkwam, maar als ik meerdere plaatjes wil openen laat die er maar 1tje zien.
Iemand een idee hoe ik alle plaatjes uit mijn directory op het scherm kan toveren ?

Dit is wat ik tot nu toe heb.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$directory = "fotos/2002/"; 
$dirhandle = opendir($directory); 
while($filename = readdir($dirhandle)) 
        { 
         if ($filename != "." && $filename != ".." && $filename!=".htaccess") 
          {
            $filename=$directory.$filename;
            $plaatje = ImageCreateFromJPEG($filename);
            ImageJPEG($plaatje);
            ImageDestroy($plaatje);
          }
         }

Taaaa taa taa taaaa taa taa ta taaataaaaa.


Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
Je moet dit script telkens opnieuw aanroepen en niet proberen om in dit script alle foto's te laten weergeven :)

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Gewoon linkjes maken naar die folder, door middel van [img]"plaatjenaam,[/img] ?

[ Voor 32% gewijzigd door gorgi_19 op 01-09-2003 21:41 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 09:00
gorgi_19 schreef op 01 September 2003 @ 21:37:
Gewoon linkjes maken naar die folder, door middel van [img]"plaatjenaam"[/img] ?
kan niet, zit een .htaccess in de directory

en ik roep het scripje toch steeds aan d.m.v. het loopje ?

Taaaa taa taa taaaa taa taa ta taaataaaaa.


Acties:
  • 0 Henk 'm!

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 10-09 12:16

Sponge

Serious Game Developer

Het lijkt me dat je met ImageJPEG een header+pic stuurt? :) Ik ben gene PHP held, maar dat lijkt me logisch. Naja, en dat is ongeveer hetzelfde als een jpg openen in IE vanaf verkenner/explorer, een tegelijk.

De beste optie lijkt mij dan toch of een HTML file te genereren (in PHP) met de gebruikelijke <IMG tags die naar de files wijzen? Alhoewel men dan nog steeds naar die images kan verwijzen, tenzij je daar misschien ook iets met htaccess doet (of in de img src misschien een scriptje ala "getimage?file=photo.jpg" die ALLEEN* uit de pictures dir of iets anders wat niet voor de hand de foto's haalt

*anders kan je het door dingen vervangen (../../een dir) die minder plezierig kunnen zijn.

Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
a casema user schreef op 01 September 2003 @ 21:39:
[...]

kan niet, zit een .htaccess in de directory

en ik roep het scripje toch steeds aan d.m.v. het loopje ?
Wat je nu probeert te doen is 15 verschillende Images in 1 Imagefile te proppen :) Je moet het scriptje met een while loop aanroepen (dus het hele bestand) en met een variabele vanaf het andere script de foto nummers bepalen zodat hij iedere keer helemaal opnieuw laad inclusief headers e.d. en dat in de <img> tag gooien :)

Acties:
  • 0 Henk 'm!

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 09:00
het loopje heb ik nu in een test.php gezet en deze aangeroepen met
PHP:
1
echo "[img]\"test.php?url=$filename\"[/img]";

bedankt, oplossing heb ik ff vermeld voor andere mensen die het ooit nodig mochten hebben.

Taaaa taa taa taaaa taa taa ta taaataaaaa.


Acties:
  • 0 Henk 'm!

  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 26-08 09:08

Kippenijzer

McFallafel, nu met paardevlees

Wat je _zou_ kunnen doen is alle plaatjes hun hoogte en breedte optellen, en dan een image maken waarin _alle_ plaatjes naast elkaar/ onder elkaar passen en dan steeds de inhoud van een plaatje in dit grote image wat je maakt copieren.... Je kunt beter ervoor zorgen dat in plaats van het image-scriptje een gewoon php pagina maak scriptje deze rechten heeft, en dat deze dan voor ieder individueel plaatje een [img]bla[/img] doet wat dmv een niet recursief 2e php scriptje geladen wordt (om die veiligheid te behouden)

Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
a casema user schreef op 01 september 2003 @ 21:47:
het loopje heb ik nu in een test.php gezet en deze aangeroepen met
PHP:
1
echo "[img]\"test.php?url=$filename\"[/img]";

bedankt, oplossing heb ik ff vermeld voor andere mensen die het ooit nodig mochten hebben.
No Problemo :)

Acties:
  • 0 Henk 'm!

  • Anders
  • Registratie: December 2000
  • Laatst online: 13-09 18:52
a casema user schreef op 01 September 2003 @ 21:47:
het loopje heb ik nu in een test.php gezet en deze aangeroepen met
PHP:
1
echo "[img]\"test.php?url=$filename\"[/img]";
Ai ai ai... altijd link, dit soort constructies. Straks roept iemand het bestand test.php?url=../../../usr/bin/conf/httpd.conf of weet ik veel wat op.

Geef bij dit soort dingen nooit een extensie mee (plak dat er in test.php zelf achter) en controleer of de meegegeven variabele bestaat uit enkel a-zA-Z0-9_

Beter nog is het om elke foto te koppelen aan een id (hetzij via een database, hetzij via een array), en de key van die id mee te geven. test.php?id=$id
Zo weet je zeker dat nooit een ongewenst bestand kan worden opgevraagd.

Ik spoor veilig of ik spoor niet.


Acties:
  • 0 Henk 'm!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 12:25
als je in plaats van het plaatje openen en dan weer doorsturen fpassthru() gaat gebruiken?
PHP:
1
2
3
4
             $filename=$directory.$filename; 
            $plaatje = ImageCreateFromJPEG($filename); 
            ImageJPEG($plaatje); 
            ImageDestroy($plaatje);

wordt dan
PHP:
1
2
3
4
5
             $filename=$directory.$filename; 
    $handle = fopen ("$filename", "r");
    header("Content-type: image/jpeg");
    fpassthru($handle);
    fclose($handle);

scheelt ook nog eens in de serverload, mocht je dat intresseren

[ Voor 11% gewijzigd door Hmmbob op 02-09-2003 22:38 . Reden: toevoeging ]

Sometimes you need to plan for coincidence

Pagina: 1