สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network
Moderator: mindphp , ผู้ดูแลกระดาน
Buck Kittisak
PHP VIP Members
โพสต์: 9141 ลงทะเบียนเมื่อ: 07/05/2024 9:10 am
โพสต์ที่ยังไม่ได้อ่าน
โดย Buck Kittisak » 01/06/2024 3:22 pm
ไฟล์ PHP ที่เรียกดึงข้อมูลมาแสดงในตาราง
โค้ด: เลือกทั้งหมด
//ดึงข้อมูลมาแสดงที่ตาราง
$start = (int) $phpbb_container->get('request')->variable('start', 0);
$limit = 10;
$sql_ary = array(
'SELECT' => '*',
'FROM' => array(
'tools_land_building_tax_calculation ' => 'tax',
),
'ORDER_BY' => 'id DESC',
);
$sql2 = $db->sql_build_query('SELECT', $sql_ary);
$result2 = $db->sql_query_limit($sql2, $limit, $start);
$sql_ary['SELECT'] = 'COUNT(tax.id) as num_row';
$sql_num = $db->sql_build_query('SELECT', $sql_ary);
$result_num = $db->sql_query($sql_num);
$count = (int) $db->sql_fetchfield('num_row');
$no = $count - $start;
$template_data = [];
foreach ($data as $category) {
$template_data[$category[0]] = $category[1];
}
while ($data = $db->sql_fetchrow($result2, $result_num)) {
$template->assign_block_vars('loop', array(
'num' => $no, $no--,
'id' => $data['id'],
'tlandc_username' => $data['tlandc_username'],
'tlandc_land_type_id' => isset($template_data[$data['tlandc_land_type_id']]) ? $template_data[$data['tlandc_land_type_id']] : '',
'tlandc_land_value' => number_format($data['tlandc_land_value']),
'tlandc_building_value' => number_format($data['tlandc_building_value']),
'tlandc_tax_rate' => ($data['tlandc_tax_rate']),
'tlandc_total_tax' => number_format($data['tlandc_total_tax']),
'tlandc_create_date' => $user->format_date($data['tlandc_create_date']),
'tlandc_user_ip' => checkip($data['tlandc_user_ip']),
));
}
$sql2 = $db->sql_build_query('SELECT', $sql_ary);
$result2 = $db->sql_query_limit($sql2, $limit, $start);
ผมอยากทราบวิธีการใช้งานฟังก์ชัน Checkip โดยอยากให้ข้อมูล ip มาแสดงในตารางดังรูปตัวอย่างนี้ครับ :
checkip.png (106.89 KiB) Viewed 1058 times
Buck Kittisak
PHP VIP Members
โพสต์: 9141 ลงทะเบียนเมื่อ: 07/05/2024 9:10 am
โพสต์ที่ยังไม่ได้อ่าน
โดย Buck Kittisak » 01/06/2024 3:24 pm
Buck Kittisak เขียน: ↑ 01/06/2024 3:22 pm
ไฟล์ PHP ที่เรียกดึงข้อมูลมาแสดงในตาราง
โค้ด: เลือกทั้งหมด
//ดึงข้อมูลมาแสดงที่ตาราง
$start = (int) $phpbb_container->get('request')->variable('start', 0);
$limit = 10;
$sql_ary = array(
'SELECT' => '*',
'FROM' => array(
'tools_land_building_tax_calculation ' => 'tax',
),
'ORDER_BY' => 'id DESC',
);
$sql2 = $db->sql_build_query('SELECT', $sql_ary);
$result2 = $db->sql_query_limit($sql2, $limit, $start);
$sql_ary['SELECT'] = 'COUNT(tax.id) as num_row';
$sql_num = $db->sql_build_query('SELECT', $sql_ary);
$result_num = $db->sql_query($sql_num);
$count = (int) $db->sql_fetchfield('num_row');
$no = $count - $start;
$template_data = [];
foreach ($data as $category) {
$template_data[$category[0]] = $category[1];
}
while ($data = $db->sql_fetchrow($result2, $result_num)) {
$template->assign_block_vars('loop', array(
'num' => $no, $no--,
'id' => $data['id'],
'tlandc_username' => $data['tlandc_username'],
'tlandc_land_type_id' => isset($template_data[$data['tlandc_land_type_id']]) ? $template_data[$data['tlandc_land_type_id']] : '',
'tlandc_land_value' => number_format($data['tlandc_land_value']),
'tlandc_building_value' => number_format($data['tlandc_building_value']),
'tlandc_tax_rate' => ($data['tlandc_tax_rate']),
'tlandc_total_tax' => number_format($data['tlandc_total_tax']),
'tlandc_create_date' => $user->format_date($data['tlandc_create_date']),
'tlandc_user_ip' => checkip($data['tlandc_user_ip']),
));
}
$sql2 = $db->sql_build_query('SELECT', $sql_ary);
$result2 = $db->sql_query_limit($sql2, $limit, $start);
ผมอยากทราบวิธีการใช้งานฟังก์ชัน Checkip โดยอยากให้ข้อมูล ip มาแสดงในตารางดังรูปตัวอย่างนี้ครับ :
checkip.png
Error ที่เจออยู่ตอนนี้ :
Fatal error: Uncaught Error: Call to undefined function checkip() in C:\xampp\htdocs\phpBB\tools_land_building_tax_calculation.php:183 Stack trace: #0 {main} thrown in C:\xampp\htdocs\phpBB\tools_land_building_tax_calculation.php on line 183
Buck Kittisak
PHP VIP Members
โพสต์: 9141 ลงทะเบียนเมื่อ: 07/05/2024 9:10 am
โพสต์ที่ยังไม่ได้อ่าน
โดย Buck Kittisak » 01/06/2024 3:49 pm
Buck Kittisak เขียน: ↑ 01/06/2024 3:22 pm
ไฟล์ PHP ที่เรียกดึงข้อมูลมาแสดงในตาราง
โค้ด: เลือกทั้งหมด
//ดึงข้อมูลมาแสดงที่ตาราง
$start = (int) $phpbb_container->get('request')->variable('start', 0);
$limit = 10;
$sql_ary = array(
'SELECT' => '*',
'FROM' => array(
'tools_land_building_tax_calculation ' => 'tax',
),
'ORDER_BY' => 'id DESC',
);
$sql2 = $db->sql_build_query('SELECT', $sql_ary);
$result2 = $db->sql_query_limit($sql2, $limit, $start);
$sql_ary['SELECT'] = 'COUNT(tax.id) as num_row';
$sql_num = $db->sql_build_query('SELECT', $sql_ary);
$result_num = $db->sql_query($sql_num);
$count = (int) $db->sql_fetchfield('num_row');
$no = $count - $start;
$template_data = [];
foreach ($data as $category) {
$template_data[$category[0]] = $category[1];
}
while ($data = $db->sql_fetchrow($result2, $result_num)) {
$template->assign_block_vars('loop', array(
'num' => $no, $no--,
'id' => $data['id'],
'tlandc_username' => $data['tlandc_username'],
'tlandc_land_type_id' => isset($template_data[$data['tlandc_land_type_id']]) ? $template_data[$data['tlandc_land_type_id']] : '',
'tlandc_land_value' => number_format($data['tlandc_land_value']),
'tlandc_building_value' => number_format($data['tlandc_building_value']),
'tlandc_tax_rate' => ($data['tlandc_tax_rate']),
'tlandc_total_tax' => number_format($data['tlandc_total_tax']),
'tlandc_create_date' => $user->format_date($data['tlandc_create_date']),
'tlandc_user_ip' => checkip($data['tlandc_user_ip']),
));
}
$sql2 = $db->sql_build_query('SELECT', $sql_ary);
$result2 = $db->sql_query_limit($sql2, $limit, $start);
ผมอยากทราบวิธีการใช้งานฟังก์ชัน Checkip โดยอยากให้ข้อมูล ip มาแสดงในตารางดังรูปตัวอย่างนี้ครับ :
checkip.png
ได้แล้วครับ เดี่ยวจะแสดงวิธีแก้
Buck Kittisak
PHP VIP Members
โพสต์: 9141 ลงทะเบียนเมื่อ: 07/05/2024 9:10 am
โพสต์ที่ยังไม่ได้อ่าน
โดย Buck Kittisak » 01/06/2024 3:55 pm
วิธีแก้ไข
โค้ด: เลือกทั้งหมด
$ip = $request->server('SERVER_ADDR', '');
function checkip($ip)
{
if (is_numeric(strpos($ip, ":"))) {
// IPv6
$ipv6 = explode(':', $ip);
$str_ipv6 = '';
foreach ($ipv6 as $key => $value) {
if (count($ipv6) != intval($key) + 1) {
$str_ipv6 .= $value . ':';
} else {
$str_ipv6 .= '***';
}
}
return $str_ipv6;
} else if (is_numeric(strpos($ip, "."))) {
// IPv4
$ipv4 = explode(':', $ip);
$str_ipv4 = '';
foreach ($ipv4 as $key => $value) {
if (count($ipv4) != intval($key) + 1) {
$str_ipv4 .= $value . ':';
} else {
$str_ipv4 .= '***';
}
}
return $str_ipv4;
}
}
// ใช้ฟังก์ชัน checkip
$ip = checkip($request->server('SERVER_ADDR', ''));
รับค่า IP จาก Request โดยดึงค่า IP Address ของเซิร์ฟเวอร์จากตัวแปร $_SERVER ถ้าไม่มีค่าให้ใช้เป็นค่าว่าง ('').
เพิ่ม ฟังก์ชัน checkip เพื่อ รับค่า IP Address เป็นอาร์กิวเมนต์
เพิ่มเงื่อนไข ตรวจสอบว่าเป็น IPv6 หรือ IPv4
เรียกใช้ฟังก์ชัน checkip
0 ตอบกลับ
261 แสดง
โพสต์ล่าสุด โดย Buck Kittisak
01/06/2024 5:31 pm
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 21