IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Initialisation variable dans formulaire


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Par défaut Initialisation variable dans formulaire
    Bonsoir à tous,

    J'ai un formulaire qui est traité par lui même via PHP_SELF.
    Au sein de ce formulaire j'ai un champ file.

    Je souhaite donc initialiser mes variables associées au champ file.
    Car là, dans l'état actuel j'ai le message : Vous devez uploader un fichier de type png, gif, jpg, jpeg en haut de mon formulaire. En effet celui ci n'a pas encore été soumis.

    J'ai le code de traitement sur la même page car je souhaite que le formulaire garde les valeurs des champs après la soumission.

    Donc comment puis je bien initialiser mes variables de façon à ne plus avoir ce message ?

    Voici le code de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    <?php
    require('../conf/bdd.php');
     
    if(isset($_POST['titre']))  $titre=$_POST['titre']; else $titre="";
     
     
    $dossier = './../images/img_medias/';
    $affiche = basename($_FILES['fichier']['name']);
    $taille_maxi = 500000;
    $taille = filesize($_FILES['fichier']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['fichier']['name'], '.'); 
    //Début des vérifications de sécurité...
     
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
         $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg';
    }
    if($taille>$taille_maxi)
    {
         $erreur = 'Le fichier est trop volumineux';
    }
    if(!isset($erreur)) //Si pas d'erreur on envoie
    {
         //formate nom fichier
         $affiche = strtr($affiche, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $affiche = preg_replace('/([^.a-z0-9]+)/i', '-', $affiche);
         if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $affiche)) //Si True, OK
         {
          $sql = "INSERT INTO media SET nom_media = '$titre', image_media = '$affiche'";
    	mysql_query($sql) or die(mysql_error());
    	mysql_close();
    	echo "L'enregistrement du média ".$titre." s'est bien effectué";
         }
         else //Sinon FALSE.
         {
              echo 'Echec de l\'upload !';
         }
    }
    else
    {
         echo $erreur;
    }
     
    ?>
     
    <form name="ajoutMedia" id="ajoutMedia" method="post" action="<?= $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data">
    	<fieldset>
            <p>
            <label for="type">Titre</label>
            <input type="text" id="titre" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'] ?>" />
            </p>
            <p>
            <label for="type">Affiche/Jaquette</label>
            <input type="file" id="fichier" name="fichier" />
            <img src="<?php if(isset($affiche)) echo $dossier.$affiche ?>" />
            </p>
     
            <p>
            <input name="Envoyer" type="submit" value="Envoyer">
            </p>
    	</fieldset>
    </form>
    En vous remerciant

  2. #2
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonsoir,
    Essaye d'ajouter un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_POST['fichier'])) {
    Ton code PHP
    }

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ne procède aux contrôles du fichier que si isset($_FILES)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Par défaut
    Mon code ne s'exécute plus du coup.
    Car dans ma base je n'ai pas d'enregistrement. Et pas de message d'erreur...

    j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    if(isset($_POST['fichier'])) {
    $dossier = './../images/img_medias/';
    $affiche = basename($_FILES['fichier']['name']);
    $taille_maxi = 500000;
    $taille = filesize($_FILES['fichier']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['fichier']['name'], '.'); 
    //Début des vérifications de sécurité...
     
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
         $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg';
    }
    if($taille>$taille_maxi)
    {
         $erreur = 'Le fichier est trop volumineux';
    }
    if(!isset($erreur)) //Si pas d'erreur on envoie
    {
         //formate nom fichier
         $affiche = strtr($affiche, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $affiche = preg_replace('/([^.a-z0-9]+)/i', '-', $affiche);
         if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $affiche)) //Si True, OK
         {
          $sql = "INSERT INTO media SET nom_media = '$titre', image_media = '$affiche'";
    	mysql_query($sql) or die(mysql_error());
    	mysql_close();
    	echo "L'enregistrement du média ".$titre." s'est bien effectué";
         }
         else //Sinon FALSE.
         {
              echo 'Echec de l\'upload !';
         }
    }
    else
    {
         echo $erreur;
    }
     
     
    }//fin accolade if(isset($_POST['fichier'])) {

  5. #5
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Oui, autant pour moi c'est plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_FILES['fichier']))

Discussions similaires

  1. Assignation variable dans formulaire
    Par G-nome dans le forum Langage
    Réponses: 13
    Dernier message: 06/10/2009, 21h50
  2. Réponses: 1
    Dernier message: 02/06/2008, 00h29
  3. problème variable dans formulaire
    Par calitom dans le forum Langage
    Réponses: 2
    Dernier message: 20/07/2006, 15h12
  4. problème de variable dans formulaire
    Par chienlou dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 06h53
  5. Réponses: 3
    Dernier message: 09/02/2006, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo