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...


Alla tider är GMT +2. Klockan är nu 12:40.

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