Jump to content
php.lv forumi

counter


anonīms

Recommended Posts

ja izmanto DB, tad vari dariit taa:

izveidot tabulinu ar laukiem ID|IP|datums_laiks|

un vedot sessiju kur:

parbaudi vai apmekletajs ==true vai nee ja nav tad ieraksti DB, IP un laiku, pec tam sesiijaa ieliec true ...

talak jau nav seviskjas problema dabuut apmekletaju skaitu, gan par konreto dienu gan stundu utt..

---

Neaizmirsti ka IP Db glabaa kaa INT

-----------

P.S. Hostskriptos ir N-tie skripti kas ljauj uzskaitiit apmekletajus , gan pavisam vienkarshi gan sarezgjiiti ...

Link to comment
Share on other sites

Interneta adrese IPv4 formā aizņem precīzi 4 baitus - tieši tik cik INT lauks nodrošina (pariezāk gan būtu lietot UNSIGNED INT). Punkti ir tikai cilvēkam "draudzīgajā" pierakstā, kur katrs baits ir pierakstīts decimālajā sistēmā, un šie baiti atdalīti ar punktiem.

Labums no tā visa ir, ka INT aizņems mazāk vietas datubāzē, kā arī tu varēsi lietot salīdzināšanas operatorus starp tiem, piemēram < vai >, kā arī kārtošanu normālā kārtībā. Tajā "draudzīgajā" pierakstā tu to nevarēsi.

Link to comment
Share on other sites

anonīms --> IP adreses Visur glabaajas INT formataa...

Db un PHP pat ir specialas f-jas konvertesanai

INET_ATON() parversanai IP uz INT

$apm_ip=$_SERVER['REMOTE_ADDR'];

INSERT INTO conteris SET  ip =INET_ATON('$apm_ip')

un nolasiisaina INET_NTOA() no INT uz IP

SELECT  INET_NTOA(ip) AS gatavs_ip FROM conteris

Link to comment
Share on other sites

a kuru tipu labāk būtu izmantot pie datuma?

Datubaazes izmanto Konkretas DB datua tipu

Mysql tie ir 3 veidi

Date --> tikai datums

Time --> pulkstenja laiks

DateTime --> abi kopaa..

Izmantojot konkretaas DB datuma laukus iegust sadus plusus

1. Ljoti daudz gatavu (iebuvetu) f-ju datuma atlasiishanai( pec dienas menesa gada, stundas , minutes, sekundes), iespeja paprasiit visus ierakstus kas Vecaki/ jaunaki par noteikto laiku (nav nekas jarekjina ....

2. f-jas datuma formatesana , liidzigi kaa PHP data() ( princips ir gandriiz identisks)

3. izvairamies no kljudas ja jasaglabaa datums ka vecaks par 1970.01.01 ( teiksim dzimsanas datumus)

4. ieraksta laiku var piefikseet arii ar NOW() --> ieraksta izdarisanas laiks

---

galvenaa, un viena no noteicosam, ir iespeja izvairiities no UnixTimestamp kljudas datumiem ap 1970.01.01 , un vecakiem

faktiski ar Unix timestamp nevaresi saglabaat 1969.12.31 :23:59:59 , un attieciigi 2 sek velaak, Ljoti liels procents ka var notiek kluuda...

---

Edited by Grey_Wolf
Link to comment
Share on other sites

Tātad mēģinu ar datetime.

 

Iesākums izskatās tā

 

$apmekletaja_ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$parbaudam_vai_vins_sodien_ir_bijis = mysql_query("SELECT ip FROM floorball_online_today WHERE ip = '$apmekletaja_ip' AND datums = 
echo date('Y-m-d, H:i:s'); // Kā piemērs pašreizējam laikam.

Tagad jautājums.

Kā uzlikt

WHERE datums(diena_menesis_gads) == ".date('Y-m-d')."

? // Lai viņš ņem tikai tos, kas ir šajā dienā

Link to comment
Share on other sites

kaapec tu IP glabasaina neizmanto INT ?? tas ir Krietni atraks nekaa Warchar lauks

---

Es tachu pat uzrakstiju piemerus kaa Ievadiit un kaa izvilkt ..

Edit: taas SQL f-jas jau var izmantot ne tikai Tuulit aiz SLECT bet arii saliidzinasanai ..

SELECT count(*) FROM tabulis WHERE ip=INET_ATON('$apm_ip') AND YEAR(laiks)='2009' AND MONTH(laiks)='4' AND DAYOFMONTH(laiks)='8'

kur $apm_ip=$_SERVER['REMOTE_ADDR'];

--

Nevar saliidzinat , kaa dari tu, jo neaizmirsti ka ir arii Pulksstenja laiks, ja glabaatu tikai pliku datumu tad varetu ....

--

Piemeraa protams gadus, menesi, datumu nomaini pats, Bet sadi var atlasiit Jepkuru konkreto datumu, vai Piemeram uzzinat cik unikalas IP bijushas konkretaa Dienakts stundaa...

Edited by Grey_Wolf
Link to comment
Share on other sites

mysql_query("insert into floorball_online_today (ip, datums) VALUES ('".INET_ATON($apmekletaja_ip)."', '".date('Y-m-d H:i:s')."')");

: Call to undefined function: inet_aton()

config failā jāmaina kaut ko? :\

btw, par NOW() // Neesmu viņu nekad izmantojis

mysql_query("insert into floorball_online_today (ip, datums) VALUES ('".INET_ATON($apmekletaja_ip)."', '".NOW()."')");

arī par undefined function bļauj.

Edited by anonīms
Link to comment
Share on other sites

anonīms --> tu lasiit maki ???

Es nevienaa briidii nesmu teicis kaa taa ir PHP f-ja !!!!

jarakstaa tieshi taa kaa uzrakstiju

INET_ATON('$apm_ip')

tas pats attiecas uz NOW()

Tas ir SQL f-jas attieciigi, NEVAJAG vinjas iznes arpus pedinjam

Edited by Grey_Wolf
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...