Cookies – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Cookies – PHP – Fórum – Programujte.comCookies – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
tomi860
Newbie
26. 5. 2008   #1
-
0
-

Cavte. Mam takyto problem. MAm stranku na ktoru je treba prihlasenie uzivatelov. Mam tam zobrazovanie, kto je online amaterskym sposobom. Po prihlaseni odosle do databazy 1 pre daneho uzivatela a nalsedne vypis uzivatelov s 1-kou. Chcel by som vsak spravit COOKIES, aby sa nemuselo stale prihlasovat, proste, aby si pamatala stranka uzivatela a prihlasila ho automaticky. Neviem vsak ako na to. Cital som o Cookies vela clankov, ale vobec mi to nefunguje. Dalsia vec je, ako spravim, aby mi zobrazovalo iba uzivatelov, ktori su online, ked sa nikdy neodhlasia. Dakujem vopred za navrhy. :smile2:

Nahlásit jako SPAM
IP: 85.135.226.–
Reklama
Reklama
petrl0
Návštěvník
26. 5. 2008   #2
-
0
-

To tomi86 :
Ahoj takže nejprve k těm cookie. Cookie zašleš uživateli pomocí:



setcookie(nazev_cookie,hodnota,zivotnost);

za nazev_cookie dosaď třeba prihlasen
za hodnotu dosaď 1
za zivotnost dosaď například time() + 60*60*24

takže ti vznikne následující řešení:


setcookie("prihlase",1,time() + 60*60*24);


tato cookie bude mít platnost jeden den, kdyby si ji chtěl naměsíc tak za 24 dáš ještě *31

No a teď jenom při vstupu na stránku budeš ověřovat zda je přihlášen:


if($_COOKIE["prihlasen"]==1){
print "je přihlášen";
}else{
print "není přihlášen";
}


a to je vše. S tím odhlášením. Do databaze ukladej údaj o poslední činosti, a pak napiš script, ktery bude ověřovat zda údaj s poslední čiností není delší než třeba 15 minut. Tento scirpt volej přes cron třeba každou minutu.

A to je celé. Přeji hodně zdaru

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
tomi860
Newbie
26. 5. 2008   #3
-
0
-

takze, ak som to spravne pochopil...tak pri prihlaseni pouzijem toto: setcookie(nazev_cookie,hodnota,zivotnost);
a vsade tam, kde mam kontrolu, ci je user prihlaseny
<?
if (empty($_SESSION['myusername'])){
echo " Pre vstup musíš byť prihlásený.";
exit;
}
?>

napisem toto:
<?
if(empty($_COOKIE["prihlasen"]))
echo " Pre vstup musíš byť prihlásený.";
?>


pochopil som spravne???

Nahlásit jako SPAM
IP: 85.135.226.–
petrl0
Návštěvník
26. 5. 2008   #4
-
0
-

To tomi86 :



<?
if(empty($_COOKIE["prihlasen"]) != 1)
echo " Pre vstup musíš byť prihlásený.";
?>


Viz víše, s tím že do hodnoty prihlasen uložíš 1. Jinak to chápeš stejně.

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
tomi860
Newbie
26. 5. 2008   #5
-
0
-

vsetko klape ako ma akurat na to zistovanie poslednej cinnosti a cronu...samotny cron som ako-tak pochopil, ale ako robit tu cinnost... :smile11:

Nahlásit jako SPAM
IP: 85.135.226.–
petrl0
Návštěvník
26. 5. 2008   #6
-
0
-

To tomi86 : Jo, tak se dívej :-)
udělej soubor, třeba uzivatel_cron.php

do tohoto souboru umisti tento kod(uvadím příklad, musíš si sám implementovat):



<?php
//zde načtu připojení na mysql
include "config_mysql.php";

//výběr z tabulky users
$sql = "SELECT * FROM users ORDER BY id ASC";
//provedu dotaz
$res = mysql_query($sql);

//Teď nastavím maximální dobu nečinosti, předpokládám že do MySQL ukládáš poslední akci pomocí time()
$necinost = 60*60; //toto mi za jistí že uživatel může být nečiný maximálně hodinu

