Bonjour ,

je met actuellement le systéme d'upload pour mon site et je rencontre un soucis , je ne comprends pas pourquoi car j'ai déjà fais cela mais il y'a un petit moment

En fait , lorsque j'utilise $_FILES , j'ai un message d'erreur avec index undefined et si je mets $_POST je n'aie aucune erreur sa récupére le nom du fichier

Je vous mets le code ci-dessous car je ne sais pas du tout pourquoi sa me fait cela

Le formulaire:

  <form method="post" action="<?= $action ?>" class="ajout_modif">
    <div class="form-group form1" id="form">
      <label for="usr">Titre:</label>
      <input type="text" class="form-control" name="titre" value="<?=$titre ?>">
    </div>
    <div class="form-group" id="form">
      <label for="usr">Description:</label>
      <textarea type="text" class="form-control height" name="description"><?= $description ?></textarea>
    </div>
     <div class="form-group" id="form">
      <label for="usr">Date de parution:</label>
      <input type="date" class="form-control" name="dateDebut" value ="<?= $dateDebut ?>">
    </div>
    <div class="form-group" id="form">
      <label for="usr">Date Fin Parution:</label>
      <input type="date" class="form-control" name="dateFin" value="<?= $dateFin ?>">
    </div>
    <div class="form-group" id="form">
     <?php include 'fichier.php';?>

    </div>
    <div class="form-group" id="form">
      <label for="usr">Contenu:</label>
      <textarea type="text" class="form-control" name="contenu"><?= $contenu ?></textarea>
    </div>
    <div id="button-radio">
      <?php include 'radio_button.php'; ?>
    </div>
    <div id="envoyer-annuler">
      <button type="submit" class="btn btn-default"><?= $submit ?></button>
      <button type="submit" class="btn btn-default" id="annuler"><a href="menu_admin.php">Annuler</a></button>
    </div>
</form>

L'execution de la forme , y'a pas grand chose car j'effectué les test pour voir si je récupérer tout parfaitement .

?php    

        $titre = $_POST['titre'];
        $dateDebut = $_POST['dateDebut'];
        $description = $_POST['description'];
        $dateFin = $_POST['dateFin'];
        $contenu = $_POST['contenu'];
        $affiche = $_POST['optradio'];
        $urlPhoto = $_POST['urlPhoto'];

        $fichier = basename($_FILES['urlPhoto']['name']);
        var_dump($_POST);

        //echo($fichier);

        require('connect.php');
        /*SYSTEME UPLOAD */

?>

je rajoute le fichier le fichier.php quo concerne le bouton pour chercher les fichiers

<?php
    if($mode=="ajout"){
?>
        <label for="usr">Fichier:</label>
        <input type="file" class="btn btn-default btn-file" name="urlPhoto" value="<?= $url ?>">
<?php
    }else{
?>

        <label for="urlancien">Url Actuel</label>
        <input type="text" name="urlPhotoAncienne" class="form-control" value="<?= $url ?>"/>
        <label for="urlnouvelle">Si nouvelle Photo</label>
        <input type="file" class="btn btn-default btn-file" name="urlPhoto" >
<?php
    }
?>

et voici ce que j'ai

http://image.noelshack.com/fichiers/2015/32/1439129571-capture-d-ecran-2015-08-09-a-16-12-30.png

la ligne 11 correspond à la variable $fichier lors de l'execution

5 réponses


romainfan
Réponse acceptée

Bonjour,
Tout d'abord, il te manque : enctype="multipart/form-data"

seb2913
Auteur

D'accord je vais le rajouter mais c'est pas ça qui fais que j'ai ça car je me rapelle l'avoir dejà fais sans avoir ce que tu me dis et tout marcher

seb2913
Auteur

Je vais réécrire le code car j'ai fais une petite forme à l'arrache et sa a marché ...

seb2913
Auteur

Ok bon déjà je devais avoir un soucis dans mon code et effectivement romain aprés quelques test sans le enctype sa ne fonctionne pas .

C'est spécifique à Bootstrap ou quoi ? car je n'aie rencontré soucis auparavant en faisant mes formulaires sans bootstrap sans le enctype et sinon sa signifie quoi exactement enctype="multipart/form-data" ??

seb2913
Auteur

Ok merci sudo , je trouvais pas d'ou sa venait le soucis car auparavant je n'avais utilisé enctype="multipart/form-data" pour des formulaires avec fichiers comme ça j'oublirai pas le mettre la prochaine fois.

merci à vous deux pour vos réponses