[WEBDEV Room!] แชร์ทุกเรื่อง ถ้าเป็นเว็บ!

เริ่มโดย EThaiZone, 05 สิงหาคม 2008, 22:39:50

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

siamman

อยากได้แนวคิดสำหรับเก็บเพจวิวแบบนับไอพีครับ ปัจจุบันผมเขียนเก็บในดาต้าเบส ซึ่งคิดว่ามันน่าจะหนักดาต้าเบสพอสมควรเพราะต้องเก็บ ip ทุก ip เลยอยากหาวิธีที่เบากว่านี้ครับ ไม่ทราบว่าท่านอื่นเก็บกันลักษณะใหนบ้าง

ball6847

เป็นผมคงแยกตารางเก็บ ip และข้อมูลอื่นที่พอจะเชื่อต่อกะ ip ออกมาตะหาก คงจะใช้ชื่อตารางว่า visitor มั้ง แล้วตารางหลักก็ไม่เก็บ ip แต่จะอ้างอิง visitor_id จากอีกตาราง ซึ่งตารางนั้นอาจจะเก็บ ip หรือประเทศ หรืออื่นๆ ทีนี้พอมีเพจวิวซ้ำๆ จะได้ไม่ต้องใส่ ip หรือ ประเทศซ้ำๆไปทุก record ตารางหลักก็เก็บข้อมูลอื่นๆ เช่นพวกเวลา useragent หรือ page ประมาณนี้อ่ะมั้ง
We use Ubuntu.

[direct=http://ng-seo.sourcelab.xyz/]AngularJS SEO Experimental[/direct]

iPhoenix

อ้างถึงจาก: siamman ใน 17 กันยายน 2008, 18:24:59
อยากได้แนวคิดสำหรับเก็บเพจวิวแบบนับไอพีครับ ปัจจุบันผมเขียนเก็บในดาต้าเบส ซึ่งคิดว่ามันน่าจะหนักดาต้าเบสพอสมควรเพราะต้องเก็บ ip ทุก ip เลยอยากหาวิธีที่เบากว่านี้ครับ ไม่ทราบว่าท่านอื่นเก็บกันลักษณะใหนบ้าง

เก็บเป็น .txt ไฟล์ไม่ได้เหรอครับ เวลามีการเปิดเพจวิวแล้วก็เอา ip ไปเที่ยบใน .txt ไฟล์ ถ้ามันมีซ้ำก็ไม่ต้องเขียนลง แต่ไม่ซ้ำก็เขียนลงไปในไฟล์ พอจะนับก็นับเป็นแถวใน .txt เอาครับ เก็บเป็นแบบนี้อะ

ip1
ip2
ip3
...
ipn

แต่ไม่รู้มันจะมีปัญหาอื่นอีกหรือป่าวครับ
ผิดถูกยังไงเซียนช่วยแก้ไขให้ด้วยนะครับ

:) :) :)

jiw

ไม่เคยลองเขียนแบบ คุณ iPhoenix

แต่ถ้าผมคิดได้ ก็ทำแบบคุณ ball6847 อะ


icez

โครงสร้างตาราง

create table pageview (
ip varchar(15) not null default '',
counter int not null default '0',
primary key (ip)
) engine=MyISAM



query ในหน้าเว็บ

insert into pageview(ip,counter) values('123.45.67.89', 1) on duplicate key update counter = counter +1


