WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Update i php? (https://www.wn.se/forum/showthread.php?t=37099)

youheardit 2009-05-28 15:45

Hej gott folk!
Har ett litet problem som blir stort på sidan.
jag vill ha så att en php fil som heter tex: "updatera.php" ska köras automatiskt varje 6 timme inne på sidan så jag slipper gå in på den filen varje 6 timmer själv.

just nu har jag det så det ser ut så här:

denna filen ligger som include i headern och varje gång någon surfar in på sidan så öppnas denna filen. men kan inte få så att "uppdatera.php" blir läst varje 6 timme automatiskt.
Kod:

$roll = mysql_query("SELECT * FROM `updates` WHERE `name` = 'rollover'");

while ($line = mysql_fetch_array($roll, MYSQL_ASSOC)) {

        $update = $line['lastdone'];



$ts2 = time() - $update;

if ($ts2 < 21600) { * * -------// har även testat = if ($ts2 < 60*60*6) // och ändrat på pilen "<" till ">"


include'uppdatera.php'; //ska aktiveras!!!

}
}

Tacksam för svar!!

MvH
//Philip Andersson!

chrizz 2009-05-28 17:00

Citat:

Originally posted by youheardit@May 28 2009, 15:45
Hej gott folk!
Har ett litet problem som blir stort på sidan.
jag vill ha så att en php fil som heter tex: "updatera.php" ska köras automatiskt varje 6 timme inne på sidan så jag slipper gå in på den filen varje 6 timmer själv.

just nu har jag det så det ser ut så här:

denna filen ligger som include i headern och varje gång någon surfar in på sidan så öppnas denna filen. men kan inte få så att "uppdatera.php" blir läst varje 6 timme automatiskt.
Kod:

$roll = mysql_query("SELECT * FROM `updates` WHERE `name` = 'rollover'");

while ($line = mysql_fetch_array($roll, MYSQL_ASSOC)) {

        $update = $line['lastdone'];



$ts2 = time() - $update;

if ($ts2 < 21600) { * * -------// har även testat = if ($ts2 < 60*60*6) // och ändrat på pilen "<" till ">"


include'uppdatera.php'; //ska aktiveras!!!

}
}

Tacksam för svar!!

MvH
//Philip Andersson!

I det du skrev ska du använda >, funkar det inte så innehåller $lastdone fel timestamp (t.ex. 0).

Mvh

youheardit 2009-05-28 17:35

tack för ett snabbt svar! :)

testade nyss. men fick fel i class filen då, om jag besöker "uppdatera.php" får jag inget felmeddelande men om jag lägger till den koden i header'n (include då) så får jag felmeddelande om hela class filen :S

EDIT: även kommer detta felmeddeland om jag bara skriver
Kod:

<?php *include'uppdatera.php'; *?>
i headern utan att använda "if" eller annat. endast include!

jonny 2009-05-28 18:47

och du lägger in koden där du öppnat en anslutning till databasen och så?
Indentera din kod så man orkar läsa den :P

KarlRoos 2009-05-28 18:52

Cronjobs?

Med den här metoden så tror jag att servern stoppar scriptet eftersom att det håller på "för lång tid", har för mig att det finns någon workaround dock.

http://www.bitfolge.de/pseudocron-en.html skulle kunna funka också.

greenio.se 2009-05-28 20:13

Ja cron jobs är ju det absolut smidigaste sättet, men har man inte det tillgängligt så är väl länken ovan en bra ide kanske.

Jimpsson 2009-05-28 20:28

Något sånt här kanske funkar?

Citat:

<?php
set_time_limit(0);
while(true){
/* Gör något här */
sleep(21600);
}
?>


elitasson 2009-05-28 21:36

Vilket webbhotell har du? Det smidigaste är om du använder dig av cronjob.

youheardit 2009-05-28 22:08

Citat:

Originally posted by elitasson@May 28 2009, 21:36
Vilket webbhotell har du? Det smidigaste är om du använder dig av cronjob.

Ligger på WOPSA

Tack alla för era svar ska kolla upp allt imon om det funkar!

Jawn 2009-05-28 22:37

Citat:

Ursprungligen postat av youheardit
Citat:

Ursprungligen postat av elitasson
Vilket webbhotell har du? Det smidigaste är om du använder dig av cronjob.

Ligger på WOPSA

Tack alla för era svar ska kolla upp allt imon om det funkar!

Wopsa har cron jobs i cpanel...

youheardit 2009-05-29 09:58

Citat:

Ursprungligen postat av Jawn
Citat:

Originally posted by -youheardit@May 28 2009, 22:08
Citat:

Ursprungligen postat av elitasson
Vilket webbhotell har du? Det smidigaste är om du använder dig av cronjob.

Ligger på WOPSA
Tack alla för era svar ska kolla upp allt imon om det funkar


Wopsa har cron jobs i cpanel...

Tack för det! såg det nu. jag har installerat det med men i kommando ska jag då skriva in "<? include'uppdatera.php'; ?>" som kommando? jag har aldrig sett eller hört om Cronjobb.

tack!

Reager 2009-05-29 10:00

Om det är lika hos dem som på min linuxburk så ska kommando vara det du vill göra. T.ex. om du vill anropa en sida så skriver du

wget http://webadressen

greenio.se 2009-05-29 10:41

jo, jag brukar köra med hela webadressen eftersom jag kör ramverk så är det smidigast, oftast kräver jag att den skickar med någon lösenordsparameter eller nåt också så att inte vem som helst kan sitta och hamra på de oftast ganska tunga uppgifter jag har på cron jobs.

wget -q --delete-after http://www.domän.se/uppdatera.php

*/6 betyder var sjätte förresten om du vill köra den var sjätte timme

greenio.se 2009-05-29 10:46

ah just det, --delete-after är bara för att slippa spara outputen i en fil på servern.

Hade ett projekt där vi hade kört cron jobs med wget i något år och inte tänkt på det, det fanns rätt många tusen tomma filer i kontots root där. :P

chrizz 2009-05-29 13:26

Citat:

Originally posted by Rokkan1@May 28 2009, 20:28
Något sånt här kanske funkar?

Citat:

<?php
*set_time_limit(0);
*while(true){
* */* Gör något här */
*sleep(21600);
}
?>


Det där var inte vackert. Skulle inte rekommendera det :)

cronjob röstar jag på också...

Jimpsson 2009-05-29 13:49

Citat:

Ursprungligen postat av chrizz
Citat:

Ursprungligen postat av Rokkan1
Något sånt här kanske funkar?
Citat:

?php
*set_time_limit(0);
*while(true){
* */* Gör något här */
*sleep(21600);
}
?




Det där var inte vackert. Skulle inte rekommendera det
cronjob röstar jag på också...

Nej, jag vet det men som det lät så hade inte TS tillgång till cron job när jag skrev det där.

youheardit 2009-05-30 08:54

Citat:

Originally posted by greenio.se@May 29 2009, 10:41
jo, jag brukar köra med hela webadressen eftersom jag kör ramverk så är det smidigast, oftast kräver jag att den skickar med någon lösenordsparameter eller nåt också så att inte vem som helst kan sitta och hamra på de oftast ganska tunga uppgifter jag har på cron jobs.
wget -q --delete-after http://www.domän.se/uppdatera.php
*/6 betyder var sjätte förresten om du vill köra den var sjätte timme

Detta funkade!
tack alla för era svar!

Trevlig helg! ha det bra!
//Philip Andersson


Alla tider är GMT +2. Klockan är nu 22:54.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson