Page 1 sur 1

Vérification formulaire par Isset dans une seule page

Posté : 09 mai 2019, 12:36
par zlepoizon
Bonjour,
Ci-joint une partie d'un formulaire qui propose un téléchargement d'image qui fonctionne, mais J'ai un petit soucis de variable non assignée avant mon premier upload.

$NomDuFichier = $_FILES['mon_fichier']['name'];//**
$taille_fichier = filesize($_FILES['mon_fichier']['tmp_name']);//**

J'aimerais proposer une seule page PHP et appliquer un check d'envoi de formulaire pour éviter d'avoir ce message avant mon premier upload :

Undefined index: mon_fichier in ... ex3.php on line 27

J'aimerais utiliser un isset pour checker l'envoi du formulaire mais ne s'applique pas, le code ne fonctionne plus du tout.
Une idée ?
Merci

echo '
<body>
<h1>Hébergeur d\'images</h1>
<form method="POST" action="?" enctype="multipart/form-data"><br/>
<input type="file" name="mon_fichier"><br/>
<button type="submit">Envoyer</button>
</form>
</body>
';

if(isset($_POST["submit"]))
 { //

    $repertoireDestination = "uploads/"   ;   
    $NomDuFichier = $_FILES['mon_fichier']['name'];//**

    $taille_max    = 10000000;
    $taille_fichier = filesize($_FILES['mon_fichier']['tmp_name']);//**
    
    if ($taille_fichier > $taille_max)

    {
      echo "Vous avez dépassé la taille de fichier autorisée";
    }

    else if ($NomDuFichier !='')

    {
        
        if ( is_uploaded_file($_FILES["mon_fichier"]["tmp_name"])) 

        {
          
          if (file_exists ($repertoireDestination.$NomDuFichier))

          {
            echo 'Le fichier '.$NomDuFichier.' existe déjà<br/>';
          }

          else
          
          { 
            if (!rename($_FILES["mon_fichier"]["tmp_name"],
                $repertoireDestination.$NomDuFichier))
            {   
              echo "Le déplacement du fichier temporaire a échoué";
            }
          }
        } 
        else {
          echo "Le fichier ". $NomDuFichier ." n'a pas été uploadé";
        }
 }
 }

 
?>


Re: Vérification formulaire par Isset dans une seule page

Posté : 09 mai 2019, 14:13
par Spols
utilise un vrai bouton submit plutot qu'un bouton.

<input type="submit" name="submit" value="Envoyer"/>

dans tous les cas test avec un var_dump($_POST); avant ton if pour savoir ce qu'il y a et ce que tu peux tester.

Re: Vérification formulaire par Isset dans une seule page

Posté : 09 mai 2019, 14:15
par zlepoizon
Ok je teste ça, et je donne mon retour ;)
utilise un vrai bouton submit plutot qu'un bouton.

<input type="submit" name="submit" value="Envoyer"/>

dans tous les cas test avec un var_dump($_POST); avant ton if pour savoir ce qu'il y a et ce que tu peux tester.

Re: Vérification formulaire par Isset dans une seule page

Posté : 09 mai 2019, 19:57
par zlepoizon
Problème réglé. Mon cache était pas bon.
Pour le bouton, on déconseille pour un formulaire de l'utiliser.
https://developer.mozilla.org/fr/docs/W ... put/button
Merci

Re: Vérification formulaire par Isset dans une seule page

Posté : 09 mai 2019, 20:03
par or 1
non
"est la meilleure méthode pour créer des boutons hors d'un formulaire"
là, c'est un usage dans un formulaire.

Re: Vérification formulaire par Isset dans une seule page

Posté : 09 mai 2019, 20:05
par zlepoizon
Oui ! Merci de ta réponse.

non
"est la meilleure méthode pour créer des boutons hors d'un formulaire"
là, c'est un usage dans un formulaire.