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

PHP & Base de données Discussion :

Regler l'ecart d'heure de mon serveur


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut Regler l'ecart d'heure de mon serveur
    Bonsoir je voudrais savoir comment puis-je faire pour régler l’écart de 2 heure entre mon hébergeur et mes visiteur.
    Y a t'il un moyen de le faire pour tous les script qui seront installer sur mon serveur?
    Si non j'utilise un compteur de visiteur qui, a partir de 22heure m'affiche 0 visite or mes visiteur son en GMT et lui En GMT+2.
    je vous envoi le code du compteur au cas ou quelqu'un pourra m'aider a modifier quelque code pour que l'heure soit conforme.
    voici le code de mon compteur.

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    <?php
    /***********************************
    * Récupération de la configuration *
    ***********************************/
     
    // Chemin absolu
    if ( !defined('ABSPATH') )
    	define('ABSPATH', dirname(__FILE__) . '/');
     
    // Existence du fichier config.inc.php
    if (!file_exists(ABSPATH . 'config.inc.php'))
    {
    	echo '<strong>Le fichier config.inc.php manque à l\'appel !</strong>';
    	exit();
    }
    else
    {
    	require_once(ABSPATH . 'config.inc.php');
     
    	// Connexion BDD
    	$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    	if (!$dbc)
    	{
    		trigger_error('Connexion à la BDD impossible : ' . mysqli_connect_error() );
    		exit();
    	}
     
    	// Récupération des données témoins
    	$qry = "SELECT	DATE_FORMAT(c_lastvisit, '%Y-%m-%d') AS c_lastvisit,
    					c_total
    			FROM $db_table
    			WHERE c_iphost = 'temoin'";
    	$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
    	$data = mysqli_fetch_array($res, MYSQLI_ASSOC);
     
    	// Nombre de visites total
    	$total = $data['c_total'];
     
    	// Dernier jour traité
    	$saved_date = $data['c_lastvisit'];
     
    	// Aujourd'hui et maintenant
    	$today = date('Y-m-d');
    	$now = time();
     
    	// Si changement de jour
    	if ( ($today != $saved_date) )
    	{
    		// Le nombre de visites de chaque visiteur de la base est remis à 0
    		$qry = "UPDATE $db_table SET c_total = 0 WHERE c_iphost != 'temoin'";
    		$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
     
    		// La date stockée est mise à jour à la date d'aujourd'hui
    		$qry = "UPDATE $db_table SET c_lastvisit = CURDATE() WHERE c_iphost = 'temoin'";
    		$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
     
    		// On vide les lignes obsolètes
    		$exceed = $now - ($keep*60*60);
    		$qry = "DELETE FROM $db_table WHERE c_iphost != 'temoin' AND UNIX_TIMESTAMP(c_lastvisit) < $exceed";
    		$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
    	}
     
     
    	/**********************************
    	* Fonction de vérification des IP *
    	**********************************/
     
    	// Fonction qui vérifie si l'IP est exclue du comptage ou pas
    	function ipcheck($ip_to_match, $ip_array)
    	{
    		if (is_array($ip_array))
    		{
    			foreach ($ip_array as $ip)
    			{
    				if (strpos($ip_to_match, $ip)===0)
    				return true;
    			}
    		}
    		return false;
    	}
     
     
    	/*************************
    	* Traitement des visites *
    	*************************/
     
    	$ip = $_SERVER['REMOTE_ADDR'];
     
    	// Si l'IP n'est pas dans la liste de celles à exclure
    	if ( ipcheck($ip, $exclude) != true)
    	{
    		// On compte le nombre d'entrées correspondant à l'IP de notre visiteur
    		$res = @mysqli_query($dbc,"SELECT COUNT(*) FROM $db_table WHERE c_ip = '$ip'") or die(mysqli_error($dbc));
    		$row = mysqli_fetch_row($res);
    		$match = $row[0];
     
    		// Si aucune IP ne correspond, le visiteur est nouveau dans la base de données
    		if ($match == 0)
    		{
    			$iphost = gethostbyaddr($ip);
    			// Alors on ajoute son heure de connexion, son IP, et on initialise son nombre de visites à 1
    			$qry = "INSERT INTO $db_table (c_firstvisit, c_lastvisit, c_total, c_ip, c_iphost) VALUES (NOW(), NOW(), 1, '$ip', '$iphost')";
    			$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
    			// Et on incrémente le nombre de visiteurs
    			$qry = "UPDATE $db_table SET c_total = c_total+1 WHERE c_iphost = 'temoin'";
    			$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
    		}
    		/*
    		Si il est déjà dans la base, alors :
    		- soit la période est dépassée, alors le visiteur est considéré comme nouveau
    		- soit il est déjà venu dans la même période d'unicité d'un visiteur
    		*/
    		else
    		{
    			// On récupère toutes les données qui lui correspondent
    			$qry = "SELECT UNIX_TIMESTAMP(c_firstvisit) AS c_firstvisit FROM $db_table WHERE c_ip = '$ip'";
    			$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
    			$data = mysqli_fetch_array($res, MYSQLI_ASSOC);
     
    			// On récupère la date de ses première et dernière visites
    			$firstvisit = $data['c_firstvisit'];
     
    			// Si la période est dépassée
    			if ( ($now - $firstvisit) > ($unique*60*60) )
    			{
    				// Incrémentation du compteur total
    				$qry = "UPDATE $db_table SET c_total = c_total+1 WHERE c_iphost = 'temoin'";
    				$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
    				// On compte le visiteur comme nouveau, même si c'est dans la même journée
    				$qry = "UPDATE $db_table SET c_firstvisit = NOW(), c_lastvisit = NOW(), c_total = c_total+1 WHERE c_ip = '$ip'";
    				$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
    			}
    			// Sinon on est dans la même période d'unicité
    			else
    			{
    				// On met uniquement à jour l'heure de son dernier passage
    				$qry = "UPDATE $db_table SET c_lastvisit = NOW() WHERE c_ip = '$ip'";
    				$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
    			}
    		}
    	}
     
     
    	/***********************
    	* Stockage des données *
    	***********************/
     
    	// Nombre de visites total
    	$qry = "SELECT c_total FROM $db_table WHERE c_iphost = 'temoin'";
    	$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
    	$alltime = mysqli_fetch_array($res, MYSQLI_ASSOC);
    		$c_alltime = $alltime['c_total'];
     
    	// Nombres de visiteurs quotidiens
    	$qry = "SELECT SUM(c_total) AS c_total FROM $db_table WHERE c_iphost != 'temoin'";
    	$res = @mysqli_query($dbc,$qry) or die(mysqli_error($dbc));
    	$today = mysqli_fetch_array($res, MYSQLI_ASSOC);
    		$c_today = $today['c_total'];
     
    	// Nombre de visiteurs en ligne
    	$lastmin = $now - ($interval*60);
    	$res = @mysqli_query($dbc,"SELECT COUNT(*) FROM $db_table WHERE (c_iphost != 'temoin') AND (UNIX_TIMESTAMP(c_lastvisit) >= $lastmin)") or die(mysqli_error($dbc));
    	$row = mysqli_fetch_row($res);
    		$c_online = $row[0];
     
    	// On ferme la connexion à la base de données
    	mysqli_free_result($res);
    	mysqli_close($dbc);
    }
    ?>

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Bonsoir je voudrais savoir comment puis-je faire pour régler l’écart de 2 heure entre mon hébergeur et mes visiteur.
    La 1ère question qui me viens à l'esprit, c'est comment sais tu (à l'avance) qu'il y a 2 heures de décalage entre l'heure de référence de ton serveur (l'hébergeur) et ceux de tes internautes ?

    Théoriquement tes internautes peuvent se situer au 4 coins de cette planète : Aux US, en France, en Asie, etc ... donc avec des décalages horaires très différents.
    Ceci peut être très compliqué à gérer, du moins j'imagine.

    De plus, et quand je regarde ton code, les opérations qui sont faites, je ne vois rien qui serait lié aux internautes, rien en rapport à leur fuseau horaire.


    Théoriquement, une page visitée c'est avant tout un contenu (un document) qui est demandé sur ton serveur, donc (théoriquement toujours) l'heure de référence serait bien plus liée au serveur que ceux des internautes.


    A coté de ça, admettons que tu veuille malgré tout changer l'heure de référence de ton serveur en rajoutant 2 heures de plus, ça peu se faire.
    (Attention, au cas où, en France il y a tantôt 2 heures tantôt 3 heures selon l'été et l'hivers.)

    Le 1er point à noter que Php et MySQL sont indépendant à ce niveau, donc il faudrait le définir des 2 cotés pour les synchroniser.
    En Php ceci peu se définir de plusieurs manières, à la base c'est dans le php.ini : date.timezone
    Par défaut c'est généralement UTC, 0 heure de décalage (c'est peut être pour ça que tu remarques ces 2 heures de décalages).
    Dans le php.ini pour exemple -> date.timezone = UTC

    Coté MySQL il faut lancer une requête (à faire sur l'ensemble du site) pour modifier le time_zone avec le nombre d'heures de décalage qu'il y a avec l'heure du serveur.
    La requête SQL : (si par défaut l'heure de référence est UTC)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @@time_zone = '+02:00'


    Tout cela sauf erreur.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Le decalage de 2 heures, je le sais parce je suis au Burkina Faso et mon hebergeur est en France. pour mes internautes, 99% sont au burkina car c'est pas un site qui s'adresse au monde entier. Apparemment avec mon hebergeur je peut pas modifier le fichier php ini il me par de serveur mutualisé et il me dis que ca affectera tous les autres clients. Mais es que en changeant ca dans mysql seulement es ce possible que mon compteur et mes article prenne le temp UTC. Pour mes articles et tous le contenu j'utilise SPIP et la aussi je suis obligé de cacher l'heure de publication de mes articles a cause du decalage.
    Merci a vous qui avez pensez a me repondre.

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Faudrait approfondir la question car théoriquement le date.timezone peut être modifié/adapté de plusieurs manières, donc pas seulement au niveau du php.ini

    On peu définir ça aussi dans un fichier .htaccess, de même en Php avec la fonction ini_set().

    Exemple en Php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('date.timezone', 'Europe/London');
    Donc même en mutualisé tu dois avoir moyen de le faire.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Ok je vais donc approfondir ma question auprès de mon hébergeur qui est (e-clicking.com) mais en attendant je vais faire la solution sql en local pour voir si sa vas affecter mes articles. Merci à vous je reviens vous mettre au courant de la suite d'ici là.

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Au passage, fais un phpinfo() dans une page pour savoir quel est le fuseau horaire par défaut.
    Ou juste faire un ini_get() sur date.timezone

    Comme je l'ai précisé, par défaut aussi bien Php et MySQL devrait être synchro, donc utiliser le même.
    Là encore, par défaut c'est l'UTC.
    Mais ceci reste à confirmer de ton coté.

    Malgré tout il est possible d'en savoir plus coté MySQL, suffit de lancer la requête suivante :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT @@global.time_zone AS global_tz, @@session.time_zone AS session_tz
    Il peut avoir plusieurs types de valeurs.
    Comme (théoriquement) c'est l'heure du système, les 2 valeurs devraient retourner : SYSTEM

  7. #7
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Bonsoir mon hebergeur me conseil le fichier htaccess
    Mais comme je n'y connai rien si possible de me donner le code entier a copier dans une fichier htaccess de spip qui existe déjà dna smon repertoire avec ce code
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    ##############################################################
    # Fichier .htaccess                               SPIP v 2.0 #
    #                                                            #
    # Permet de controler les URLs et la version de php utilisee #
    # Compatible avec les URLs 'html', 'propres' et 'propres2'   #
    # Permet aussi d'effectuer la transition de .PHP 3 vers .PHP #
    #                                                            #
    # Pour utiliser ce fichier renommez-le '.htaccess' dans le   #
    # repertoire racine du site, en veillant a ne pas ecraser un #
    # .htaccess personnalise qui s'y trouverait deja             #
    #                                                            #
    # Attention certains hebergeurs desactivent tout ou partie   #
    # des fonctions du fichier .htaccess ; celui-ci est donc     #
    # indicatif - en cas de difficulte voir sur les forums SPIP  #
    ##############################################################
     
    RewriteEngine On
     
    ################ CONFIGURATION ######################
     
    ### Configuration sous-repertoire
    # Chez la plupart des hebergeurs il faut indiquer "RewriteBase /"
    # sinon modifiez cette ligne
     
    RewriteBase /
     
     
    # SPIP version 'php' - si vous avez d'anciennes adresses en '.php[3]',
    # supprimez le '#' sur les lignes qui suivent pour rediriger les acces
    # errones vers le .php correspondant
     
    #RewriteCond %{REQUEST_FILENAME} -f
    #RewriteRule ^(.+)\.php[3]$ $1.php [QSA,L]
     
    # Fin version
    ###
     
     
    ################ REGLAGES PERSONNALISES ######################
    # Inscrivez ci-dessous vos reglages supplementaires
     
     
     
     
    ################ GESTIONS DES URLS SPIP #######################
     
    # Deux pseudo-actions a present evacuees
    # N'y at-il pas moyen de REMPLACER un nom dans la QueryString ?
    RewriteCond %{QUERY_STRING} action=rss
    RewriteRule spip.php	spip.php?page=rss [QSA,L]
    RewriteCond %{QUERY_STRING} action=ical
    RewriteRule spip.php	spip.php?page=ical_prive [QSA,L]
     
    ###
    # Si le fichier ou repertoire demande existe
    # ignorer toutes les regles qui suivent
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule "." - [skip=100]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule "." - [skip=100]
    #
    ###
     
     
    ###
    # Compatibilite avec les URLS "html" (pour transition sympa)
    # voir fichier ecrire/urls/html.php
    RewriteRule ^rubrique([0-9]+)(\.html)?$	spip.php?page=rubrique&id_rubrique=$1 [QSA,L]
    RewriteRule ^article([0-9]+)(\.html)?$	spip.php?page=article&id_article=$1 [QSA,L]
    RewriteRule ^breve([0-9]+)(\.html)?$	spip.php?page=breve&id_breve=$1 [QSA,L]
    RewriteRule ^mot([0-9]+)(\.html)?$		spip.php?page=mot&id_mot=$1 [QSA,L]
    RewriteRule ^auteur([0-9]+)(\.html)?$	spip.php?page=auteur&id_auteur=$1 [QSA,L]
    RewriteRule ^site([0-9]+)(\.html)?$	spip.php?page=site&id_syndic=$1 [QSA,L]
    # Compatibilite avec les anciennes URLS appelant directement des fichiers php
    RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$	spip.php?page=$1 [QSA,L]
    RewriteRule ^resume.php[3]?	spip.php?page=sommaire [QSA,L]
    RewriteRule ^page.php[3]?	spip.php [QSA,L]
    RewriteRule ^spip_cal\.php3?$	spip.php?page=ical_prive [QSA,L]
    RewriteRule ^spip_rss\.php3?$	spip.php?page=rss [QSA,L]
     
     
    # Fin compatibilite
    ###
     
    ###
    # ping http://site/1234 => article1234
     
    RewriteRule ^([1-9][0-9]*)$     spip.php?action=redirect&type=article&status=301&id=$1 [QSA,L]
     
    #
    ###
     
     
    ###
    # URLs "propres", "propres2", "libres", "arbo"
     
    RewriteRule ^[^\.]+(\.html)?$		spip.php [QSA,E=url_propre:$0,L]
     
    # Fin URLs "propres" et "propres2"
    ###
     
    ###
    # Divers
     
    # bloquer les acces aux repertoires .svn/ (SPIP, plugins, squelettes...)
    RewriteRule ^(.*/)?\.svn/ - [F]
     
    ###
    # Fichiers "standards" (si absents de la racine)
    #
    RewriteRule ^robots[.]txt$      spip.php?page=robots.txt [QSA,L]
    RewriteRule ^favicon[.]ico$      spip.php?page=favicon.ico [QSA,L]
    RewriteRule ^sitemap[.]xml$      spip.php?page=sitemap.xml [QSA,L]
    ##
     
    # expirer les images (pour contourner gros bug MSIE sur le cache)
    # note : a decommenter si vous voulez tester
    #<IfModule mod_expires.c>
    # ExpiresActive on
    # ExpiresByType image/gif A3600
    # ExpiresByType image/jpeg A3600
    # ExpiresByType image/png A3600
    #</IfModule>
     
    #################################
    # gestion des erreurs 404
    # voir http://www.spip.net/fr_article3226.html
    # Pour que le serveur http renvoie les erreurs 404 vers SPIP, supprimer le '#'
     
    # ErrorDocument 404 /spip.php?page=404
     
    #
    ###
    Merci

  8. #8
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Le time_zone c'est Europe/Berlin j'ai mis le phpinfo() dans ce lien que vous pouvez voir http://islam.bf/index4.php

  9. #9
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Comment définir ça dans le .htaccess n'est pas insurmontable car le Net regorge d'informations tout de même.

    Théoriquement en rajoutant ceci devrait faire l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php_value date.timezone "Europe/Paris"
    Faudra juste modifier le nom du fuseau horaire selon où tu te situe.


    Ne voyant pas le Burkina Faso parmi la liste des différents fuseaux horaires, je te mets les liens de la doc Php :
    -> Le sommaire (Liste des Fuseaux Horaires Supportés)
    -> Pour l'Afrique
    A toi de voir lequel serait le plus proche, le plus adapté.

  10. #10
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    C'est ce que j'ai fait premièrement et ça ma donné cette erreur quant je tente d'acceder a mon site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Internal Server Error
     
    The server encountered an internal error or misconfiguration and was unable to complete your request.
     
    Please contact the server administrator, webmaster@islam.bf and inform them of the time the error occurred, and anything you might have done that may have caused the error.
     
    More information about this error may be available in the server error log.
     
    Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
    J'ai ajouter le code après le code qui se trouve déjà comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #################################
    # gestion des erreurs 404
    # voir http://www.spip.net/fr_article3226.html
    # Pour que le serveur http renvoie les erreurs 404 vers SPIP, supprimer le '#'
     
    # ErrorDocument 404 /spip.php?page=404
     
    #
    ###
    php_value date.timezone "Africa/Ouagadougou"
    après je l'ai fait rentré a l’intérieur # et c'est toujours la même erreur.

  11. #11
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Ce code est pourtant fonctionnel de mon coté.

    Il est vrai que certains hébergeurs imposent leur propre syntaxe sur certain point au niveau du .htaccess.
    Est-ce que c'est le cas ?
    Je ne pourrais pas te le dire, de mon coté j'ai toujours eu qu'un seul hébergeur et le même, et il y a rien de particulier (syntaxe normale).


    La dernière solution qui est tout aussi fonctionnelle (qui donc pourrait être une solution définitive) c'est de le faire coté Php avec un ini_set() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('date.timezone', 'Africa/Ouagadougou');
    Cependant il faudra que ça soit fait sur l'ensemble du projet/site Web.

    Apparemment tu utilises le Cms SPIP, malheureusement je ne le connais pas (juste de nom).
    Mais comme tous les Cms, ils ont au moins un fichier type config (genre config.php) commun/inclus à l'ensemble du projet.

    Et bien essai de rajouter ce code dans ce fichier config.
    Personnellement je vois aucune raison que ceci ne fonctionne pas.
    Rien t'empêche aussi de voir du coté de la communauté de SPIP pour voir quel serait le meilleur fichier pour le faire s'il y en a plusieurs.
    (forum, blog, réseau social, etc ...)


    Rien ne dit aussi que SPIP défini cette directive avec une valeur par défaut (genre UTC).
    Si c'est le cas par exemple, le définir au niveau du .htaccess n'avancerait rien.
    Dans ce cas il faudrait le faire au niveau de SPIP.
    Pure hypothèse cela dit.
    (c'est le cas dans certains CMS en tout cas).


    Rien n'empêche de voir aussid u coté de ton hébergeur la syntaxe à utiliser pour le faire dans le .htaccess

  12. #12
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Ok!
    Avec le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('date.timezone', 'Africa/Ouagadougou');
    ça marche pour mon CMS maintenant les dates son respectées
    Mai il reste le conpteur de visite qui ne semble pas aller avec ce code or il est inséré un peut au milieu du code de mon cms
    (Le code de mon comteur est au tout debut du poste.)
    J'ai inclu le meme code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('date.timezone', 'Africa/Ouagadougou');
    croyant que ça allais marché mais c'est pas le cas. quand j'actualise ma page et je repart dans ma base de donnée je trouve que la dernière visite est toujours avec 2heure d’écart. ce qui n'est plus le cas sur les article de mon CMS

  13. #13
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    croyant que ça allais marché mais c'est pas le cas. quand j'actualise ma page et je repart dans ma base de donnée je trouve que la dernière visite est toujours avec 2heure d’écart. ce qui n'est plus le cas sur les article de mon CMS
    Ceci devrait être lié au fait que Php et MySQL sont indépendant, c'est ce que j'expliquais au début.

    Par défaut les 2 doivent être synchro.
    Mais si on change le fuseau horaire coté Php, ça ne changera pas celui coté MySQL, du coup on est plus synchro.

    Est-ce que tu l'a modifié coté MySQL ?


    Puis ne pas perdre de vu que tout ce qui a été effectué (enregistré) avant de changer le fuseau horaire coté MySQL restent les mêmes.
    MySQL ne les modifiera pas.
    Faut pas se faire piéger sur ce point.

    Si on veut que tout les anciens contenus dans la Bdd avant changement du nouveau fuseau horaire tiennent compte de ce changement il n'y a pas d'autre choix que de tous les modifier.
    Inutile de dire qu'il faut savoir ce qu'on fait.
    (faire un backup est théoriquement indispensable).

    Une fois les modifs effectués, ce sera à partir de cet instant où tout sera (ou devrait) être synchro.
    Les nouveaux enregistrements seront synchros par rapport aux anciens (ou inversement).


    Je ne sais si c'est cela que tu remarques.

  14. #14
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Dans la requette SQL que vous m'avez donnez c'est +2heure etant donné que c'est moi qui a 2 de moins es ce que je ne devrai pas relancer la requette avec -2 sur le code ou bien dois-je faire -4 etant donné que j'avais déjà lancer avec les +2

  15. #15
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Dans la requette SQL que vous m'avez donnez c'est +2heure etant donné que c'est moi qui a 2 de moins
    Le +2 que j'ai mis c'était pour exemple, pour la requête SQL, c'était à toi de mettre le nombre d'heure correspondant, soit -2.

    es ce que je ne devrai pas relancer la requette avec -2 sur le code ou bien dois-je faire -4 etant donné que j'avais déjà lancer avec les +2
    Je ne saurait pas te dire vraiment ce qu'il serait à faire, tout dépend ce qui a été effectué.

    La logique veut qu'on ne modifie pas ces données sans en être certain de ce qu'on fait, dans ces cas là on le fait sur une table fictive bien souvent chez soit et non sur un site en production, tout ça pour au bout savoir ce qu'il faut faire.
    C'est après ça qu'on effectue les opérations sur le site en production.

    Mais encore, faire un backup (sauvegarde) de sa Bdd en production avant de faire des modifs en masse est en général effectué, histoire de pouvoir revenir comme ça l'était à l'origine en cas d'erreur.


    Donc ça dépend ce qui a été fait.
    Si des mises à jours ont été effectuées avec ces +2 heures incorrectes, il faudrait théoriquement modifier par -4 et appliquer les mêmes modifs.
    Normalement les dates devraient être correctes (-2 heures).

    Puis après mettre le bon fuseau horaire, c'est à dire -2.
    Ne plus appliquer les modifs normalement.

    A ce moment les horaires devraient être synchro.


    Tout ceci aurait été bon de le faire en local chez toi (ton PC) en important un backup du site en production, histoire de faire des test pour détecter des éventuelles incohérences.

    Ton application utilise SPIP que je ne connais pas, rien ne dit que la gestion des dates/heures soit particulière.
    Attention aussi au cache, les CMS intègrent souvent ce genre de chose pour des raisons d'optimisation, donc il peut toujours avoir une différence entre ce qu'on voit sur le site Web et ce qu'il y a réellement (Bdd, fichiers, etc ...).

  16. #16
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Merci infiniment hier j'ai constaté qu'a 22h (Tu) le compteur ne s'est pas remis a 0 il a respecter les manipulation que vous m'avez montré. Mais hier j'avais déjà relancer le code sql avec -2 donc au finish tout marche mais je sais pas ce qui a marché dans les 2 code php et sql. Mais je suppose que c'est la code php avec le time.zone car +2 et -2 dans le sql revient a 0 donc peut etre que le code de mon compteur utilise la syntaxe php pour voir si il est minui ou pas tout en utilisant l'heure du serveur comme tel pour calculer le nombre de visite. Dans tous les cas tout marche bien et je vous en remercie je vais continuer a bidouiller en local pour savoir exactement ce qui a marché dans les 2 codes.
    Pour le .Htaccess je vais continuer les recherche du coté de mon hebergeur car le fait qu'il y ai déjà un fichier. Htaccess et que le serveur ne met pas d'erreur me derange si avec ce petit code il me met erreur.
    Encore merci

  17. #17
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Je n'ai pas vraiment compris ton dernier point.


    Juste histoire de dire qu'il seront peut être bon de noter quelque part la date et l'heure où tu as (on va dire officiellement) ajusté le fuseau horaire (Php et MySQL), c'est à dire -2 heures.

    Ceci devrait te permettre de faire toutes les modifs tranquillement, table par table, même champ par champ, si c'est nécessaire.
    Donc sans vraiment de contrainte dans le temps.

    Cependant, il ne faudra plus modifier le fuseau horaire, faut le laisser tel quel.
    Il suffit de faire les mises à jours (update) en enlevant les 2 heures de trop (normalement) avec les fonctions SQL/MySQL, mais en les appliquant sur les données antérieurs à cette date/heure officielle.

Discussions similaires

  1. [PC Serveur] Mon serveur HP émet assez de bruit au démarrage et perd l'heure
    Par Zizoua dans le forum Ordinateurs
    Réponses: 7
    Dernier message: 17/04/2015, 19h39
  2. L'heure de mon serveur qui change automatiquement
    Par sleeg dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 05/10/2011, 09h52
  3. Regler heure locale du serveur
    Par sirbaldur dans le forum Langage
    Réponses: 1
    Dernier message: 06/02/2006, 16h36
  4. Paramétrer le nombre de connexion sur mon serveur Mysql
    Par Zerga dans le forum Installation
    Réponses: 2
    Dernier message: 12/12/2003, 19h21
  5. Heur et date serveur sql
    Par adgabd dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 01/12/2003, 16h16

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