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 :

DateTime qui provoque une erreur 500 (incompréhensible) [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 43
    Points
    43
    Par défaut DateTime qui provoque une erreur 500 (incompréhensible)
    Salut à tous,

    Je vous présente le truc :

    J'ai un fichier PHP qui est appelé via une requête AJAX. Ce fichier inclus un fichier contenant diverses fonctions dont celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function processTime($time) {
      return $time;
    }
    C'est une fonction d'intégration d'un module que j'ai acheté. Dans ma base de donnée MySQL $time est au format DATETIME par défaut. Le module, lui attend un timestamp UNIX.

    J'ai donc modifié la fonction en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function processTime($time) {
    	$date = new DateTime($time);
    	$timestamp = $date->getTimestamp();
    	return $timestamp;
    }
    Et là quand le fichier est appelé j'ai une erreur serveur de type 500. C'est bien la seule modification que j'ai fait.

    J'ai testé comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function processTime($time) {
      return strtotime($time);
    }
    Et là pas d'erreur 500 ça fonctionne parfaitement.

    Donc en gros je n'ai pas de problème mais j'aimerais bien comprendre ce qui peut provoquer cette erreur.

    Je n'ai fait aucune autre modif et les 2 fonctions renvoient bien le même timestamp dans mes tests.

    Si quelqu'un a une idée je suis preneur.

  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
    Une erreur 500 est ce qu'affiche un navigateur ou renvoit un serveur quand il est configuré pour ne pas afficher les erreurs.
    Assure toi donc de bien logger tes erreurs PHP, d'avoir activé tous les types d'erreurs et consulte ton log.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 43
    Points
    43
    Par défaut
    Justement c'est bizarre à ce niveau.

    Mon error reporting est :

    error_reporting = E_ALL & ~E_DEPRECATED

    Avec la deuxième fonction j'avais un warning qui était bien logué (j'avais oublié de set la timezone). Avec la première fonction qui provoque l'erreur 500 je n'ai rien du tout dans le log, aucune entrée quand j'appelle la page et que la fonction s’exécute.

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Il faut également regarder la variable
    Et bien sur redémarrer le serveur apache
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    au début de ton script tu mets ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ini_set('display_errors',1);
    ini_set('display_startup_errors',1);
    error_reporting(-1);
    Et bon debug

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 43
    Points
    43
    Par défaut
    Merci à tous.

    Le script modifiait le chemin du fichier error.log au runtime beaucoup plus loin dans le code (je regrette l'achat de ce module, il est vraiment super mal codé), c'est pour ça que j'avais rien dans mon fichier log principal.

    Par contre je ne pouvais pas afficher les erreurs, c'est un site en prod. Hors de question de mettre error display à on, même de façon temporaire.

    Au final c'était une exception levée par la classe DateTime que j'avais pas attrapée qui provoquait l'erreur.

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

Discussions similaires

  1. Mon script provoque une erreur et je ne comprends pas ce qui cloche !
    Par philou8 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/06/2011, 11h46
  2. Réponses: 5
    Dernier message: 24/06/2009, 10h58
  3. Réponses: 2
    Dernier message: 18/03/2008, 13h58
  4. Select Case provoque une erreur
    Par defluc dans le forum SQL
    Réponses: 6
    Dernier message: 14/08/2005, 23h59
  5. Requete SELECT qui cause une erreur SQL
    Par ahage4x4 dans le forum ASP
    Réponses: 23
    Dernier message: 10/06/2005, 14h46

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