//zpracuji data
while($zaz = mysql_fetch_object($res)){
//teď uložím aktuální čas
$ted = time();
//tohle je rozdíl časů
$rozdíl = $ted - $posledni_akce;
if($rozdil >= $necinost){
//ude provedes odhlášení,prostě update sloupce prihlasen kde más 1 tak na 0
}
}
?>


tak tohle je celý, snad ti to pomůže, kód jsem netestoval

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
tomi860
Newbie
27. 5. 2008   #7
-
0
-

dakujem velmi pekne, ale stale enchapem ako sa robi to zistovanie poslednej akcie na stranke...

Nahlásit jako SPAM
IP: 85.135.226.–
petrl0
Návštěvník
27. 5. 2008   #8
-
0
-

To tomi86 :
to máš jednoduchý:



//tohle dáš do každé stránky za proměnou $id si ziskas tak ze do session nebo cookie ulozis pri loginu id uzivatele ktere se ziska z databaze
<?
if($_COOKIE['prihlasen'] == 1){
mysql_query("UPDATE uzivatel SET posledni_akce =".time()." WHERE uzivatel_id = $id");
}
?>

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
tomi860
Newbie
27. 5. 2008   #9
-
0
-

No, ale ked nastavim zivotnost COOKIES na mesiac tak hodnota COOKIE bude mesiac rovna 1 nie??? Hodnota sa zmeni az vtedy, ked sa dany uzivatel odhlasi.

Nahlásit jako SPAM
IP: 85.135.226.–
netman920
Super člen
27. 5. 2008   #10
-
0
-

To tomi86 :
tak so vlastne potrebujes???

Nahlásit jako SPAM
IP: 195.91.54.–
tomi860
Newbie
27. 5. 2008   #11
-
0
-

pointa je v tom, ze ja som mal na stranke povodne spravene prihlasenie uzivatela cez sessions a pri prihlaseni odoslalo do databazyhodnotu 1 a v tabulke, kde mam KTO JE ONLINE filtrovalo uzivatelov s 1-kou. Pri odhlaseni zase odoslalo do databazy 0. Potom som sa vsak rozhodol, ze spravim automaticke prihlasenie cez COOKIES, ak si uzivatel zvoli automaticke prihlasenie pri dalsej navsteve. Problem vsak je v tom, ze ked sa prihlasi, do databazy sa odosle 1-ka, ale uzivatel sa viac neodhlasi. CoOKIES mam nastavene na 1 mesiac. Takze teraz mi tam svieti, ze kazdy, kto si nastavil automaticke prihlasenie je online.

Nahlásit jako SPAM
IP: 85.135.226.–
netman920
Super člen
27. 5. 2008   #12
-
0
-

To tomi86 :
no takto>
da sa to vyriesit tak ze zistis kde sa uzivatel nachdza podla toho naco klikne
a ked bude neaktivny napr viac ako 5min tak sa automaticky prepise 1 na 0
vacsina pocitadiel je takto robena aj to co ma phpBB
skus to vyriesit takto :-D

Nahlásit jako SPAM
IP: 195.91.54.–
petrl0
Návštěvník
27. 5. 2008   #13
-
0
-

To tomi86 :
to cookie s hodnotou jedna tam je proto, že když uživatel nebude přihlášen nebudu ukládat poslední činost, ale když bude přihlášen a tohle budeš mít ve všech stránkách tak se při každém naštívení stránky aktualizuje i příslušný údaj.

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
netman920
Super člen
27. 5. 2008   #14
-
0
-

To petrl :
ZHRUBa TO som sa mu snazil povedat :smile4:

Nahlásit jako SPAM
IP: 195.91.54.–
petrl0
Návštěvník
27. 5. 2008   #15
-
0
-

To netman92 : jasný, ze svý skušenosti vým že začátečnikový pomůže někdy když mu dáš pod nos hotový řešení, ale jestli to s tím COOKIE nepochopil hned, tak nevím jestli má vlohy na to aby programoval...třeba si to jen neuvědomil :smile1:

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 40 hostů

Podobná vlákna

Cookies — založil Mirek Braho

Cookies — založil Pepa Rohlik

Cookies — založil Marty_SVK

Nevytváří Cookies — založil Alex

Problem s cookies — založil 7raul

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý