homers Posted September 18, 2009 Report Share Posted September 18, 2009 (edited) 1/ Gribu uztaisīt kā var reģistrēties tikai no 1.ip adreses. Esmu kaut ko uzrakstijis, bet viņš neaizgaja. $ip = ($_SERVER['REMOTE_ADDR']); $ip2 = (SELECT ip FROM lietotaaji WHERE ip = ".$ip."); if($ip == $ip2) { echo "tava ip jau ir reģistrēta!!!!"; } else { //reģistrēšanas lapa } 2/ Kā var uztaisīt jā nav aktīvitātes pedējas 3minūtes, viņš automātiski izlogojas. Un datubāzē updeitojas šadi mysql_query("UPDATE lietotaaji SET tiessaite='off' WHERE id={$_SESSION['id']}"); unset($_SESSION['id']); session_destroy(); Edited September 18, 2009 by homers Quote Link to comment Share on other sites More sharing options...
Kemito Posted September 18, 2009 Report Share Posted September 18, 2009 Kā var šito un kā var to atrodam google! 1. Izvelkot esošo IP adresi manliekas tu dari kaut ko nepareizi! Respektīvi tu vaicā pēc IP bet to nesaņem, varbūt arī kļūdos bet šaubos ka ip = ".$ip." šī vieta būs pareiza! :P .. izmanto '' nevis "" 2. Izmanto timestamp! Quote Link to comment Share on other sites More sharing options...
homers Posted September 18, 2009 Author Report Share Posted September 18, 2009 Par otro jautājumus, nevaru atrāst nekādu timestamp, varbūt iedosi kodu? Quote Link to comment Share on other sites More sharing options...
briedis Posted September 18, 2009 Report Share Posted September 18, 2009 Man liekas ka pirmajā tu dari kaut ko ko pats nemaz nesaproti :) Pirmkārt, kas tās par iekavām un priekš kam?? $ip = ($_SERVER['REMOTE_ADDR']); Ja tu raksti kvēriju, tad viņš izpildās ar mysql_query(); Eh, nu tam būtu jāizskatās šitādi: $ip = $_SERVER['REMOTE_ADDR']; $data = mysql_fetch_assoc(mysql_query("SELECT ip FROM lietotaaji WHERE ip = '$ip'")); $ip2 = $data['ip']; if($ip == $ip2){ echo "tava ip jau ir reģistrēta!!!!"; } else{ //reģistrēšanas lapa } Ņem vērā, ka uz IP pilnībā nederīkst paļauties. To var noviltot. Un ņem vērā, ka piem. Ip var būt dinamisks. Vai arī cilvēki kas sēž aiz viena rūtera ir redzami kā no viena ip. Quote Link to comment Share on other sites More sharing options...
homers Posted September 18, 2009 Author Report Share Posted September 18, 2009 Paldies, briedi tavs variants aizgaja. Bet kāds varētu atbildēt uz otro jautājumu? Quote Link to comment Share on other sites More sharing options...
waplet Posted September 18, 2009 Report Share Posted September 18, 2009 uzliekot countdown js scriptu Quote Link to comment Share on other sites More sharing options...
briedis Posted September 18, 2009 Report Share Posted September 18, 2009 (edited) Nu labi, saņemšos uz otro jautājumu. Karoč, doma tāda, ka tu nevari likt lietotājam paziņot par to, ka viņš iz aizgājos prom, JO VIŅŠ IR AIZGĀJIS PROM :D Kā es veidoju tabulu, kur ir online lietotāji. Ir tabula lietotaji_online, ar kolonnām: ip,last_seen ip - lietotāja ip last_seen - timestamp`s, kad lietotājs pēdējo reizi izrādījis aktivitāti(atvēris kādu lapu, kur tiek izsaukta šī funkcija getOnlineUserCount()). un tad funkcija, kas atgriež lietotāju skaitu, kas ir izrādīju aktivitāti pēdējo 5 min laikā - function getOnlineUserCount(){ $ip = $_SERVER['REMOTE_ADDR']; $now = time(); $delta = $now - 300; //5 minūtes iepriekš mysql_query("DELETE FROM lietotaji_online WHERE last_seen < $delta OR ip = '$ip'"); //dzēšam visus kas ir vismaz 5 minūtes prom un pašreizējo lietotāju mysql_query("INSERT INTO lietotaji_online(ip,last_seen) VALUES('$ip','$now')"); //pievienojam pašreizējo lietotāju $data = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) FROM lietotaji_online")); //dabūjam ierakstu skaitu tabulā return (int)$data['COUNT(*)']; } ceru, ka noderēs! P.S. ja gribi reģistrētos, tad pievienot attiecīgo kolonnu(boolean) is_registered, un ja lietotājs ir reģistrēts, tad tur ievieto 1, un pēc tam kur atgriez skaitu, attiecīgo pieprasījumu, lai dabūtu reģistrēto skaitu un nereģistrēto (... WHERE is_registered = '1') Edited September 18, 2009 by briedis Quote Link to comment Share on other sites More sharing options...
homers Posted September 18, 2009 Author Report Share Posted September 18, 2009 Paldies briedi :) Quote Link to comment Share on other sites More sharing options...
codez Posted September 18, 2009 Report Share Posted September 18, 2009 Man gan šķiet, ka labāk ir vienkārši user tabulā lauks last_seen Pie lietotāj darbībām taisam UPDATE users SET last_seen=unix_timestamp() WHERE id=$id Bet online lietotājus selectojam: SELECT * FROM users WHERE last_seen>unix_timestamp()-180; vai skaitu SELECT count(*) FROM users WHERE last_seen>unix_timestamp()-180; Quote Link to comment Share on other sites More sharing options...
Kemito Posted September 18, 2009 Report Share Posted September 18, 2009 Uztaisi tabulā kollonu redzets like that! un pakalusi Codez padomam, palasi gooooogle par Timestamp and būs viss kārtībā! Quote Link to comment Share on other sites More sharing options...
mounkuls Posted September 18, 2009 Report Share Posted September 18, 2009 Abi labi. Taču ja users tabulā fiksē pēdējo aktivitātes laiku, to der izmantot. Es parasti taisu onlain tabulu uid|action|time Tad vēl ir funkcijas kas ieliek tabulā un kas izvelk. Faktiski briedis variants. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.