จบครับ
[direct=http://www.thzhost.com/]THZHost[/direct] SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ

ball6847

โอ้ว กำ สุดยอด จบจิงๆ ท่านไอซ์รับประทานฐานข้อมูลเป็นอาหารหรืออย่างไร เจ๋งจิงๆ

พลังน้ำใจ+1
We use Ubuntu.

[direct=http://ng-seo.sourcelab.xyz/]AngularJS SEO Experimental[/direct]

siamman

อ้างถึงจาก: icez ใน 17 กันยายน 2008, 23:30:37
โครงสร้างตาราง

create table pageview (
ip varchar(15) not null default '',
counter int not null default '0',
primary key (ip)
) engine=MyISAM



query ในหน้าเว็บ

insert into pageview(ip,counter) values('123.45.67.89', 1) on duplicate key update counter = counter +1


จบครับ

:D ขอบคุณมากมายครับ จบจริงๆ

siamman

อ้างถึงจาก: icez ใน 17 กันยายน 2008, 23:30:37
insert into pageview(ip,counter) values('123.45.67.89', 1) on duplicate key update counter = counter +1


:'( ปกติผมดึงมาเช็คnum_rowก่อนว่าซ้ำมั้ยค่อยอัปเดท แต่หลังจากนี้คงต้องคิดใหม่ทำไหม่แล้ว ขอบคุณคุณไอซ์ อะเกนครับ :'(

oldgame

ขอบคุณครับพี่ icez

ได้เวลาปรับระบบ counter อีกแล้ว  :-[

ชอบกระทู้นี้อย่างจัง  :'(
[direct=http://www.pwgamer.com]โปรเกมส์[/direct] luna-z blog ส่วนตัวรวมโปร
[direct=http://www.kaichonasean.com]ไก่ชน[/direct] เว็บไซต์รวมซุ้มไก่ชน
[direct=http://www.boybdream.com]รับออกแบบเว็บไซต์[/direct]  รับออกแบบเว็บไซต์
[direct=http://www.2winweb.com]รับทำเว็บ[/direct]  รับออกแบบเว็บไซต์
[direct=http://www.pralanna.com]พระเครื่อง[/direct] พระล้านนา รวมพระเครื่องเมืองเหนือ

EThaiZone

อ้างถึงจาก: siamman ใน 17 กันยายน 2008, 18:24:59
อยากได้แนวคิดสำหรับเก็บเพจวิวแบบนับไอพีครับ ปัจจุบันผมเขียนเก็บในดาต้าเบส ซึ่งคิดว่ามันน่าจะหนักดาต้าเบสพอสมควรเพราะต้องเก็บ ip ทุก ip เลยอยากหาวิธีที่เบากว่านี้ครับ ไม่ทราบว่าท่านอื่นเก็บกันลักษณะใหนบ้าง

ผมเข้าใจว่าเหมือนแบบ ziddu ก็คือจำนวนนับดาว์นโหลด uip
และันับแยกกันหลายตัว ใช่ปะ ?

เก็บรายการ ip เข้า apc ในรูป array

แล้วถ้ามีคนเข้าใหม่ ไอพีไม่ตรงกับ array ที่มี
ก็ค่อยจัดการนับ + เข้าส่วนที่เรานับ

แล้วถ้าแนวคิดนับ uip ทุกๆ วัน
ทุกๆ เที่ยงคืนก็ค่อยเคลียร์ความจำใน apc ทิ้ง (cron สั่งทับตัวแปรว่างลงไปก็ได้)

ผมพูดแบบกรณีเรามีเซิร์ฟเองอะน่ะ  :P
แต่ต้องอัดแรมเพิ่มหน่อยนะ

zo501

รบกวนครับ[php] คือถ้าเรามีการดึงข้อมูลมาใส่ในตัวแปร แล้วในข้อมูลนั้นมีตัวแปรพิเศษอย่างเช่น $ อะครับ เราจะต้อง convert ข้อมูลตรงนี้อย่างไรให้สามารถแสดงผลลัพธ์ของข้อมูลได้ทั้งหมด

เช่น ผมดึงข้อมูลมา aabb$aabb-$11 แล้วจะต้องทำอย่างไรเมื่อเวลา echo แล้วข้อมูลจะแสดงเป็น aabb$aabb-$11 เหมือนเดิมครับ

:-* :-* :-* :-*

ขอบคุณครับ

EThaiZone


หมวยแว๊น

ขอฝากตัวเป็นศิษย์โจ้โจ้ซังด้วยนะ เทอมหน้าอาจจะได้มาฝึกยุทธกะท่าน  :-[

zo501

อ้างถึงจาก: EThaiZone ใน 18 กันยายน 2008, 09:01:15
echo "aabb\$aabb-\$11";

echo 'aabb$aabb-$11';


:)

เออ คือไม่ใช่อะครับ เราดึงข้อมูลมาจากที่อื่น อะครับ แล้วมันมีตัว $ ติดมาด้วยครับ เวลา echo แล้วมันมีปัญหาอะครับ

พอทราบไหมครับว่ามี fn อะไรที่แก้ไขตรงนี้บ้าง ลองใช้ htmlspecialchars ก็ยังแก้ไม่ได้ หรือว่าต้องเขียน fn ขึ้นมาเองอะครับ

ขอบคุณครับ

EThaiZone

^
^
ต้องยกตัวอย่างมาสักหน้าครับ
ถ้าหมายถึงการดึงข้อมูลจากเว็บอื่นมาด้วย function อะน่ะ

ผมไม่สามารถแก้ process กับตอบ output ได้
ถ้าไม่รู้ input ซะก่อนอะน่ะ

:P

zo501

อ้างถึงจาก: EThaiZone ใน 18 กันยายน 2008, 12:07:34
^
^
ต้องยกตัวอย่างมาสักหน้าครับ
ถ้าหมายถึงการดึงข้อมูลจากเว็บอื่นมาด้วย function อะน่ะ

ผมไม่สามารถแก้ process กับตอบ output ได้
ถ้าไม่รู้ input ซะก่อนอะน่ะ

:P


ยกตัวอย่างนะครับ ผมไปดึง feed จาก amazon มาครับ แล้วตรงข้อมูล ในส่วนของ titile product อะครับ มันเป็น

title =>  Electronic Items $0-$200 - Repair

แล้วพอเวลา echo อะครับ มันแสดง Electronic Items -0 - Repair อะไรประมาณนี้อะครับ

คือว่าเราจะแก้ไขเวลาเรา echo แล้วมันขึ้นว่า Electronic Items -0 - Repair ให้แสดงเป็น Electronic Items $0-$200 - Repair ได้โดยใช้ fn อะไรหรือครับ


EThaiZone

แปลกนะ ถ้าหมายถึงแบบนี้ ผมไม่เคยเจอ แสดงหมดนะ
ยิ่งกะ feed amazon นี้ ผมเล่นจนไม่รู้จะเล่นยังไงแล้ว
(ดึง xml แปลงเป็น array แล้วค่อยมาใช้งาน)

ผมว่าน่าเป็นโค้ดของคุณหรือเปล่าที่บังเอิญมีเขียนไปแปลง $ เป็นช่องว่างอะ
:P

จริงๆ ปัญหาเรื่อง $ กับ php
มันจะมีแค่ตอน echo กับค่าที่เขียนลง php
แล้วมันสับสนว่าเป็นตัวแปรหรือไม่

มีแค่กรณีนี้เองครับ  :P

zo501

อ้างถึงจาก: EThaiZone ใน 18 กันยายน 2008, 14:35:14
แปลกนะ ถ้าหมายถึงแบบนี้ ผมไม่เคยเจอ แสดงหมดนะ
ยิ่งกะ feed amazon นี้ ผมเล่นจนไม่รู้จะเล่นยังไงแล้ว
(ดึง xml แปลงเป็น array แล้วค่อยมาใช้งาน)

ผมว่าน่าเป็นโค้ดของคุณหรือเปล่าที่บังเอิญมีเขียนไปแปลง $ เป็นช่องว่างอะ
:P

จริงๆ ปัญหาเรื่อง $ กับ php
มันจะมีแค่ตอน echo กับค่าที่เขียนลง php
แล้วมันสับสนว่าเป็นตัวแปรหรือไม่

มีแค่กรณีนี้เองครับ  :P

OK. ครับ ผมแก้ได้แล้วครับ โง่+ขี้เกียจหาข้อมูลเอง เลยต้องรบกวนท่านให้เหนื่อยปล่าวๆ ใช้ fn str_replace ครับ

$data = str_replace('$', '\$', $data);

ขอบคุณมากๆครับ +1

EThaiZone

แบบนั้นหายเหรอครับ สงสัยต้องเก็บไว้เป็นกรณีศึกษา  :P
ปกติผมไม่เคยต้องทำแบบนั้น คือส่วนมากมันจะไม่มีปัญหาตรงนี้นะครับ  :P

EThaiZone

#239
รวมฟังค์ชั่นใช้งานบ่อยๆ Update 18/9/51

[linkpr]http://th.php.net/manual/en/function.array.php[/linkpr] - สร้างอาเรย์
[linkpr]http://th.php.net/range[/linkpr] - สร้างอาเรย์ด้วยขอบเขตที่กำหนดไว้
[linkpr]http://th.php.net/array_merge[/linkpr] - ใช้รวมค่าอาเรย์มากกว่าหนึ่ง
[linkpr]http://th.php.net/array_rand[/linkpr] - สุ่มค่าในอาเรย์ คืนค่าเป็น index ของ array
[linkpr]http://th.php.net/array_search[/linkpr] - หาค่าในอาเรย์ คืนค่าเป็น boolean
[linkpr]http://th.php.net/array_unique[/linkpr] - กรองค่าซ้ำในอาเรย์ทิ้ง
[linkpr]http://th.php.net/explode[/linkpr] - แยก string เป็น array
[linkpr]http://th.php.net/implode[/linkpr] - รวม array เป็น string

[linkpr]http://th.php.net/for[/linkpr] - วนลูปตามจำนวนรอบนับ
[linkpr]http://th.php.net/foreach[/linkpr] - วนลูปตามจำนวนในอาเรย์
[linkpr]http://th.php.net/while[/linkpr] - วนลูปจนกว่าเงื่อนไขจะเป็นเท็จ
[linkpr]http://th.php.net/manual/en/control-structures.do.while.php[/linkpr] - ทำงานจนกว่าเงื่อนไขจะเป็นเท็จ

[linkpr]http://th.php.net/str_replace[/linkpr] - แทนที่คำทั่วไป
[linkpr]http://th.php.net/strtr[/linkpr] - แทนที่คำโดยอ้างอิงจากชุด array
[linkpr]http://th.php.net/preg_replace[/linkpr] - แทนที่คำด้วย Regex
[linkpr]http://th.php.net/preg_match[/linkpr] - ตรวจหาคำด้วย pattern ที่เขียนด้วย regex

[linkpr]http://th.php.net/include[/linkpr] - เรียกใช้ชุดคำสั่ง php มาทำงาน
[linkpr]http://th.php.net/require[/linkpr] - เรียกใช้ชุดคำสั่ง php มาทำงาน
[linkpr]http://th.php.net/file_get_contents[/linkpr] - เรียกเนื้อหาของ content มาแสดง (เหมาะกับใช้ภายนอก)
[linkpr]http://th.php.net/curl[/linkpr] - (กลุ่มชุดคำสั่ง) เปิดการติดต่อกับเว็บภายนอก (เหมาะใช้แทน file_get_contents)
[linkpr]http://th.php.net/manual/en/function.mail.php[/linkpr] - ใช้ส่งอีเมล์
[linkpr]http://th.php.net/readfile[/linkpr] - อ่าน source ของไฟล์ (เหมาะกับใช้ภายใน)
[linkpr]http://th.php.net/file_put_contents[/linkpr] - (PHP5) ใช้เขียนไฟล์
[linkpr]http://th.php.net/serialize[/linkpr] - แปลงค่าตัวแปรกลับเป็น string สำหรับจัดเ้ก็บบันทึกลงไฟล์หรือ db
[linkpr]http://th.php.net/unserialize[/linkpr] - แปลงค่า string ที่ serialize กลับเป็นตัวแปร

[linkpr]http://th.php.net/echo[/linkpr] - แสดงผล
[linkpr]http://th.php.net/printf[/linkpr] - แสดงผลโดยอ้างอิงจากโค้ดคุมการแสดงผล
[linkpr]http://th.php.net/sprintf[/linkpr] - คืนค่าโดยไม่แสดงผล อ้างอิงจากโค้ดคุมการแสดงผล
[linkpr]http://th.php.net/print_r[/linkpr] - แสดงค่า array (ถ้าอยากให้คืนค่า ให้กำหนด parameter ตัวที่ 2 เป็น true)
[linkpr]http://th.php.net/var_dump[/linkpr] - แสดงข้อมูลของตัวแปร
[linkpr]http://th.php.net/phpinfo[/linkpr] - แสดงข้อมูลของ php

[linkpr]http://th.php.net/trim[/linkpr] - กำจัดช่องว่างก่อนและหลังของ string
[linkpr]http://th.php.net/strtolower[/linkpr] - แปลงทุกอักษรเป็นพิมพ์เล็ก
[linkpr]http://th.php.net/strtoupwer[/linkpr] - แปลงทุกอักษรเป็นพิมพ์ใหญ่
[linkpr]http://th.php.net/strpos[/linkpr] - หาตำแหน่งของอักษร คืนค่าเป็นตำแหน่ง len
[linkpr]http://th.php.net/substr[/linkpr] - ตัดคำโดยอ้างอิงตำแหน่ง len
[linkpr]http://th.php.net/substr_replace[/linkpr] - แทนที่คำโดยอ้างอิงตำแหน่ง len