Message d'erreur avec phpupload

Eléphant du PHP | 96 Messages

16 sept. 2006, 20:42

Bonsoir,
Je viens d'installer un script d'upload pour transférer des images sur un site.
Lorsque j'envoie une image, voici le message d'erreur:
La page XML ne peut pas être affichée
Impossible d'afficher l'entrée XML en utilisant la feuille de style . Corrigez l'erreur, puis cliquez sur le bouton Actualiser ou réessayez ultérieurement.


--------------------------------------------------------------------------------

Le document XML doit contenir un élément de niveau supérieur. Erreur de traitement de la ressource http://www.estcadeaux.co...
Pourtant l'image est bien envoyée dans le fichier.
Voici les 2 fichiers d'upload

Code : Tout sélectionner

<?php if ( !defined('BASE_DIR') ) { define('BASE_DIR', $_SERVER['DOCUMENT_ROOT'].'/'); } echo '<?xml version="1.0" encoding="iso-8859-1"?>'."\n"; // variable affichant un message de confirmation ou d'erreur $strMsg = ''; // Détection d'un clique sur le bouton 'cmdupload' // si le bouton a été cliqué et que sa valeur n'est pas vide if ( isset($_POST['cmdupload']) && !empty($_POST['cmdupload']) ) { // exécution de la fonction de chargement avec le nom du champ input if ( fileUpload('fichier') ) $strMsg = '<p>Envoie avec succès du fichier </p>'; else $strMsg = '<p>Erreur lors de l\'envoi du fichier</p>'; } // fonction de téléchargement function fileUpload($pstrInputName) { $blnRetour = false; // regarder si la chaine n'est pas vide et que le fichier est bien // charger sur le serveur (dans un répertoire temporaire) if ( !empty($pstrInputName) && is_uploaded_file($_FILES[$pstrInputName]['tmp_name']) ) { /* Nom temporaire : $_FILES[$pstrInputName]['tmp_name']; Nom du fichier : $_FILES[$pstrInputName]['name']; Taille du fichier : $_FILES[$pstrInputName]['size']; Type Mime du fichier : $_FILES[$pstrInputName]['type']; */ // strRepertoire représente le dossier ou vous voulez mettre le fichier // par exemple, mettre 'images/' pour le mettre dans le répertoire images $strRepertoire = 'support/admin/imports/'; $strNom = $_FILES[$pstrInputName]['name']; // construction du nom du fichier $strNomFichier = BASE_DIR.$strRepertoire.$strNom; // Déplacement du fichier $blnRetour = move_uploaded_file($_FILES[$pstrInputName]['tmp_name'], $strNomFichier); } return $blnRetour; } ?>
Et le code de la page de téléchargement

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Téléchargement d'un fichier </title> <meta name="auteur" content="YanSanMo" /> <meta name="source" content="http://membres.lycos.fr/yansanmo/contenu/?id=41" /> </head> <body> <h1>Téléchargement d'un fichier</h1> <!-- FORMULAIRE DE TELECHARGEMENT --> <!-- Obligatoire: Encryption du formulaire: multipart/form-data Champ input de type: FILE Champ hidden avec la propriété name à MAX_FILE_SIZE et la valeur exprimée en octets --> <form enctype="multipart/form-data" method="post" action="upload.php"> Fichier: <input type="file" name="fichier" size="35" /> <input type="hidden" name="MAX_FILE_SIZE" value="1000000" /> <input type="submit" value="Envoyer" name="cmdupload" /> <input type="reset" value="Vider" /> </form> <!-- INSTRUCTION SUR L'USAGE DU FORMULAIRE --> <p>S.V.P. cliquez une <strong>seule fois</strong> et attendez le message de confirmation.</p> <!-- Affichage du message d'erreur ou de confirmation --> <?=$strMsg ?> </body> </html>
Je souhaiterais qu'il retourne sur la page de téléchargement.
Comment puis je modifier cela?
Merci d'avance
webide[/quote]

Mammouth du PHP | 19672 Messages

16 sept. 2006, 21:38

Primo, tu es pas obligé de poster deux fois le même message, j,ai viré l'autre, veille à ce que ça arrive pas à nouveau. Relaxe, ça sert à rien de s'exciter sur le bouton d'envoi de message.

Pour ton problème, j'ai une question à mon tour : qu'est-ce que c'est que cette balise XML en début de code de traitement ?? Elle a rien à faire là, déménage là en haut de l'en-tête HTML juste avant la balise <!DOCTYPE..> et là ça devrait mieux passer. Autrement, si ton script génère une erreur, il est possible que la syntaxe du message ne soit pas conforme aux règles XML et ton navigateur te jette.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 96 Messages

17 sept. 2006, 09:55

J'ais supprimé cette ligne de code

Code : Tout sélectionner

echo '<?xml version="1.0" encoding="iso-8859-1"?>'."\n";
Donc maintenant quand le fichier est envoyé j'obtiens une page blanche(le fichier est envoyé dans un dossier d'une galerie photo)
Je souhaites juste que lorsque le fichier est transféré que je retourne sur la page des téléchargements

Mammouth du PHP | 19672 Messages

17 sept. 2006, 09:59

Regarde ton fichier upload.php : d'abord, la fonction devrait se trouver avant le code qui l'appelle. Ensuite, to traitement ne redirige nulle part mais crée le message de résultat. Ensuite, rien... pas de header pour rediriger quelque part, ni d'affichage de quoique ce soit. Donc tu as une page blanche.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 96 Messages

17 sept. 2006, 10:06

Ok merci, je me penche la dessus de suite.