Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi
 
Domov > Forum > Računalništvo

Težave s PHP-jem

 
 
12.2.2016, 1:40
define("ura_sek",60*60);
define("datoteka","cas" );
function poracunaj_polno_uro() : int
{
$cas_s = time();
$ostanek_od_polne_s = $cas_s%(ura_sek);
$polna_ura_s = $cas_s + ura_sek - $ostanek_od_polne_s;
return $polna_ura_s;
}
function preberi_cas():int
{
if(!file_exists(datoteka))
{
$polna_ura_s = poracunaj_polno_uro();
file_put_contents(datoteka,$polna_ura_s,LOCK_EX);
}
return file_get_contents(datoteka);
}
function izvedi_logiko()
{
echo "<h1>moja logika se sedaj izvede!</h1><hr/>";
}

$zapisan_s = preberi_cas();
$trenutno_s = time();
$razlika_s = $trenutno_s - $zapisan_s;
if($razlika_s >= 0)
{
$nova_ura = poracunaj_polno_uro();
file_put_contents(datoteka,$nova_ura,LOCK_EX);
izvedi_logiko();
}
else
{
echo "Cakam na termin:".date('jS F Y h:i:s A (T)', $zapisan_s)."<hr/>Se: ".-$razlika_s." sekund! ";
}
?>

//Tukaj sem ti napisal en primer, je dokaj samoumeven...


spremenjeno: MC++ (12.2.2016, 1:56)
 
 
 
12.2.2016, 17:49
Ampak kaj narediš, da vedno preverja koliko je ura in koliko časa je ostalo?
 
 
 
12.2.2016, 18:15
Saj si rekel, da bi se ta koda izvajala vedno, ko je kak uporabnik na strani, sicer pa ne? Torej vse kar moraš narediti je, da se ob zagonu strani (php skripte) izvede ta koda.
 
 
 
12.2.2016, 18:20
Sicer pa bi lahko imel kakšno cron opravilo, ki se vsako uro aktivira in zažene neko php skripto. Ta pa bi preverila, če je bil v npr. zadnjih 5 minutah kak prisoten uporabnik in bi pognala tvojo logiko.

To, da preveriš prisotnost uporanika bi z lahkoto izvedel tako: Vedno, ko se aktivira neka dejavnost na strani (uporabniku se naloži stran) se vpiše čas v neko datoteko.
Skripta more samo primerjati čas v datoteki s trenutnim časom... če je razlika v razponu 5 minut -> izvedeš tvojo logiko
 
 
 
13.2.2016, 11:41
Cron opravil ne morem nastavljati
Mislil sem, da bi se skripta osveževala in i lahko uporabnik videl odštevanje do polne ure, ko bi se moja koda avtomatsko izvedla


spremenjeno: filips (13.2.2016, 11:44)
 
 
 
13.2.2016, 16:27
Potem pa imej ajax klice na to php kodo, nazaj pa mu vrnes cas? Koliko imas sploh nadzora na strezniku? Imas na voljo samo nek interface? Al lahko dostopas preko ssha?
 
 
 
13.2.2016, 17:27
Kako naj nastavim ajax klice?
 
 
 
13.2.2016, 17:33
Ko je uporabnik na strani, gredo klici npr vsakih 30 sekund na to skripto? Ta pa lahko vrne cas do polne ure, ob polni uri ura pa bo itak skripta izvedla tvojo logiko... To pa bo delalo ko bo kaksen uporabnik na strani
 
 
 
13.2.2016, 18:52
Pri vsem skupaj je malo problem, ker je želja, da se določena koda izvaja na strežniku, določena koda pa v brskalniku uporabnika, kar sta dve povsem neodvisni stvari.

Če želiš neko kodo izvajati na strežniku glede na čas, potem je edini način, da to izvedeš preko cron opravila. Ker ob običajnem nalaganju strani bo strežniku vsako skripto, ki teče dlje kot minuto, sam ustavil.

Kaj pa naj bi izvedla ta koda na strežniku?

Ker moje mnenje je, da izbrani način, kako želiš to rešiti, ni najboljši in bi se dalo to narediti bolje.

Če poveš celotno zgodbo, kaj je sploh namen vsega, potem lahko predlagam kakšno bolj pametno rešitev.
 
 
 
13.2.2016, 19:51
Rad bi naredil kodo, da vi bilo v navadni txt datoteki čas zadnje ponastavitve v obliki Unixovega časovnega žiga (polna ura) in da bi php koda prebrala to datoteko in ji dodala eno uro. Potem pa bi odštevalo, dokler ne bi bil trenutni čas polna ura in takrat izvedlo kodo, da ponastavi vse podatke iz baze. Koda bi se izvajala samo takrat ko bi bil kak uporabnik na strani. Koda bi se avtomatsko osveževala in bi lahko uporabnik videl odštevanje do polne ure, ko bi se moja koda avtomatsko izvedla.

Cron opravilo sem že poskušal dodati, ampak ko ga hočem dodati mi napiše: On free hosting any cron jobs added here MUST complete in 5 seconds or the job will be removed automatically. If you need long running cron jobs please Upgrade. Če ga pa dodam, da se koda za ponastavitev baze izvede vsako polno uro, pa mi cron opravilo izbriše in ga ne izvede.

Gostovanja trenutno ne mislim nadgraditi.


spremenjeno: filips (13.2.2016, 19:52)
 
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!