Comunitatea PHP Romania
MightyDeals

Prima pagină PHP General Cod PHP secunde de la ultimul login

secunde de la ultimul login

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Mesaj Dum Iul 01, 2012 8:35 pm
Komfort PHPRomania Supporter

Mesaje: 29
buna seara..
daca ma puteti ajuta cu o pb care imi da de cap de 2 zile:|
as vrea sa fac urmatoarea:
as vrea asa: utilizatorul x are y secunde de la ultimul login.....? sau minute
Eu am incercat asa si nu stiu unde gresesc:

 if(isset($_POST['password'])){
$nickname=$_POST['nickname'];
$password=$_POST['password'];
if(!isset($_SESSION['nickname'])) $_SESSION['nickname']=$_POST['nickname'];


$cerereSQL3="SELECT * FROM users WHERE nickname='{$_SESSION['nickname']}'   ";
   $rezultat3 = mysql_query($cerereSQL3);
   while($rand = mysql_fetch_array($rezultat3)){ $rand['timp']=$timp3;}


$data_actuala=time();
 $diferenta = intval($data_actuala-$timp3);

$sql4 = "UPDATE `users` SET `timp`='$data_actuala'  WHERE `nickname`='".$_SESSION['nickname']."'";
$result4 = mysql_query($sql4);
echo $result4;
echo '<font color=red>'; echo $diferenta; echo '</font>';

Mesaj Dum Iul 01, 2012 11:05 pm
Komfort PHPRomania Supporter

Mesaje: 29
nu ma poate ajuta nimeni:(?

Mesaj Dum Iul 01, 2012 11:47 pm
Birkoff Avatar utilizator
Senior Member

Mesaje: 5884
Localitate: Bucuresti

eu am ceva de gen dar e putin altfel decat ai tu

1) tabelul online in care salvezi datele userilor care sunt la tine pe site
id | username (daca nu e logat bagi null) | ip | browser | pagina (unde se afla el in acel moment) | timp (data si minutul)

2) tabelul users in care salvezi datele de inregistrare ale userilor + data si ip-ul de la ultima logare

avand aceste 2 tabele poti vedea cati sunt online la tine pe site (in ultimele x minute de exemplu), poti prevenii logarea multipla (vezi in tabelul online daca un username e de 2 ori in 2 pagini diferite cu 2 ip-uri diferite (sau chiar de pe acelasi ip dar alt browser)), poti vedea cand sa logat ultima oara un user si de pe ce ip (tabelul users data si ip) astea le poti folosi si la banarea userului...

ca sa vezi de exemplu cati vizitatori sunt in ultimele 5 minute pe site poti face un select de forma

$minute = intval($minute);
        $timp = time() - 1 * 60 * $minute;
        // se compune selectul
        $query = "SELECT * FROM " . TBL_ONLINE . "
         WHERE timp > '".date('Y-m-d H:i:s',$timp)."'
         GROUP BY user,ip,browser
         ORDER BY user ASC";


similar poti face si ce vrei tu sa vezi de cand sa logat userul

Mesaj Dum Iul 01, 2012 11:56 pm
Komfort PHPRomania Supporter

