Bekijk Volledige Versie : foutmeldingen php 5.3
Ik ben laatst overgestapt van php 5.2 naar 5.3 sindsdien krijg ik foutmeldingen zoals:
Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /xxx.php on line 15
nu heb ik ook met een script gemerkt dat iemand anders hetzelfde script op een server met php5.3 deze meldingen niet krijgt. Kan ik ergens in php zeggen dat deze melding niet weergegeven moet worden?
Bij voorbaat dank.
Ja, tuurlijk kan je de meldingen uitzetten. Het beste is natuurlijk om de fouten op de juiste manier te herstellen.
<?php
// Error display
ini_set('display_errors', 0); // 0 = off, 1 = on
error_reporting(E_ALL); ?>
In je php.ini
date.timezone = "Europe/Amsterdam"
zetten. Had je zelf natuurlijk ook kunnen bedenken, is iets wat veel op forums gevraagd wordt en makkelijk via Google te vinden.
Daarnaast kun je het ook nog in je script zelf zetten, dat kun je ook vinden op Google.
Je zal waarschijnlijk ook tegen de deprecated (http://php.net/manual/en/migration53.deprecated.php) errors aanlopen. Wellicht ook interessant om een keer door te nemen.
Je krijgt overigens dezelfde error op 5.2 i.c.m. error_reporting(-1) ;)
Daarvoor geldt ook date.timezone = "Europe/Amsterdam" in je php.ini plaatsen.
Vic D'Elfant
11/04/12, 08:04
Eigenlijk al aangehaald door Spyder01, maar ik zou aanraden date_default_timezone_set() te gebruiken in je applicatie. Een default zetten in php.ini en daar vanuit gaan is vragen om problemen, naar mijn mening. Je (nieuwe) hosting provider kan deze instelling ineens anders hebben staan en daar kom je dan pas achter zodra links en rechts rare datums op beginnen te duiken.
Ik heb me php.ini aangepast, apache gerestart maar nog steeds krijg ik de foutmelding!
Wie o wie heeft de oplossing? ik draai trouwens DA
Even als toevoeging:
in mijn php.ini staat:
date.timezone = "Europe/Amsterdam"
Mijn phpinfo() zegt:
Loaded Configuration File
/usr/local/lib/php.ini
date
date/time support
enabled
"Olson" Timezone Database Version
2011.14
Timezone Database
internal
Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /home/xxx/info.php on line 3
Default timezone
Europe/Berlin
Directive
Local Value
Master Value
date.default_latitude
31.7667
31.7667
date.default_longitude
35.2333
35.2333
date.sunrise_zenith
90.583333
90.583333
date.sunset_zenith
90.583333
90.583333
date.timezone
no value
no value
Heb je apache wel herstart?
Ik denk dat je de verkeerde php.ini file aanpast. Er staan er vaak twee op een systeem, 1 voor apache en 1 voor command line. Je moet deze hebben: /usr/local/lib/php.ini
Ik denk dat je de verkeerde php.ini file aanpast. Er staan er vaak twee op een systeem, 1 voor apache en 1 voor command line. Je moet deze hebben: /usr/local/lib/php.ini
Of als je suPHP ofzoiets hebt draaien. Dan moet je in de php.ini van de user zijn en gewoon in public_html zetten.
@ Spyder01, Ja zoals gezegd heb ik apache gerestart, zowel via DA als via command line
@ t.bloo, ik heb /usr/local/lib/php.ini aangepast
@ cfmweb, Ik heb gewoon standaard DA draaien niks bijzonders.
heb in shell: locate php.ini gedaan en heb verder alleen in 3 domeinen een aparte php.ini staan die geen invloed hebben op dit domein omdat dit een bepaald script is dat een eigen php.ini heeft.
Dus..... iemand nog een optie?
Post het gedeelte over de date.timezone eens hier vanuit je php.ini. Je weet overigens dat locate alleen zin heeft als je de database bijwerkt middels updatedb?
Heb je misschien ook een /usr/local/etc/php5/cgi/php.ini ? Hoe is je php geconfigureerd? Werkt het wel als je zoals ik al eerder schreef en ook na mij geschreven werd als je het in het betreffende script regelt ipv via de php.ini?
dreamhost_nl
14/04/12, 18:08
Kijk voor de zekerheid even via phpinfo() welke php.ini gebruikt wordt.
@ Spyder01, Hierbij mijn stukje uit /usr/local/lib/php.ini
Je ziet dat de locate niet gebruik.
[Date]
; Defines the default timezone used by the date functions
date.timezone = "Europe/Amsterdam"
;date.default_latitude = 31.7667
;date.default_longitude = 35.2333
;date.sunrise_zenith = 90.583333
;date.sunset_zenith = 90.583333
Ik heb geen /usr/local/etc/php5 map.
Als ik date_default_timezone_set('Europe/Amsterdam'); in mijn script zet werkt t wel.
@dreamhost_nl, ik heb in 1 van mijn vorige posts al gezegd:
Mijn phpinfo() zegt:
Loaded Configuration File
/usr/local/lib/php.ini
Je kunt deze in je php code zetten, bv in een index of conf:
date_default_timezone_set('Europe/Amsterdam');
Werkt ook en is hier misschien makkelijker/sneller dan het via php.ini oplossen.
Als je leest, zie je dat hij dat al gedaan heeft, blijft het verder een feit dat het via de php.ini ook hoort te werken maar bij de ts niet werkt.
ok, overheen gelezen, t was laat gister.
Is er misschien een andere manier dat ik kan kijken of mijn php.ini uberhaubt wel aangeroepen word? of dat ik toch ergens anders een fout heb in mijn server?
dreamhost_nl
15/04/12, 20:11
De via phpinfo() verkregen locatie van php.ini zou in principe altijd correct moeten zijn. Je zou er als een test eens een andere optie in kunnen wijzigen (of aan toevoegen) en dan zien of dat wel correct wordt meegenomen.
Nog steeds heb ik dit probleem. :thumbdown:
Heb als test de asp_tags op On gezet en dat werkte. Heb ook date.default_latitude aangepast maar dat werkt ook niet.
Iemand een optie?
probeer eens zonder quotes date.timezone = Europe/Amsterdam
Had ik al eerder geprobeerd, maar nog eens gedaan en werkt niet :(
Schiet me nu ineens te binnen dat ik ooit heb ingesteld dat me server via ntp de juiste tijd heeft. Kan dit het probleem zijn?
Schiet me nu ineens te binnen dat ik ooit heb ingesteld dat me server via ntp de juiste tijd heeft. Kan dit het probleem zijn?
Nee, dat zou hier los van horen te staan. Je kunt wel even voor de zekerheid te tijd op de server checken. Niet dat het je probleem oplost, maar nu je het toch over NTP hebt, is het goed om het even te controleren.
Heb het probleem nog steeds niet opgelost, maar zie nu ook dat de upload_max_filesize niet goed is zoals het in de php.ini staat. kan het zijn dat de php.ini ergens overruled word door een andere file van DirectAdmin? Kan ik ergens mijn php.ini dumpen zodat iemand hem na kan kijken ofzo?
Ik heb hier ook geen problemen ermee.
Ik heb even snel een kopie gemaakt van mijn stukje van php.ini
/usr/local/lib/php.ini
[Date]
; Defines the default timezone used by the date functions
date.timezone = "Europe/Amsterdam"
;date.default_latitude = 31.7667
;date.default_longitude = 35.2333
;date.sunrise_zenith = 90.583333
;date.sunset_zenith = 90.583333
Daarna een service httpd restart gedaan en ik had geen problemen meer.
dreamhost_nl
17/05/12, 19:40
Misschien kun je voor de zekerheid nagaan of het [Date] gedeelte niet meermaals in de php.ini is opgenomen. Ooit eens zoiets gehad waardoor je denkt dat de configuratie goed is, maar dit dus niet is. Daarentegen zou dit dan wel weer via de phpinfo() functie naar voren moeten komen. En volgens jou staat het daar wel goed, is het niet?
Nou, de TS geeft het volgende aan:
Heb het probleem nog steeds niet opgelost, maar zie nu ook dat de upload_max_filesize niet goed is zoals het in de php.ini staat. kan het zijn dat de php.ini ergens overruled word door een andere file van DirectAdmin? Kan ik ergens mijn php.ini dumpen zodat iemand hem na kan kijken ofzo?
Kun je een link naar je phpinfo geven, aangeven welk bestand in welke map je aanpast? Niet toevallig in het account waar dit script op draait nog ergens een php.ini staan?