[TYPO3-UG Dutch] value waarde in formulier

Leen Strijk leenstrijk at tomaatnet.nl
Tue Nov 27 14:37:38 CET 2007


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'])){
	$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.

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