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 :

Formulaire upload marche pas, page blanche


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Formulaire upload marche pas, page blanche
    Bonjour,
    Voilà que depuis quelques jours je n'arrive pas à régler mon problème avec un formulaire d'upload. Je veux donc pouvoir uploader une photo... le problème c'est qu'en local tout fonctionne impeccable, mais en ligne rien ne se passe et je n'ai même pas de message d'erreur qui s'affiche! j'ai modifié les chmod en 777, le upload_max_filesize est à 24M.
    Voici mes codes:
    le formulaire:

    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
     
    form method="POST" action="poster_photo_traitement.php" enctype="multipart/form-data">
     
    <fieldset>
    <legend>Envoi de photos (format png, gif, jpg, jpeg uniquement)</legend>
    <!-- champs d'envoi de fichier, de type file -->
    <p><label for="photo">Photo :</label><br><input type="file" name="photo" style="background-color:#32331D; color:#ffffff"/></p>
    <p><label for="comment">Commentaire :</label><br><input type="text" name="comment" style="background-color:#32331D; color:#ffffff"/></p>
     
     
    <!-- bouton d'envoi -->
    <p><input type="submit" name="envoi" value="Ajouter" /></p>
     
    <input type="hidden" name="id_gallery" value="<?php echo $_GET['gallery']; ?>" />
    </legend>
    </fieldset>
    </form>

    et le fichier "poster_photo_traitement.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
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
    <?php
     
     
    $comment = $_POST['comment'];
    $idalb = $_POST['id_gallery'];
     
    if( isset($_POST['photo']) ) // si formulaire soumis
    {
     
     
    $dossier = './photos/';
    $fichier = basename($_FILES['photo']['name']);
     
    $taille = filesize($_FILES['photo']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPEG', '.JPG');
    $extension = strrchr($_FILES['photo']['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(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
         //On formate le nom du fichier ici...
         $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
         if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     
     
         {
    	  mysql_query("INSERT INTO photos (id_album, photo, commentaire, date)  VALUES('$idalb','$dossier$fichier','$comment', NOW());"); // et on termine en envoyant les données dans la base mysql
              echo 'Photo ajoutée avec succès ! <a href="./poster_photos1.php">Cliquez ici pour en ajouter d\'autres</a> 
    			';
         }
         else //Sinon (la fonction renvoie FALSE).
         {
              echo 'Echec de l\'upload !';
         }
    }
    else
    {
         echo $erreur;
    }
     
     
        echo "Le fichier a bien été uploadé";
    }
     
    ?>

    Quelqu'un aurait déjà rencontré ce problème?
    merci d'avance à ceux qui pourront m'aider!

  2. #2
    Invité
    Invité(e)
    Par défaut


    La page blanche signifie généralement que sur ton environnement, les messages d'erreurs PHP ne s'affichent pas. Vérifie le log d'erreurs PHP ou si tu n'en as pas, active l'affichage des erreurs avec un petit ini_set('display_errors', TRUE).

    Sinon n'hésite pas à faire des var_dump de $_FILES et des traces d'exécution, car là, je ne vois pas ton erreur.

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Pense également à définir un error reporting qui te permettra de voir ton erreur. En mode DEV, je te recommande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    error_reporting(-1);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    ini_set('log_errors', 1);
    ini_set('ignore_repeated_errors', 1);
    ini_set('error_prepend_string', 'Produit [version]'); // juste histoire de s'y retrouver
    ini_set('error_log', '/tmp/logs/produit/error.log');
    Personnellement je n'aime pas tellement programmer avec les erreurs affichées alors je les redirige vers un log que je lis automatiquement avec tailf sur mon écran d'appoint.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merc, je vais essayer!
    Ce qui est vraiment bizarre c'est qu'en local ça marche parfaitement, c'est dès que j'ai mis en ligne que qqch bloque! je me suis demandée si c'était un paramètre lié à l'hébergeur? je suis chez Oxito...

Discussions similaires

  1. [Upload] upload marche pas sur hosting
    Par popcorn dans le forum Langage
    Réponses: 3
    Dernier message: 01/12/2008, 19h19
  2. [CS3] Validation formulaire ne marche pas..help
    Par pgu64 dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 15/04/2008, 16h04
  3. Mise à jour d'un sous-formulaire ne marche pas
    Par bastaji dans le forum VBA Access
    Réponses: 22
    Dernier message: 11/12/2007, 17h24
  4. Requête modif dans formulaire ne marche pas
    Par crissud dans le forum IHM
    Réponses: 2
    Dernier message: 12/04/2007, 11h31
  5. [debutant] formulaire qui marche pas
    Par pimousse_cerise dans le forum JSF
    Réponses: 10
    Dernier message: 21/12/2006, 16h52

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