Archief - PHP: $_POST en $_FILE array deftig afhandelen.

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Bram

Legacy Member
Ik heb een formulier waarin 4 bestanden moeten geupload worden, elk bestand heeft ook een titel in 4 verschillende talen.
De html van het formulier ziet er zo uit: (ik werk met Smarty, vandaar die {section})
HTML:
{section name=rs loop=4}
<table class="navtable" cellspacing="0">
	<tr>
		<td>Bestand: </td>
		<td>Belgi&euml;</td>
		<td>Belgique</td>
		<td>France</td>
		<td>Deutschland</td>
	</tr>
	<tr>
		<td><input type="file" name="img[]" /></td>
		<td><input type="text" name="rollbn[]" value="" size="15"/></td>
		<td><input type="text" name="rollbf[]" value="" size="15" /></td>
		<td><input type="text" name="rollfr[]" value="" size="15" /></td>			
		<td><input type="text" name="rollde[]" value="" size="15" /></td>
	</tr>
</table>
{/section}
Ik had gelezen dat als je [] achter je input name zet, ze in een array komen, dus probeer ik het zo af te handelen met php, maar er gaat iets fout. De !empty check is er omdat, als de titel leeggelaten wordt, er ook zogezegd geen bestand is dat moet geupload worden.
PHP:
for($i=0; $i<=4; $i++) {
	
	$rollbn = isset($_POST[$rollbn][$i]) ? $_POST[$rollbn][$i] : '';
	$rollbf = isset($_POST[$rollbf][$i]) ? $_POST[$rollbf][$i] : '';
	$rollde = isset($_POST[$rollfr][$i]) ? $_POST[$rollfr][$i] : '';
	$rollfr = isset($_POST[$rollde][$i]) ? $_POST[$rollde][$i] : '';
	
	if(!empty($rollbn)) {
		$tmp_name = $_FILES["img"]["tmp_name"][$i];
		$name = $_FILES["img"]["name"][$i];
		$url = '/home/wpcandyc/public_html/bram/images/rollovers/'.$name;
		move_uploaded_file($tmp_name, $url);
		
		$addqry = "INSERT INTO rollovers SET productpage = $pid, url = '$name', bn = '$rollbn', bf = '$rollbf', fr = '$rollfr', de = '$rollde'";
		if(!mysql_query($addqry)) {
			die(mysql_error());
		}
	}
}

Iemand een idee?

Incinnerator

Legacy Member
doe eens een print_r van de $_POST array
dan zie je de structuur en kunde uw programmacode correct opbouwen

opt eerste zicht moet de naam van die 4 textvelden hetzelfde zijn met [] erachter, nu heten ze alle 4 anders en hebben ze ook []

greetz
Incinnerator

Bram

Legacy Member
ik merk net dat ik $_POST[$rollbn]heb staan ipv $_POST['rollbn']. Stomme verstrooidheid.
Opgelost dus, merci voor het snelle antwoord desondanks!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan