Ik heb weer een vraagje voor jullie. Ik ben namelijk bezig met een script om foto's te uploaden. Alleen het probleem is dat hij niets door schijnt te geven vanuit het formulier.
Als ik controleer of een veld wel is ingevuld doet die het niet. Oftewel hij controleert gewoon elk veld. Het is een beetje vaag, maar ik snap het momenteel zelf ook niet.
een voorbeeld van verwerking:
<?php
//bestanden verwerken
if(empty($_FILES['bestand'.$i]['name']))
{
//bestand bestaat niet
$error = "Bestand".$i." Is niet ingevoerd";
}
?>
Ik snap niet helemaal wat je bedoelt. De gegevens komen gewoon via post binnen. Maar het is een file, dus kan niet $_POST['bestand'.$i]['naam'] opgeven toch?? of wel?
ik wil in eerste intantie controleren of er een bestand is ingevuld die ze willen uploaden. En daarna ga ik verder met het volgende deel en kijk ik of het foto wel voldoet aan de eisen (juiste pathinfo) etc. En dan uploaden. Snap wel wat je bedoelt nu.
Heb het dus ook werkend gemaakt...probleem is alleen nu nog steeds dat hij (als je wel wat invult) dezelfde fout geeft als eerst:
Er ontstond een error bij foto 1 Bestand heeft niet het juiste type
Wat ik doe het bestand heeft altijd niet het goede type, weet alleen niet wat ik verkeerd doe:
<?php
$bestand = $_FILES['bestand'.$i]['name'];
$pathinfo = pathinfo("$bestand");
$ext = $pathinfo["extension"];
elseif($ext != "jpg" AND
$ext != "jpeg" AND
$ext != "png" AND
$ext != "bmp")
{
//extensie voldoet niet
$error = "Bestand heeft niet het juiste type";
$error .= "Het type is $bestand";
}
?>
Hij zou dus dan ook als foutmelding de bestandsnaam aan het eind moeten weergeven. Dat doet ie ook niet. Het blijft leeg...dus $_FILES is nog steeds leeg.
Zet de toegestane extensies in een array, en controleer daarna of de extensie in die array voorkomt, dat is een veel nettere oplossing:
<?php
$toegestaan = array('jpg', 'jpeg', 'bmp', 'png');
if(!in_array($ext, $toegestaan))
{
echo 'Bestand heeft niet de juiste extensie!';
}
?>
@Arjan: Naar het mime-type? ken ik niet. Ik zal zo ff kijken of ik er hier iets over kan vinden. Is dat een groot voordeel ten opzichte van pathinfo?
@Blanche: Het werkt nog steeds niet. Volgens mij zit het niet in de foutafhandeling, maar in het feit dat ook al doe je iets uploaden, $_FILES leeg is. Want om te kijken van hoe en wat...laat ik als error te voorschijn komen:
Bestand heeft niet het juiste type. Het type is $_FILES['bestand'.$i]['name']
Alleen dan is de output: Het type is
Dus zou de variabele leeg zijn, alleen ik snap niet hoe dat kan.