[php & mysql] pic server

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Galoptic
  • Registratie: Februari 2001
  • Laatst online: 04-10-2024
Ik heb drie tabellen aangemaakt:

datasrv_picsrv_img - id / cat_name / img_name / filetype
datasrv_picsrv_filetype - id / filetype
datasrv_picsrv_cat - id / cat_name

Momenteel heb ik een 1.jpg een 2.gif in de /picsrv/ map zitten. Stap twee is om een .php te schrijven, die middels [img]"picsrv.php?id=1"[/img] aan te roepen is. Wanneer men dan rechtermuisknop » eigenschappen klikt op het plaatje, krijgt men als bestandsnaam picsrv.php?id=1 te zien ipv /picsrv/1.jpg.

Wat ik tot dusver heb:
PHP:
1
2
3
4
$_result = mysql_query("SELECT id FROM datasrv_picsrv_img WHERE id = ".$_GET["id"]); 
$_filetype= mysql_query("SELECT filetype FROM datasrv_picsrv_filetype WHERE id = " . $_result); 

header("Location: http://dataserver.chidero.nl/picsrv/" . $_GET["id"] . $_filetype);

Ik weet dat er fouten in zitten, zo klopt de $_filetype regel bijvoorbeeld nog niet.

Hoe moet ik vanaf hier verder? I'm stuck...

[ Voor 2% gewijzigd door Galoptic op 19-08-2007 20:12 . Reden: url weg ]


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

JIj zegt met de header " location:" waar je precies de foto's kan vinden, dus dan kan men toch de link naar het plaatje vinden. Wat jij waarschijnlijk dus niet wilt hebben.

Volgens mij wil jij ook geen cat_name in je image tabel hebben, maar de categorie id.

Wat je wilt doen ipv de huidige header is een header geven dat er een plaatje komt. (image/gif of image/jpg of image/png.. etc...) en dan het plaatje binair overgooien naar de client.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • Galoptic
  • Registratie: Februari 2001
  • Laatst online: 04-10-2024
datasrv_picsrv_img - id / cat_id / img_name / filetype_id
datasrv_picsrv_filetype - filetype_id / filetype
datasrv_picsrv_cat - cat_id / cat_name

Zo zouden de tabellen moeten kloppen.

Ik heb inmiddels op php.net uitgevonden dat ik mijn 'hidden url'-wens zou moeten bewerkstelligen middels de functies fopen(), fread() en fput(). De combinatie daarvan is me niet helemaal duidelijk.

Acties:
  • 0 Henk 'm!

  • bakakaizoku
  • Registratie: Januari 2002
  • Laatst online: 17-09 10:27
je zou ook gewoon een include kunnen gebruiken, alleen moet je dan wel de juiste mime tags gebruiken, als je tenminste mozilla gebruikers 100% wil supporten

PHP:
1
2
3
4
5
6
7
<?
$_result = mysql_query("SELECT id FROM datasrv_picsrv_img WHERE id = ".$_GET["id"]);  
$_filetype= mysql_query("SELECT filetype FROM datasrv_picsrv_filetype WHERE id = " . $_result);  

header("file type geneuzel content=\"jpeg/image\""); 
include("/picsrv/".$id.$_filetype);
?> 

PSN: bakakaizoku - WoW: Thiccblonde (GM of Phoenix Ascension) @ Twisting-Nether


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

mattttt schreef op 22 April 2003 @ 12:15:
je zou ook gewoon een include kunnen gebruiken, alleen moet je dan wel de juiste mime tags gebruiken, als je tenminste mozilla gebruikers 100% wil supporten
[..]
[/php]
Als jij die code online hebt staan, mag ik dan EEN plaatje uploaden? >:)

Lees: erg onverstandig om het met include te doen, ik kan namelijk gewoon de eerste karakters van een plaatje normaal laten en dan opeens PHP code in mijn plaatje gaan plaatsen, waardoor je parser het gaat bewerken. ( security! ). Lijkt me niet helemaal de bedoeling.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

Verwijderd

dusty schreef op 22 april 2003 @ 12:54:
[...]

Als jij die code online hebt staan, mag ik dan EEN plaatje uploaden? >:)

Lees: erg onverstandig om het met include te doen, ik kan namelijk gewoon de eerste karakters van een plaatje normaal laten en dan opeens PHP code in mijn plaatje gaan plaatsen, waardoor je parser het gaat bewerken. ( security! ). Lijkt me niet helemaal de bedoeling.
[aanvulling]
Gebruik gewoon fopen, oid.

Acties:
  • 0 Henk 'm!

Verwijderd

en dan fpassthru()

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01

Tux

mattttt schreef op 22 april 2003 @ 12:15:
je zou ook gewoon een include kunnen gebruiken, alleen moet je dan wel de juiste mime tags gebruiken, als je tenminste mozilla gebruikers 100% wil supporten

PHP:
1
2
3
4
5
6
7
<?
$_result = mysql_query("SELECT id FROM datasrv_picsrv_img WHERE id = ".$_GET["id"]);  
$_filetype= mysql_query("SELECT filetype FROM datasrv_picsrv_filetype WHERE id = " . $_result);  

header("file type geneuzel content=\"jpeg/image\""); 
include("/picsrv/".$id.$_filetype);
?> 
include ("/picsrv/" . $id . $_filetype);
gaat niet werken ;)
Gaat ie op een Linux bak /picsrv/* proberen te openen. Ipv /home/sites/12/www/picsrv/* oid.

En om een query weer te geven moet je toch eerst een mysql_result of een mysql_fetch_array oid doen :P

Content-type is image/jpeg

En waarom staan de verschillende gegevens in verschillende tabellen?

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Tux schreef op 22 April 2003 @ 16:27:
[...]
En waarom staan de verschillende gegevens in verschillende tabellen?
Vanwege normalisatie misschien?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • Galoptic
  • Registratie: Februari 2001
  • Laatst online: 04-10-2024
dusty schreef op 22 April 2003 @ 17:52:
[...]

Vanwege normalisatie misschien?
Ik weet niet wat normalisatie is (je mag me slaan, ik trap zometeen m'n google wel aan), maar ik heb het express gedaan, om extra flexibiliteit in te bouwen. Zo bedenk ik me net dat er ook genoeg .jpe's zijn (jpegs dus), als filetype.

Anyways, met deze 3 tabellen heb ik de ruimte om filetypes (evt. extra .eps, mocht ik er een beeldbank van willen maken) en categorieën (forum / mail / msn / etc) toe te voegen.

Hoe dan ook, fopen() en fpassthru() had ik al gehoord ja. Is het dan een kwestie van het gezochte plaatje (middels ID aangeroepen) via fopen() door te zetten naar de fpasstrhu(), welke het dan 'uitspuugt' naar de browser?

Punt is, dat ik er daarvóór al niet echt uitkom om te zorgen dat-ie met picsrv.php?id=1 mijn 1.jpg aan te laten roepen.
Pagina: 1