Alors voilà, je travaille en ce moment sur un formulaire php avec base de données MySQL. L'internaute peut envoyer ses données et uploader 3 photos sur le serveur s'il le souhaite (tout en envoyant l'url de l'image dans la base de données). Je suis arrivée à faire tout ça, mais là où ça bug, c'est si l'internaute choisi de ne pas envoyer d'image (laissant donc le champ vide).
Voilà le script utilisé pour traiter l'upload :
if(isset($_FILES['tof1'])) {
// params
$rand = rand (1000, 9999);
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 500000;
$dest_dossier = 'gall/';
// vérifications
if( !in_array( substr(strrchr($_FILES['tof1']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Photo 1 : Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['tof1']['tmp_name'])
and filesize($_FILES['tof1']['tmp_name']) > $taille_max)
{
$erreur = 'Photo 1 : Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['tof1']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['tof1']['tmp_name'], $dest_dossier . $rand . $dest_fichier);
$photo1= $rand.$dest_fichier;
}
}
Dans le formulaire le champs concerné est :
Code : Tout sélectionner
<b>Photo 1 :</b> <input type="file" name="tof1" id="tof1" size="45" />if (empty($_POST['tof1'])) {echo ("pas de photo 1");}
else {
[i]le code ci-dessus[/i]
}
Voilà, je précise que je débute vraiment en php (je sais que je m'attaque à du lourd). J'avance à coup de "tests", en utilisant des scripts trouvés par-ci par-là. Mais ce que je voudrais ne doit pas être si compliqué à faire si ? Cela fait des heures que je tourne en rond avec ça. Et ce que je trouve sur internet ne s'applique pas à mon code. Peut-être qu'il existe une solution évidente à vos yeux mais que je n'arrive pas à trouver à force d'y réfléchir. Donc si vous avez quelque chose à me proposez, n'hésitez pas. Merci beaucoup !