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 :

Probleme formulaire enctype


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Probleme formulaire enctype
    Bonjour à tous,

    Le but : Uploader un fichier à partir d'un formulaire contenant :

    Des input type text pour enregistrer dans une base mysql.
    1 input file pour mon fichier à uploader

    Le probleme :

    Si je mets type enctype mutipart dans le formulaire pour l'upload, je n'ai plus les variables $_POST
    Si je ne mets pas enctype multipart dans le formulaire, j'ai mes variables $_POST mais je ne peux plus uploader !

    Alors quoi faire ?

    Si quelqu'un a une idée ?

    D'avance merci.

    Bonne journée à tous

    MG

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Points : 98
    Points
    98
    Par défaut
    C'est fort étrange !

    As-tu essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form enctype="multipart/form-data" ...>

  3. #3
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Les informations sur les fichiers uploadés à partir d'un formulaire sont stockées dans $_FILES et non dans $_POST.
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci pour vos réponses
    Voila le code html du formulaire :
    Code html : 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
    <form method="post" action="<?php crea_campagne(); ?>" name="formulaire" id="formulaire" enctype="multipart/form-data">
      <table width="1008" align="center" class="formulaire">
        <tr>
          <td align="right" valign="top"><input type="hidden" name="MAX_FILE_SIZE" value="100000" />
          Nom de la Campagne :</td>
          <td align="left" valign="top"><input name="campagne" type="text" size="50" maxlength="50" /></td>
        </tr>
        <tr>
          <td align="right" valign="top">Fichier destinataires :</td>
          <td align="left" valign="top"><input name="fich" type="file" size="100" maxlength="100" /></td>
        </tr>
        <tr>
          <td align="right" valign="top">Fichier HTML :</td>
          <td align="left" valign="top"><input name="html" type="file" id="html" size="100" maxlength="100" /></td>
        </tr>
        <tr>
        <td width="163" height="64" align="right" valign="top">
        <p><br />
          <br />
        </p></td>
        <td width="833" align="left" valign="top"><p class="formulaire">
          	<input type="button" value="Quitter" onclick="javascript:document.location.href='admin.php'" />
          	<input type="submit" value="Créer la campagne" />
          	<input name="ok" type="hidden" value="<? echo $test; ?>" size="6" maxlength="5" />
        </p></td>
    	</tr>
    </table>
    </form>
    avec ce code, l'upload fonctionne trés bien, mais je n'ai rien dans mes variables $fichier_dest et $fich_html ($_POST['fich'] et $_POST['html'])

    Si je remplace la ligne :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="<?php crea_campagne(); ?>" name="formulaire" id="formulaire" enctype="multipart/form-data">
    Par :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="<?php crea_campagne(); ?>" name="formulaire" id="formulaire" >

    là je retrouve mes variables mais l'upload ne fonctionne plus.

    Le code PHP :
    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
    function crea_campagne()
    {
    	session_start();
    	include 'ctrl-sess.php';
    	$id="";
    	$campagne=$_POST['campagne'];
    	$fichier_dest = $_POST['fich'];
    	$fich_html= $_POST['html'];
    	$ok = $_POST['ok'];
     
    	$fichier_dest = substr(strrchr($fichier_dest, "\\"), 1);
    	$fich_html = substr(strrchr($fich_html, "\\"), 1);
     
    	if ($_SERVER['REQUEST_METHOD'] == 'POST')			  
    	{
    		include 'db_conn.php';
    		connect();
    		$sql = "INSERT into campagnes (campagne,compteur,dest,html) VALUES ('$campagne','0','$fichier_dest','$fich_html')";
    		if (!mysql_query($sql))
    			{
    				die('Error: ' . mysql_error());
    			}
    		echo "<script language='javascript'>";echo "window.alert(\"Campagne enregistrée.\");";echo"</script>";
    		echo "<script language='javascript'>";echo "window.alert(\"Upload du fichier .\");";echo"</script>";
     
    		if(isset($_FILES['fich']))
    		{ 
    			 $dossier = 'upload/';
    			 $fichier = basename($_FILES['fich']['name']);
    			 if(move_uploaded_file($_FILES['fich']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    			 {
    				  //echo 'Upload effectué avec succès !';
    				  echo "<script language='javascript'>";echo "window.alert(\"Upload effectué avec succès !\");";echo"</script>";
    			 }
    			 else
    			 {
    				  echo 'Echec de l\'upload !';
    			 }
    		}
    		else
    		{
    			echo "<script language='javascript'>";echo "window.alert(\"Pas fichier !\");";echo"</script>";
    		}
    	}
    }
    C'est a se tirer des balles !!!
    Pour corser le tout, j'ai bien dans les 2 cas, la valeur de $campagne par le $_POST['campagne'] !!!

    Votre avis svp ?

    D'avance merci
    MG

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut

    Je serais curieux de voir ce que cela donne dans le navigateur comme code généré... Notamment au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action="<?php crea_campagne(); ?>"
    dans la mesure où cette fonction n'affiche rien qui n'ai sa place dans le action d'un formulaire...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    "mais je n'ai rien dans mes variables $fichier_dest et $fich_html ($_POST['fich'] et $_POST['html'])"...Je t'invite à lire les réponses données :
    Les informations sur les fichiers uploadés à partir d'un formulaire sont stockées dans $_FILES et non dans $_POST.
    Donc les informations concernant tes fichiers se retrouveront dans $_FILES['fich'] et $_FILES['html'].

    Ps : je rejoins Bovino sur le fait que crea_campagne() n'a rien à faire dans l'attribut action de ton form.
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour et merci à tous
    Désolé pour le retard, mais j'etais sur un autre projet.
    Ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action="<?php crea_campagne(); ?>"
    pour appeller ma fonction PHP d'upload. What else ?
    Cela me permet dans une unique page php d'avoir mon formulaire html ET ma fonction PHP d'upload.

    Autrement, avec votre aide, j'ai trouvé.
    Ce qui m'interesse pour ma base mysql, c'est simplement "le nom" des fichiers uploadés.
    il faut simplement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$fich_html = basename($_FILES['html']['name']);
    	$fichier_dest = basename($_FILES['fich']['name']);
    Et voila, le tour est joué !
    Il ne me reste plus quà effectuer tous les contrôles et ça, c'est pas gagné
    Encore MERCI à tous.

    MG

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme formulaire et un champ hidden
    Par amigauss dans le forum Langage
    Réponses: 8
    Dernier message: 26/01/2006, 17h50
  2. probleme formulaire
    Par serapha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/12/2005, 11h12
  3. probleme formulaire
    Par serapha dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 03/12/2005, 20h19
  4. [MySQL] Probleme Formulaire [Dropdown]
    Par lemagicien dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/11/2005, 10h27
  5. Problemes formulaires web
    Par mdma64 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/08/2005, 10h09

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