7935 sujets

Développement web côté serveur, CMS

Bonjour, dans un formulaire j'ai un input de type file qui me permet à un utilisateur de changer son avatar ce petit formulaire envoie la photo sur le server et modifie la base de données du client mais quand la personne ne choisit pas de photo j'aimerai qu'il ne puisse pas valider le formulaire
Comment faire ?
<input name="doc" type="file" accept="image/jpeg" size="40" />	

Merci
Hello,
avec un required="required", le truc fonctionne chez moi (Chrome récent) :


<form method="post" action="traitement.php">
<input name="doc" type="file" accept="image/jpeg" size="40" required="required" />
<input type="submit" value="envoyer">
</form>


sauf si le navigateur est une vieillerie, je pense,
dans ce cas il faut traiter la question dans le script "traitement.php"
Salut,

farang a écrit :
Hello,
avec un required="required", le truc fonctionne chez moi (Chrome récent) :


&lt;form method="post" action="traitement.php"&gt;
&lt;input name="doc" type="file" accept="image/jpeg" size="40" required="required" /&gt;
&lt;input type="submit" value="envoyer"&gt;
&lt;/form&gt;


sauf si le navigateur est une vieillerie, je pense,
dans ce cas il faut traiter la question dans le script "traitement.php"



Oui mais non !

Ex : Je suis un emmerdeur de première et j'ouvre ma console. J'édite le noeud (suppression de l'attribut required) et je soumets le formulaire.... Les vieux navigateurs comme tu l'as précisé ne prennent pas en charge cette spec de l'html5.

Bref, une vérification de formulaire se fait essentiellement avec le serveur de toute manière ! Ensuite on rajoute une couche front pour libérer de la charge, c'est tout.

Donc, ça revient à écrire ce genre de choses (php natif) :

if(isset($_FILES) && empty($_FILES['doc']['name']))
//etc.


@farang : Au passage, pour envoyer des fichiers via un formulaire, on déclare comme ceci :

<form enctype="multipart/form-data" method="post" action="traitement.php">

Modifié par niuxe (23 Jun 2015 - 18:47)
très juste,
tous mes formulaires d'upload ont bien le enctype,
j'ai répondu un peu vite ... !
merci de m'avoir corrigé