Door
jorgen buyle
op 11-03-2013 20:22
gewijzigd op 11-03-2013 20:23
583 views
hey
ik probeer zelf een counter te maken die elke 24 uur reset maar ik heb problemen met het vergelijken van de datums met elkaar en dit geeft uds problemen met het wegschrijven naar de bestanden voor de gegevens bij te houden
hier het deel van de code waar ik problemen op heb
Er zitten nogal wat onvolkomenheden in dit stuk code, als ik er eens goed naar kijk.
Ten eerste: de aanname dat je met fwrite($fid,"") je bestand leegmaakt, is verkeerd. Wat fwrite doet, is op het punt waar de file pointer staat (achter de datum) een string van lengte 0 schrijven.
De fwrite($fip,"") kun je net zo goed weglaten, want de parameter "w+" van fopen() maakt het bestand al leeg. Met fclose(fopen($date,"w+")) kun je een bestand ook leegmaken; scheelt je een variabele. Foutafhandeling wordt dan wat lastiger, maar dat zit er nu ook niet in, dus dat maakt geen verschil. ;-)
Volgende probleem: je doet geen rewind() na de fread(). Daardoor wordt de file pointer niet teruggezet naar het begin van het bestand en zal de fwrite() nooit op de juiste plaats gaan schrijven. Als de code werkt, zou je date.txt twee regels moeten hebben, waarvan de tweede regel wél de datum van vandaag bevat.
Verder gaat het laatste stuk, met de file_get_contents() en de strlen() nooit werken. Ik vermoed dat je dat erin hebt gezet voor het geval date.txt niet bestaat; die zou dan aangemaakt moeten worden. Fout. Als date.txt niet bestaat, werkt de fopen() niet en krijgt $fid de waarde NULL. De fwrite() naar $fid zal het dus niet doen.
Kan het zijn dat de lees/schrijfrechten op de bestanden en/of mappen verhinderen dat het webserver-proces naar die bestanden kan schrijven? Tip: doe eens aan foutafhandeling. Dus bijvoorbeeld:
if (!fwrite($fid, date('Y/m/d')))
{
echo "Kan niet schrijven";
}
En let op dat je de (!$vandaag == $filedatum) corrigeert, want anders gaat het zeker niet werken...
san the hartelijk bedankt voor de hulp de code werkt perfect op die manier ik ben nog niet zo lang bezig ( ik zit in het middelbaar en volg informatica beheer maar dit soort problemen zien we niet op school we zijn gewoon bezig met sessions en databases uitlezen inlezen hebben we nog niet echt gezien enzo ik leer mezelf meer aan dan het school mij leert ) maar toch heel hartelijk dank ik heb veel bijgeleerd deze avond