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 :

Perte des Superglobales avec la classe Class_Upload


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Perte des Superglobales avec la classe Class_Upload
    Bonjour, suite a une première discussion sur ce site on m'a conseillé d'utiliser pour l'upload de fichier sur un serveur la classe:Classe_Upload

    Avec le code suivant :
    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
     
    require('Classe_Upload.php');
    require('adresses_dossiers.php');
     
    $civilite = $_POST['civilite'];	
    $nom = $_POST['nom'];	
    $prenom = $_POST['prenom'];		
    $mailclient = $_POST['mail'];	
    $tel = $_POST['tel'];	
    $objet = $_POST['objet'];	
    $info = $_POST['info'];
    $nomFichier= $_FILES['cv']['name'];
     
    $up = new Telechargement('attachedFiles','valider','cv');
    $extensions = array('pdf','txt');
     
    $up->Set_Extensions_accepte($extensions);
     
    $up->Upload('reload');
     
    $nomDestination= dirname(__FILE__)."/attachedFiles/".$nomFichier;
     
    envoiMail($civilite,$nom,$prenom,$mailclient,$tel,$objet,$info,$nomDestination,$nomFichier);
    Je récupère les données d'un formulaire simple, j'upload mon fichier sur mon serveur et j'envoie un mail avec les données.

    Le bémol, le fichier est bien présent sur mon serveur mais ma fonction envoiMail s'exécute avec des strings vide.
    Avec xDebug en local, je contrôle mes superglobales et elles sont bonnes jusqu'à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $up->Set_Extensions_accepte($extensions);
    qui foire alors que sur le serveur ça fonctionne(un problème qui n'en est pas un en fait).

    Autre test, si je supprime l'upload
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $extensions = array('pdf','txt');
     
    $up->Set_Extensions_accepte($extensions);
     
    $up->Upload('reload');
    envoiMail fonctionne bien (sauf la pièce jointe, évidemment).

    Si quelqu'un a une idée ça serait cool, je reste dispo pour des questions merci =)

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux être plus précis que "foire" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Le traitement s’arrête, et j'obtiens le message d'erreur suivant.
    Nom : Sans titre.png
Affichages : 87
Taille : 21,7 Ko

    Si je ne l'ai pas précisé c'est parce que je ne pense pas que le problème vienne de là, il n'est existant qu'en local.
    Sur le serveur le traitement continue et la fonction envoiMail est exécutée et le mail est reçu, bien que là où il devrait y avoir les infos de mon $_POST j'ai des chaînes vides.

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Cette erreur concerne xdebug plus que PHP.

    Pour ton problème, $up->Upload('reload'); doit être à la fin. Cette méthode, recharge la page.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Ah merci beaucoup en effet si ça recharge ça complique tout.
    j'avais pas été fouillé dans la classe, en fin de compte il est possible de réaliser l'upload avec $up->Upload(); pour empecher le rechargement

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par Oo-Pirro Voir le message
    j'avais pas été fouillé dans la classe...
    L'argument "reload" aurait dû te mettre la puce à l'oreille
    Sinon sans même parler de fouiller dans la classe, c'était indiqué dans le mode d'emploi. Comme dirait l'autre, quand tout à échoué, lisez le mode d'emploi

    Pour ton code, si tu veux envoyer ton message à la condition qu'un fichier soit téléchargé tu peux faire :
    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
    require('Classe_Upload.php');
    // require('adresses_dossiers.php'); tu n'as pas besoin de cette ligne, c'était pour le fonctionnement des exemples
     
    // On doit absolument garder l'initialisation de la classe en dehors d'une condition sur $_POST pour que la classe puisse gérer les dépassements des configurations serveur (ex fichier trop lourd)
    $up = new Telechargement('attachedFiles','valider','cv');
     
    $extensions = array('pdf','txt');
    $up->Set_Extensions_accepte($extensions);
     
     
    if (isset($_POST['nom']))
    {
        $civilite = $_POST['civilite'];	
        $nom = $_POST['nom'];	
        $prenom = $_POST['prenom'];		
        $mailclient = $_POST['mail'];	
        $tel = $_POST['tel'];	
        $objet = $_POST['objet'];	
        $info = $_POST['info'];
        $nomFichier= $_FILES['cv']['name'];
     
        $up->Upload();
     
        $tab_result = $up->Get_Tab_upload();// Tableau des resultats
        $nb_fich = count($tab_result['resultat']);// L'index "resultat" contient le tableau des fichiers uploadés
     
        if($nb_fich > 0)
        {
           $nomDestination= dirname(__FILE__)."/attachedFiles/".$nomFichier;
           envoiMail($civilite,$nom,$prenom,$mailclient,$tel,$objet,$info,$nomDestination,$nomFichier);
        }
     
        // Après la fin du code utile on recharge la page pour éviter un multi-upload en cas de rafraichissement de la page
        $up->Get_Reload_page();
    }

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

Discussions similaires

  1. [9.0] Perte des données avec update
    Par nassim_nassim21 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 14/04/2014, 21h24
  2. Manipulation des dates avec la classe Calendar
    Par mesken dans le forum Langage
    Réponses: 14
    Dernier message: 18/02/2011, 19h23
  3. Gestion des piles avec les classe
    Par souad21 dans le forum C++
    Réponses: 1
    Dernier message: 24/10/2007, 06h10
  4. [Eclipse] [VE] Créer des menus avec les classes SWT de VE
    Par jbcorens dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 30/08/2005, 12h25

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