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 :

[Dates] Header 304 Last-Modified


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Dates] Header 304 Last-Modified
    Bonjour,

    J'ai un problème avec mon header Last-Modified: j'essaye de faire renvoyer un header 304 pour les champs non modifiés de ma base de données Mysql. Je retrouve la date de modification par cette requète:

    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
    $row_date['date'] = gmdate();
    $colname_date = "1";
    if (isset($_SERVER['date'])) {
      $colname_date = (get_magic_quotes_gpc()) ? $_SERVER['date'] : addslashes($_SERVER['date']);
    }
    mysql_select_db($database_recettes, $recettes);
    $query_date = sprintf("SELECT `date` FROM recettes WHERE receptID = %s", $colname_date);
    $date = mysql_query($query_date, $recettes) or die(mysql_error());
    $row_date = mysql_fetch_assoc($date);
    $totalRows_date = mysql_num_rows($date);
     
    $last_modified = gmdate('D, d M Y H:i:s', $row_date['date']) . ' GMT';
    // did the browser send an if-modified-since request?
    if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
      // parse header
      $if_modified_since = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
     
      if ($if_modified_since == $last_modified) {
        // the browser's cache is still up to date
        header('HTTP/1.0 304 Not Modified');
     
     
        exit;
      }
    }
     
    header('Last-Modified: ' . $last_modified);
    La requète fonctionne, puisque la date exate est renvoyée. J'ai mis cette date sur les pages php du site. Exemple -http://www.foodstyling.be/detailfr.php?recordID=1 (juste en dessous du titre pour vérifier. Mais mon header me donne une date surréaliste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    HTTP/1.1 200 OK
    Date: Sat, 30 Sep 2006 13:16:11 GMT
    Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux) PHP/
    4.3.11
    X-Powered-By: PHP/4.3.11
    Last-Modified: Tue, 19 Jan 2038 03:14:07 GMT
    Connection: close
    Content-Type: text/html
    Et je ne trouve pas l'erreur.
    Merci d'avance pour votre aide

    Foodstyling

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 130
    Points
    9 130
    Par défaut
    gmdate('D, d M Y H:i:s', $row_date['date'])
    gmtdate attend en parametre une date unix
    $row_date['date'] est une date SQL
    le paquet de bit genre 2006-09-30 est interprété comme un entier par gmtdate

    A+JYT

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour la réponse.
    Mais je n'ai pas tout compris. Je fais comment pour remplacer les parametres mysql en unix?
    Je fais SELECT UNIX_TIMESTAMP(date) AS date FROM.... et cela devrait marcher?

Discussions similaires

  1. Last Modified Date et fichiers EML
    Par frantzgac dans le forum Windows 7
    Réponses: 7
    Dernier message: 16/03/2014, 19h56
  2. Lightning 0.9: bug Date header empty
    Par dj_benz dans le forum Thunderbird
    Réponses: 1
    Dernier message: 05/11/2009, 20h57
  3. [.htaccess] Deflate & Last-Modified
    Par jorisvh dans le forum Apache
    Réponses: 1
    Dernier message: 01/09/2009, 01h17
  4. Réponses: 3
    Dernier message: 28/01/2008, 23h18
  5. [HTTP] Cache-control et Last-Modified ou ETag
    Par Hibou57 dans le forum Développement
    Réponses: 1
    Dernier message: 28/06/2007, 01h56

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