login  Naam:   Wachtwoord: 
Registreer je!
 Forum

extensie van bestand uit URL (Opgelost)

Offline simonopsomer - 20/08/2007 18:09 (laatste wijziging 20/08/2007 18:09)
Avatar van simonopsomerNieuw lid Op mijn registreerpagina staat een tekstveld, waarin het lid in kwestie de URL naar zijn avatar kan opgeven.
Geen uploadveld dus !

Die URL sla ik dan op in de database om later in een IMG-tag te gebruiken en de avatar van het lid weer te geven.

Ik weet niet of het mogelijk is dat er gehackt kan worden door bijvoorbeeld een andere bestand dan een afbeelding in te geven, maar je weet nooit. Daarom zou ik dus moeten checken of het ingegeven bestand een afbeelding (.jpg, .gif of .png) is of niet.
Maar hoe doe ik dit? Kan ik op één of andere manier de extensie van het bestand uit de URL achterhalen?

Alvast bedankt.

9 antwoorden

Gesponsorde links
Offline TotempaaltJ - 20/08/2007 18:22
Avatar van TotempaaltJ PHP interesse
  1. <?php
  2. function IsFile($file, $thi, $pltb)
  3. {
  4. $ext = file("$pltb");
  5.  
  6. echo $pltb ."&nbsp;&nbsp;&nbsp;". $ext . "<br />";
  7.  
  8. if(empty($thi)) {
  9. foreach ($ext as $val)
  10. {
  11. if (strpos($file, $val))
  12. return true;
  13. }
  14. }
  15. elseif(empty($file)) {
  16. foreach ($ext as $val)
  17. {
  18. if (strpos($thi, $val))
  19. return true;
  20. }
  21. }
  22. return false;
  23. }
  24. ?>

Gebruik ik... Uiteraard moet je wel een paar kleine dingetjes aanpassen...
Offline ikki007 - 20/08/2007 18:47
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Ik zou ook op MIME checken.
Offline simonopsomer - 20/08/2007 19:30
Avatar van simonopsomer Nieuw lid Bedankt Bigboss voor de functie
Maar zou je eens wat uitleg bij je code kunnen geven?
Ik vermoed dat er bij $file de URL ingevuld wordt? Wat komt er dan te staan bij $thi en $pltb?

@ikki007:
Ik dacht eerst ook aan het mime-type. Maar hoe kan je dat halen uit een gewone URL? Ik dacht dat je dat enkel via een uploadveld kon?
Offline kickasgamer - 20/08/2007 20:01
Avatar van kickasgamer PHP ver gevorderde werkt dit ook niet ?
  1. $info = getimagesize($url);
  2. $info[3] // is afbeelding type, als ik me niet vergis
Offline simonopsomer - 21/08/2007 19:18
Avatar van simonopsomer Nieuw lid @kickassgamer:
Het zou kunnen, maar ik weet het niet. Ik ben niet zo thuis in die image-functies.
Ik heb het wel even opgezocht en het zou inderdaad werken. Maar als het bestand geen afbeelding is (en daarop moet ik dus checken), dan geeft de functie een warning. En de bezoekers zien natuurlijk liever een mooie foutmelding i.p.v. die PHP-meldingen .
Offline Grayen - 21/08/2007 20:15
Avatar van Grayen PHP ver gevorderde Staat allow url open aan of uit op je host? je kunt dit controleren door phpinfo() functie aan te roepen. Als hij aan staat, kun gaan controleren op de mime types, anders is het alleen mogelijk om de extensie in de naam te achterhalen (ze zouden dan alsnog php kunnen uitvoeren).
Offline simonopsomer - 23/08/2007 18:45
Avatar van simonopsomer Nieuw lid Momenteel heb ik nog geen host. Ik vind het zinloos om een host te betalen als de website toch nog niet online geplaatst kan worden. Hier lokaal staat allow_url_fopen wel op on.

Het zou wel handig zijn om dan op mime te kunnen checken, maar hoe doe ik dit dan?
Ik ken enkel de remedie bij een uploadveld. Dan bevat dit het mime-type (het uploadveld heeft de naam 'bestand')

$_FILES['bestand']['type']

Maar hoe werkt het dan via URL? Zonder het bestand up te loaden dus? Is dit ook met een superglobal?
Offline Grayen - 23/08/2007 20:19
Avatar van Grayen PHP ver gevorderde Bekijk dit script eens:

http://www.plaatscode.be/6391

Daar maak ik gebruik van een script wat in IMO het meest veilige is. In het script wordt gebruikt gemaakt van $_FILES global, uiteraard moet jij bij getimagesize dan een url plaatsen. Je kunt ook het script aanpassen en exif_imagetype gebruiken, deze functie is sneller, maar het is een extensie van PHP en weet niet of hij bij jouw op localhost ook staat geinstalleerd.
Offline simonopsomer - 24/08/2007 18:09 (laatste wijziging 15/11/2007 21:32)
Avatar van simonopsomer Nieuw lid bedankt _O_. Daarmee zal het me wel lukken.

**EDIT**:
Ik heb nu pas de tijd gehad om het te veranderen, maar het is dan toch gelukt.
Bedankt!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s