Om het halfuur bestand leegmaken Script fout
Het vervolg van topic: http://phphulp.nl/forum/showtopic.php?cat=12&id=40804&page=
Samenvatting:
Wat de bedoeling is, is dus om het halfuur een script uitvoeren waarmee er een htm bestandje helemaal wordt leeg gemaakt.
Ik heb helaas niet de mogelijkheid om cronjobs te doen. (ook al heb ik plesk)
Dus heb ik zelf een script zitte schrijve maar het werkt nog niet helemaal.
Ik weet waar het probleem zit alleen weet ik geen alternatieve of een oplossing hiervoor...
Bij het uitvoeren van dit script hieronder geeft hij een lege pagina weer en dat is niet goed!
Hieronder het script:
Code (php)
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
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
<?php
$nu = time (); /* Expres UNIX stijl omdat het makkelijker is met rekenen hieronder */
$morgen = strtotime ("+30 minute", $nu); /* Altijd 1800 verschil */
$file = file_get_contents ('check.txt');
$uitkomst = $file - $nu;
echo $uitkomst;
/* hier gaat het mis en ik heb geen idee wat ik verkeerd doe
Want als je doet:
$getal1 = 36;
$getal2 = 16;
$uitkomst = $getal1 - $getal2
echo $uitkomst;
Dan krijg je als echo: 20
*/
if($uitkomst > 1800){
echo "Openen check..."; // eigenlijk overbodig maar was nodig om de fout te vinden
$bestand = "check.txt";
$schrijven = $nu;
$bestandopenen = fopen($bestand, "w");
fwrite($betandopenen, $schrijven);
fclose($betandopenen);
echo "Groter dan 1800 dus een halfuur is gereset en de rest van de pagina wordt getoond"
}
elseif($uitkomst < 1800){
echo "Lager dan 1800 dus het halfuur is zo gelaten en er wordt geen bestand leeg gemaakt en de rest van de pagina wordt getoond"
}
?>
$nu = time (); /* Expres UNIX stijl omdat het makkelijker is met rekenen hieronder */
$morgen = strtotime ("+30 minute", $nu); /* Altijd 1800 verschil */
$file = file_get_contents ('check.txt');
$uitkomst = $file - $nu;
echo $uitkomst;
/* hier gaat het mis en ik heb geen idee wat ik verkeerd doe
Want als je doet:
$getal1 = 36;
$getal2 = 16;
$uitkomst = $getal1 - $getal2
echo $uitkomst;
Dan krijg je als echo: 20
*/
if($uitkomst > 1800){
echo "Openen check..."; // eigenlijk overbodig maar was nodig om de fout te vinden
$bestand = "check.txt";
$schrijven = $nu;
$bestandopenen = fopen($bestand, "w");
fwrite($betandopenen, $schrijven);
fclose($betandopenen);
echo "Groter dan 1800 dus een halfuur is gereset en de rest van de pagina wordt getoond"
}
elseif($uitkomst < 1800){
echo "Lager dan 1800 dus het halfuur is zo gelaten en er wordt geen bestand leeg gemaakt en de rest van de pagina wordt getoond"
}
?>
Het leegmaken van check.txt heb ik niet gecheckt
Dus niet dat je oppeens krijgt zo van:
eerste keer schrijven 1000
tweede keer schrijver 300
en als uitkomst: 1000300
dat heb ik niet gecheckt en ik weet niet of hij dat standaard doet en ik heb ook geen idee hoe het dan zou moeten.
ik heb het even in uren veranderd
wat je doet is
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$bestand = "index.html"
$schrijven = "wat jij een uurtje wilt schrijven :S";
$bestandopenen = fopen($bestand, "a");
fwrite($betandopenen, $schrijven);
fclose($betandopenen);
include("tijd.php");
if(time(h) > $tijd) {
$schrijven2 = "<? $tijd = \"" . time(h) . "\"; ?>";
$bestand2 = "tijd.php";
$bestandopenen2 = fopen($bestand2, "w");
fwrite($betandopenen2, $schrijven2);
fclose($betandopenen2);
unlink("index.html");
}
?>
$bestand = "index.html"
$schrijven = "wat jij een uurtje wilt schrijven :S";
$bestandopenen = fopen($bestand, "a");
fwrite($betandopenen, $schrijven);
fclose($betandopenen);
include("tijd.php");
if(time(h) > $tijd) {
$schrijven2 = "<? $tijd = \"" . time(h) . "\"; ?>";
$bestand2 = "tijd.php";
$bestandopenen2 = fopen($bestand2, "w");
fwrite($betandopenen2, $schrijven2);
fclose($betandopenen2);
unlink("index.html");
}
?>
tijd.php
ik weet alleen nog niet of het werkt.
moet je even teste
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
Ik zet er ff bij wat ik denk dat er gebeurd
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$bestand = "index.html" // bestand om leeg te maken
$schrijven = "wat jij een uurtje wilt schrijven :S"; // niet leeg maar dat neer zetten
$bestandopenen = fopen($bestand, "a"); // bestand openen
fwrite($betandopenen, $schrijven); // het schrijven ervan
fclose($betandopenen); // sluiten ervan
include("tijd.php"); // de tijd.php opvragen met als tijd"20" geen idee wat 20 daar doet?
if(time(h) > $tijd) { // wat doet die h daar? uren?
$schrijven2 = "<? $tijd = \"" . time(h) . "\"; ?>"; // het opnieuw schrijven
$bestand2 = "tijd.php"; // welk bestand te bewerken voor tijd
$bestandopenen2 = fopen($bestand2, "w"); // het openen van bestand tijd
fwrite($betandopenen2, $schrijven2); // het schijven ervan
fclose($betandopenen2); // het sluiten ervan
unlink("index.html"); // het leeg maken van het bestand
}
?>
$bestand = "index.html" // bestand om leeg te maken
$schrijven = "wat jij een uurtje wilt schrijven :S"; // niet leeg maar dat neer zetten
$bestandopenen = fopen($bestand, "a"); // bestand openen
fwrite($betandopenen, $schrijven); // het schrijven ervan
fclose($betandopenen); // sluiten ervan
include("tijd.php"); // de tijd.php opvragen met als tijd"20" geen idee wat 20 daar doet?
if(time(h) > $tijd) { // wat doet die h daar? uren?
$schrijven2 = "<? $tijd = \"" . time(h) . "\"; ?>"; // het opnieuw schrijven
$bestand2 = "tijd.php"; // welk bestand te bewerken voor tijd
$bestandopenen2 = fopen($bestand2, "w"); // het openen van bestand tijd
fwrite($betandopenen2, $schrijven2); // het schijven ervan
fclose($betandopenen2); // het sluiten ervan
unlink("index.html"); // het leeg maken van het bestand
}
?>
Dat is wat ik begrijp kun je het misschien nog iets beter uitleggen want er zitten geen echo's bij zodat je kunt zien of het script wel werkt.
had toch ook gekunt:
Of zit ik daar weer naast???
Wat doen die h en die 20 nou precies want ik snap het niet helemaal?
EDIT: Ik heb er echo's tussen gedaan en het blijkt een lege pagina te geven dus ik denk niet dat het script werkt...
en er zit geen error handeling in dus het is een beetje de vraag waar het probleem zit...
Gewijzigd op 01/01/1970 01:00:00 door Vinny
SanThe schreef op 22.11.2007 21:29:
Yep dat werkt!
Heel erg bedankt voor de moeite nemen!
EDIT: 22.11.2007 21:29 oei 1 minuut ervoor toen ik hem teste was het precies tijd, daarna refreshde ik hem en toen zij die geen tijd ;)
Ik snap er geen ruk van wat je heb geschreven behalve dan dat je UNIX timestamp gebruikt met een ifelse en een open file en opslaan.
Alleen verder snap ik er niks van en staat er ook niet meer in o.0
Maar nogmaals bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Vinny