Mesaje: 29
pfff....e fff complicat...scriptul ala de sus al meu...cam asa se face dar am gresit eu...undeva:(

Mesaj Lun Iul 02, 2012 12:08 am
Birkoff Avatar utilizator
Senior Member

Mesaje: 5884
Localitate: Bucuresti

pai si ce nu iti merge? ca scriptul pare ok doar ca nu afiseaza secundele la echo $diferenta ci diferenta data de timestamp...

zi ce nu iti iese si vedem

Mesaj Lun Iul 02, 2012 8:10 am
Komfort PHPRomania Supporter

Mesaje: 29
pai nu imi afiseaza nimic :(din scriptul ala adica....echo $diferenta ar trebui sa-mi afiseze secunde ele de la ultimul login si nu o face:(

Mesaj Lun Iul 02, 2012 8:38 am
HkSilviu Average Member

Mesaje: 65
incearca sa pui $diferenta =$data_actuala-$timp3;
in loc de $diferenta = intval($data_actuala-$timp3);

Mesaj Lun Iul 02, 2012 8:46 am
MarPlo Senior Member

Mesaje: 704
Localitate: Braila

Inlocuieste:
$rand['timp']=$timp3;

Cu
$timp3 = $rand['timp'];

Mesaj Lun Iul 02, 2012 12:09 pm
Komfort PHPRomania Supporter

Mesaje: 29
Multumesc..merge

Mesaj Lun Iul 02, 2012 2:49 pm
Komfort PHPRomania Supporter

Mesaje: 29
as mai avea o intrebare

$sql5 = "UPDATE `users` SET `porumb`='$diferenta' WHERE `nickname`='".$_SESSION['nickname']."'";
$result5 = mysql_query($sql5);
echo $result5;



am acest cod care face urmatorea retine nr de sec de la ultmiul login....dar as vrea sa se adune secundele...adica de ex:de la ultmiul login am 18 sec ..si cand mai ma loghez inca odata sa nu imi apara to 18 sec ci 36 de secunde
o idee? eu am gandeam la insert into da nu stiu cum:(

Mesaj Lun Iul 02, 2012 3:06 pm
HkSilviu Average Member

Mesaje: 65
o sa vina ceva de genul

mysql_query("UPDATE `numetabela` SET `timp`=`timp`+$timp WHERE `id`='$id'");


si variabilele ti le pui tu cum ai

Mesaj Lun Iul 02, 2012 3:43 pm
Komfort PHPRomania Supporter

Mesaje: 29
if(isset($_POST['password'])){
$nickname=$_POST['nickname'];
$password=$_POST['password'];
if(!isset($_SESSION['nickname'])) $_SESSION['nickname']=$_POST['nickname'];


$cerereSQL3="SELECT * FROM users WHERE nickname='{$_SESSION['nickname']}'   ";
   $rezultat3 = mysql_query($cerereSQL3);
   while($rand = mysql_fetch_array($rezultat3)){ $timp3=$rand['timp'];
$porumb=$rand['porumb'];
$wood=$rand['wood'];
$wool=$rand['wool'];
$milk=$rand['milk'];
}


$data_actuala=time();
$diferenta =$data_actuala-$timp3;

$sql4 = "UPDATE `users` SET `timp`='$data_actuala'  WHERE `nickname`='".$_SESSION['nickname']."'";
$result4 = mysql_query($sql4);
echo $result4;
if(!isset($_SESSION['diferenta'])) $_SESSION['diferenta']=$diferenta;

$sql5 = "UPDATE `users` SET `porumb`=$diferenta WHERE `nickname`='".$_SESSION['nickname']."'";
$result5 = mysql_query($sql5);
echo $result5;



mysql_query("UPDATE `users` SET `porumb`=`porumb`+$porumb WHERE `nickname`='{$_SESSION['nickname']}'   ");


asta e codu

unde e greseala...eu as vrea sa creasca resursele in fucntie de secunde trecute de la ultimul login...de ex..am 100 la porumb si apoi 120...adica 20 sec de la ultimul login.etc
Multumesc

Mesaj Lun Iul 02, 2012 5:23 pm
Komfort PHPRomania Supporter

Mesaje: 29
login.php
if(isset($_POST['password'])){
$nickname=$_POST['nickname'];
$password=$_POST['password'];
if(!isset($_SESSION['nickname'])) $_SESSION['nickname']=$_POST['nickname'];


$cerereSQL3="SELECT * FROM users WHERE nickname='{$_SESSION['nickname']}'   ";
   $rezultat3 = mysql_query($cerereSQL3);
   while($rand = mysql_fetch_array($rezultat3)){ $timp3=$rand['timp'];
$porumb=$rand['porumb'];
$wood=$rand['wood'];
$wool=$rand['wool'];
$milk=$rand['milk'];
}


$data_actuala=time();
$diferenta =$data_actuala-$timp3;

$sql4 = "UPDATE `users` SET `timp`='$data_actuala'  WHERE `nickname`='".$_SESSION['nickname']."'";
$result4 = mysql_query($sql4);
echo $result4;
if(!isset($_SESSION['diferenta'])) $_SESSION['diferenta']=$diferenta;

$sql5 = "UPDATE `users` SET `porumb`=`porumb` + $diferenta  WHERE `nickname`='".$_SESSION['nickname']."'";
$result5 = mysql_query($sql5);
echo $result5;


asta e codul...si nu prea stiu unde gresesc:(?

Mesaj Lun Iul 02, 2012 5:31 pm
HkSilviu Average Member

Mesaje: 65
cred ca nu e bine unde pui update, update ala trebuie pus dupa ce expira sesiunea sa stie cate secunde ai stat tu logat

Mesaj Lun Iul 02, 2012 8:14 pm
Komfort PHPRomania Supporter

Mesaje: 29
mm nu prea inteleg ce vrei sa spui:(///daca ai putea scrie codu ?

Mesaj Dum Apr 14, 2013 12:55 am
Google Bot New Member

Mesaje: 1
Următorul

Înapoi la Cod PHP

Copyright © 2001-2013 PHP Romania Gazduire web | Haine online | Gazduire web | Campanii SMS | Gazduire Claus Web | Inregistrare Domenii | Anunturi | Jocuri cu bile
Furnizat de phpBB® Forum Software © phpBB Group
Translation/Traducere: phpBB România
Powered by Simplis