[TYPO3-UG Dutch] value waarde in formulier
Leen Strijk
leenstrijk at tomaatnet.nl
Tue Nov 27 15:57:41 CET 2007
Had ik inderdaad nog niet in IE geprobeerd.
exif_imagetype() gaat het worden.
Bedankt voor deze belangrijke tip.
gr Leen
Patrick Broens schreef:
> Leen Strijk wrote:
>> Hoi Patrick,
>>
>> Ik heb de volgende controles:
>> De ge-uploadde bestanden hebben 644 als rechten. iedereen lezen en
>> owner schrijven dus.
>> Ook deze controle bij submit
>> if ($_FILES['logo']['name']){
>> if ($_FILES['logo']['size'] > 50000){
>> $error = TRUE;
>> $logoError = '<font color="red">'.htmlspecialchars(
>> $this->pi_getLL('logo_size_error')).'</font>';
>> }
>> if (!ereg('image/jpeg|image/gif',$_FILES['logo']['type'])){
> Dit is de mime afkomstig van de client en is dus te faken. Hier kun je
> dus andere bestanden mee uploaden. Server side check is aan te raden.
> Heb je dit al getest in IE7, want bijna geen JPEG zal aankomen. Voor IE7
> is dit namelijk image/pjpeg. En wat dacht je van image/jpg?
>> $error = TRUE;
>> $logoError = $logoError.'<br > <font
>> color="red">'.htmlspecialchars($this->pi_getLL('logo_type_error')).'</font>';
>>
>> }
>> }
>> Als het nog beter kan hoor ik het graag.
> Als je alleen images gebruikt, dan kan ik de php functie
> exif_imagetype() aanbevelen, onderdeel van libexif (exif extension).
>>
>> Een en ander wat je schrijft had ik min of meer al een beetje
>> begrepen, en ben daarom nu bezig om de file uploads middels een popup
>> scherm te doen.
>> In het formulier kan ik dan laten zien of en welk bestand al aanwezig
>> is. Dat kon ik al eerder maar als je dan een update uitvoerde was je
>> de waarde in logo kwijt. Omdat ik ook controleer of er al een bestand
>> met dezelfde naam is krijg je hem daarna niet meer in de database. Dan
>> moet het bestand eerst verwijderd worden.
>>
>> groeten Leen
>>
>>
>>
>> Patrick Broens schreef:
>>> Leen,
>>>
>>> Als ik het goed begrijp wil je de inhoud van de database terug in het
>>> formulier laten komen en werkt dit niet voor input type="file". Dat
>>> klopt, want dat kan niet. Als een gebruiker naar een bestand zoekt om
>>> deze te uploaden, dan zoekt hij/zij in het locale bestandssysteem.
>>> Hiervan weet jij de waarde niet, simpelweg omdat die niet wordt
>>> doorgestuurd (veiligheid). Het haalt dan ook niets uit om de waarde
>>> uit de database in dit veld terug te plaatsen.
>>>
>>> Voor het geval dat iemand begint te roepen: Dit kan wel. In sommige
>>> browsers kan het inderdaad met javascript, maar niet iedere browser
>>> laat dit toe. Officieel hoort dit een read-only waarde te zijn.
>>> Iedere browser die dit wel toelaat zou onmiddelijk op de brandstapel
>>> moeten, want dan praat je over een major security hole.
>>>
>>> Wat ik vaak doe bij een uploadveld is een link plaatsen naar het
>>> vorige bestand dat is geupload, of in het geval van een afbeelding,
>>> de afbeelding erbij plaatsen als thumbnail. Dan weet de gebruiker in
>>> ieder geval wat hij/zij heeft geupload.
>>>
>>> En dan nog even een zijdelingse opmerking: File uploads kunnen erg
>>> gevaarlijk zijn. Hier dien je dan ook alle beveiliging op los te
>>> laten die er maar voorhanden is. Dat begint bij de controle van het
>>> mime-type (server side, niet de mime type die door de client wordt
>>> verstuurd, want die kan gefaked zijn), en alles wat je maar kunt
>>> bedenken. Ook de directory waar uiteindelijk de upload terecht komt
>>> dient goed beveiligd te zijn. Stel dat ik middels jouw script een php
>>> file kan uploaden, vervolgens weet waar het staat en het ook nog kan
>>> uitvoeren, dan begrijp je waar ik het over heb.
>>>
>>> Nooit dus blindelings elk geuploade bestand accepteren.
>>>
>>> Patrick
>>>
>>> Leen Strijk wrote:
>>>> Hoi,
>>>>
>>>> Ik heb er nog eens over nagedacht maar misschien is het beter om de
>>>> bestanden niet via een file veld in het formulier te doen maar in
>>>> een popup window met een fileupload formulier.
>>>>
>>>> gr Leen
>>>>
>>>>
>>>> Leen Strijk schreef:
>>>>> Hallo,
>>>>>
>>>>> In mijn extensie heb ik een formulier gemaakt.
>>>>> Een van de velden is een file upload veld
>>>>>
>>>>> Nu heb ik ook een gedeelte wat een databaserecord ophaalt en in de
>>>>> formuliervelden zet met behulp van value="waarde uit de db"
>>>>> Hiermee kan je een record aanpassen.
>>>>>
>>>>> Dit werkt allemaal goed behalve met de file velden.
>>>>> De waardes komen niet in de velden.
>>>>> Dat is ook zo bij de controle. Als er een fout is geeft hij het
>>>>> formulier terug met eventuele foutmeldingen.
>>>>> Als bijv de postcode fout is zou ik graag willen dat de file die ik
>>>>> wil uploaden onthouden wordt. Kan dat?
>>>>>
>>>>> gr Leen
>>>>
>>
More information about the TYPO3-UG-dutch
mailing list