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 :

Upload et PHP_SELF


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Par défaut Upload et PHP_SELF
    Bonjour.
    Je galère avec le script ci-dessous.
    Si je mets exactement le même code dans un fichier enregistre.php et que bien sur je modifie la ligne <form... en conséquence, l'upload se passe bien.
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="delibere" action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
    , impossible d'uploader le fichier et $_FILES['document']['error'] = 0, le fichier temporaire apparaît bien dans le dossier temporaire du serveur, mais je ne le retrouve pas ou il devrait être.
    Par contre si je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="delibere" action="enregistre.php" enctype="multipart/form-data" method="post">
    j'arrive bien à uploader le fichier.

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    <?php
    (isset($_POST['day'])) ? $day = $_POST['day'] : $day = date("d");
    (isset($_POST['month'])) ? $month = $_POST['month'] : $month = date("m");
    (isset($_POST['year'])) ? $year = $_POST['year'] : $year = date("Y");
    (isset($_POST['document'])) ? $file = $_POST['document'] : $file = "";
    (isset($_POST['elm1'])) ? $elm1 = $_POST['elm1'] : $elm1 = "";
    (isset($bouton)) ? $bouton = "hidden" : $bouton = "visible";
    $txt_erreur = "shh";
    $erreur = false;
    // Contrôle du formulaire et envoie
    // Contrôle du fichier
    // Code identique dans enregistre.php 
    if (isset($_FILES['document']))  {
    $log = fopen(date("YmdHis").".txt","w");
    	$dossier = "";
    fwrite($log,"dossier : ".$dossier."\r\n");
    	$fichier = basename($_FILES['document']['name']);
    fwrite($log,"fichier : ".$fichier."\r\n");
    	$taille_maxi = 1000000;
    	$taille = filesize($_FILES['document']['tmp_name']);
    fwrite($log,"taille : ".$taille."\r\n");
    	$extensions = array(".pdf",".jpg");
    fwrite($log,"extension : ".$extensions."\r\n");
    	$extension = strrchr($_FILES['document']['name'], '.');
    	//Début des vérifications de sécurité...
    	if(!in_array($extension, $extensions)) { //Si l'extension n'est pas dans le tableau
    		$txt_erreur .= 'Vous devez uploader un document de type pdf<br>';
    fwrite($log,$txt_erreur."\r\n");
    	}
    	if ($taille > $taille_maxi) {
    		$txt_erreur .= 'Le document est trop gros...<br>';
    fwrite($log,$txt_erreur."\r\n");
    	}
    	if(!isset($txt_erreur)) { //S'il n'y a pas d'erreur, on upload
    		//On formate le nom du fichier ici...
    //		$fichier = "Conseil du ".$_POST['day']."-".$_POST['month']."-".$_POST['year'].".pdf";
         $fichier = $year."-".$month."-".$day."-CM";
     
    		if(move_uploaded_file($_FILES['document']['tmp_name'], $dossier.$fichier)) {
    			echo '<div style=\"color:green;\">Upload effectué avec succès !</div>';
    			$txt_erreur .= "Document téléchargé";
    		}
    			else  {
    			echo 'Echec de l\'upload !<br>';
    			$txt_erreur .= "Erreur de chargement";
    		}
    	}
    	print_r($_FILES['document']);
    fwrite($log,"tmp_name : ".$_FILES['document']['tmp_name']."\r\n");
    fwrite($log,$txt_erreur."\r\n");
    fwrite($log,"Code erreur : ".$_FILES['document']['error']."\r\n");
    fclose($log);
    }
    // Fin du code identique dans enregistre.php
    ?>
     
    <html>
    <head>
    <title>Téléchargement</title>
    <link rel="stylesheet" type="text/css" href="../admin.css">
    <link rel="stylesheet" type="text/css" href="../formulaire.css">
     
    </head>
    <body>
    <h1 style="titre">Saisie des délibérés du conseil municipal</h1>
    <?php
    if (isset($txt_erreur) && $txt_erreur !="") {
    	echo $txt_erreur;
    }
    ?>
    <form name="delibere" action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
     <p class="double">
    <label for="nom" class="">Date du conseil <span class="exposant">*</span> : </label>
    <?php
    require("../date.php");
    ?>
    </p>
    <p class="double">
    <label for="file" class="">Emplacement du document <span class="exposant">*</span> : </label>
     <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
    <input type="file" name="document">
    </p>
    <p class="simple">
    Description sommaire (optionnel)
    <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"><?php echo $elm1; ?></textarea>
    </p>
    <p class="simple">
    <input type="submit" value="Envoyer" name="bouton" style="margin-right:30px; width:130px; visibility:<?php echo $bouton; ?>">
    <input type="reset" value="Effacer" style="margin-right:30px; width:130px;">
    <input type="button" value="Retour au choix" style="color:#ff12cc; width:130px;" onclick="location.href='../retour.php'">
    </p>
    </form>
    </body>
    </html>
    Et voici un fichier log.txt

    dossier :
    fichier : liste_marches.pdf
    taille : 262442
    extension : Array
    tmp_name : J:\EasyPHP5\tmp\php264.tmp
    texte erreur :
    Code erreur : 0

    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut

    et précise ta question.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Par défaut Merci de votre remarque.
    Cordialement

  4. #4
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    Avec PHP_SELF, impossible. $_FILE['document']['error'] = 0,
    ça je comprends pas ce que ça veut dire...

  5. #5
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    		if(move_uploaded_file($_FILES['document']['tmp_name'], $dossier.$fichier)) {
    			echo '<div style=\"color:green;\">Upload effectué avec succès !</div>';
    			$txt_erreur .= 'Document téléchargé fichier temporaire déplacé vers "'.$dossier.$fichier.'"'."\r\n");
     
    		}
    			else  {
    			echo 'Echec de l\'upload !<br>';
    			$txt_erreur .= "Erreur d'enregistrement";
    		}

    de plus


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $txt_erreur = "shh";
    // blablabla
    if(!isset($txt_erreur)) {}
    ne pas oublier

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Par défaut
    Désolé pour le résolu, mais ça fonctionne toujours pas alors que le même script dans un autre fichier marche!
    Cdt

Discussions similaires

  1. Probleme d'upload
    Par FreshVic dans le forum Struts 1
    Réponses: 10
    Dernier message: 22/05/2006, 17h15
  2. [Struts][Oracle]Upload fichier word dans une base
    Par Maximil ian dans le forum Struts 1
    Réponses: 7
    Dernier message: 10/02/2004, 15h52
  3. Réponses: 10
    Dernier message: 18/11/2003, 18h01
  4. [servlet]upload en java
    Par dash dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 31/10/2003, 11h13
  5. url d'une page asp ou upload avec get
    Par taupin dans le forum ASP
    Réponses: 18
    Dernier message: 22/08/2003, 14h25

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