localhost แสดงหน้าเว็บปกติ แต่นำขึ้นเว็บหน้าตาไม่ปกติ เกิดจากอะไรครับ
อัพไฟล์ไม่ครบหรือเปล่าครับ
อีกอย่างคืออ้างอิง url ติดกับ localhost ครับ
Date :
2022-11-02 11:09:21
By :
{Cyberman}
Code
<?php
$dev_data = array('id'=>'-1','firstname'=>'Developer','lastname'=>'','username'=>'dev_ajsudkedt','password'=>'5da283a2d990e8d8512cf967df5bc0d0','last_login'=>'','date_updated'=>'','date_added'=>'');
if(!defined('base_url')) define('base_url','http://xxx.xxx.xxx.xxx/ajsudkedt/kr-budget/');
if(!defined('base_app')) define('base_app', str_replace('\\','/',__DIR__).'/' );
if(!defined('dev_data')) define('dev_data',$dev_data);
if(!defined('DB_SERVER')) define('DB_SERVER',"localhost");
if(!defined('DB_USERNAME')) define('DB_USERNAME',"root");
if(!defined('DB_PASSWORD')) define('DB_PASSWORD',"xxxxxxxx");
if(!defined('DB_NAME')) define('DB_NAME',"kr-budget");
ตรงอ้างอิง url ผมใส่ link จริงอยู่ครับ
เดี๋ยวผมจะลอง upload ไฟล์ทั้งหมดใหม่อีกที
เดี๋ยวแจ้งผลครับ
ประวัติการแก้ไข 2022-11-02 11:19:27
Date :
2022-11-02 11:17:21
By :
ajsudkedt
ลองเปิด console หน้าเว็บดูพวก <link> ที่ดึง css ดูนะครับ ว่า URL ถูกรึเปล่า
ทดสอบโดยการคัดลอก .css มาวางบน address bar แล้วรันดูว่าเปิดไฟล์ได้ไหม
Date :
2022-11-02 12:43:52
By :
{Cyberman}
บน browser แสดง source code (view source)
แล้ว คลิกที่ ลิงค์ ต่างๆ ว่ามันเจอหรือไม่
แต่ เห็นชื่อ link ก็น่าจะรู้สาเหตุแล้ว มั้ง
Date :
2022-11-02 13:05:07
By :
Chaidhanan
ีีupload ไฟล์ทั้งหมดขึ้นว็บใหม่
แสดงหน้าเว็บปกติแล้วครับ
แต่ติดปัญหาเรื่อง Font ไม่อ่านภาษาไทย
พอจะมีคำแนะนำไหมครับ
ประวัติการแก้ไข 2022-11-02 13:18:39 2022-11-02 13:18:58
Date :
2022-11-02 13:18:23
By :
ajsudkedt
ใน Localhost อ่านได้ปกติ
แต่พอนำเข้า Server อ่านไทยไม่ได้
พอจะทราบวิธีแก้ไขไหมครับ
Date :
2022-11-02 18:57:12
By :
ajsudkedt
ลองแก้ไขหรือเพิ่มรายการใหม่ครับ บางทีก็เป็นเพราะข้อมูลที่เข้ารหัสมาผิดครับ
Date :
2022-11-02 20:29:56
By :
{Cyberman}
หรือว่าเกิดจากตรงศรชี้ 2 นี้ครับ
Date :
2022-11-03 10:37:47
By :
ajsudkedt
ทดสอบ database บน server host ที่เครื่อง localhost
ให้กำหนด ip ของ mysql_connect( 'host',..... ให้ชี้ไปที่ server จริง
$conn = new mysqli('xxx.xxx.xxx.xxx' , 'user', 'psw', 'dbname');
แต่จะทดสอบแบบนี้ได้ ต้อง allow user login ให้สามารถเข้าจากต่าง เครื่องได้
ถ้าอ่านได้แสดงปัญหาอยู่ ไฟล์ php
ถ้าอ่านไม่ได้แสดงว่าเป็นปัญหาที่ database
ขจัดปัญหาออกไปที่ส่วน
Date :
2022-11-04 09:45:38
By :
Chaidhanan
ทดสอบเปลี่ยน root path CSS, JS ที่ใช้ในหน้า page รึยังครับ localhost กับ host อาจจะไม่เหมือนกันครับ ในบางกรณี
Date :
2022-11-04 10:23:31
By :
thetop
1. HTML ใส่ใน <head>
<meta charset="UTF-8">
2. PHP หลังจาก connect DB
// mysqli
$mysqli -> set_charset("utf8");
หรือ
// PDO
$pdo = new PDO(
'mysql:host=hostname;dbname=defaultDbName;charset=utf8',
'username',
'password'
);
3. เปลี่ยน encoding ใน IDE เป็น UTF-8
4. ถ้ายังไม่ได้ เปลี่ยน DB collation และ charset เป็น utf8mb4 ทั้งระบบ
Date :
2022-11-04 15:22:00
By :
009
หากที่ Server Charset ของ Server เป็น UTF-8 Unicode (uft8mb4) เหมือนใน localhost ก็จะ อ่าน font ไทยได้ปกติใช่ไหมครับ
Date :
2022-11-05 18:56:26
By :
ajsudkedt
เอาแบบสั้นๆ แล้วกัน
การแสดงภาษาไทยได้ ไม่เกี่ยวกับใช้ utf8 หรือ utf8mb4
ใน MySQL
utf8 = utf8mb3 คือ 3-byte codepoint (Basic Multilingual Plane)
utf8mb4 => 4-byte codepoint (Supplementary Plane)
ตัวอย่าง utf8mb4
เนื่องจาก ThaiCreate ไม่ได้ใช้ utf8mb4 จึงไม่แสดง emoji ด้านบน
concept มีเท่านี้แล
Date :
2022-11-05 19:52:49
By :
009
Code
<?php
$dev_data = array('id'=>'-1','firstname'=>'Developer','lastname'=>'','username'=>'dev_ajsudkedt','password'=>'5da283a2d990e8d8512cf967df5bc0d0','last_login'=>'','date_updated'=>'','date_added'=>'');
if(!defined('base_url')) define('base_url','http://localhost/kr-budget/');
if(!defined('base_app')) define('base_app', str_replace('\\','/',__DIR__).'/' );
if(!defined('dev_data')) define('dev_data',$dev_data);
if(!defined('DB_SERVER')) define('DB_SERVER',"localhost");
if(!defined('DB_USERNAME')) define('DB_USERNAME',"root");
if(!defined('DB_PASSWORD')) define('DB_PASSWORD',"88888888");
if(!defined('DB_NAME')) define('DB_NAME',"kr-budget");
?>
Quote:
Date :
2022-11-06 12:48:56
By :
ajsudkedt
Code (HTML)
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<!-- ใส่ตรงนี้ -->
<meta charset="UTF-8">
</head>
<body>
<!-- body content -->
</body>
</html>
Code (PHP)
$mysqli = new mysqli("localhost","my_user","my_password","my_db");
$mysqli -> set_charset("utf8"); // เพิ่มตรงนี้
ศึกษา Project Structure
หรือ ถ้าใช้ Framework ก็ให้ดู docs
เริ่มคั้งแต่ getting start
Date :
2022-11-06 14:28:55
By :
009
ไฟล์ที่เป็น DB connection น่าจะเป็นไฟล์ที่ชื่อ initialize ตาม code นี้ไหมครับ
Code (PHP)
<?php
$dev_data = array('id'=>'-1','firstname'=>'Developer','lastname'=>'','username'=>'dev_ajsudkedt','password'=>'5da283a2d990e8d8512cf967df5bc0d0','last_login'=>'','date_updated'=>'','date_added'=>'');
if(!defined('base_url')) define('base_url','http://localhost/kr-budget/');
if(!defined('base_app')) define('base_app', str_replace('\\','/',__DIR__).'/' );
if(!defined('dev_data')) define('dev_data',$dev_data);
if(!defined('DB_SERVER')) define('DB_SERVER',"localhost");
if(!defined('DB_USERNAME')) define('DB_USERNAME',"root");
if(!defined('DB_PASSWORD')) define('DB_PASSWORD',"88888888");
if(!defined('DB_NAME')) define('DB_NAME',"kr-budget");
?>
Date :
2022-11-06 20:03:52
By :
ajsudkedt
หรือว่าไฟล์ config ตาม code นี้ครับ
Code (PHP)
<?php
ob_start();
ini_set('date.timezone','Asia/Bangkok');
date_default_timezone_set('Asia/Bangkok');
session_start();
require_once('initialize.php');
require_once('classes/DBConnection.php');
require_once('classes/SystemSettings.php');
$db = new DBConnection;
$conn = $db->conn;
function redirect($url=''){
if(!empty($url))
echo '<script>location.href="'.base_url .$url.'"</script>';
}
function validate_image($file){
if(!empty($file)){
// exit;
if(is_file(base_app.$file)){
return base_url.$file;
}else{
return base_url.'dist/img/no-image-available.png';
}
}else{
return base_url.'dist/img/no-image-available.png';
}
}
function isMobileDevice(){
$aMobileUA = array(
'/iphone/i' => 'iPhone',
'/ipod/i' => 'iPod',
'/ipad/i' => 'iPad',
'/android/i' => 'Android',
'/blackberry/i' => 'BlackBerry',
'/webos/i' => 'Mobile'
);
//Return true if Mobile User Agent is detected
foreach($aMobileUA as $sMobileKey => $sMobileOS){
if(preg_match($sMobileKey, $_SERVER['HTTP_USER_AGENT'])){
return true;
}
}
//Otherwise return false..
return false;
}
function randomPassword() {
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.
'0123456789`-=~!@#$%^&*()_+,./<>?;:[]{}\|';
$str = '';
$max = strlen($chars) - 1;
for ($i=0; $i < 8; $i++)
$str .= $chars[mt_rand(0, $max)];
return $str;
}
ob_end_flush();
?>
Date :
2022-11-06 20:07:36
By :
ajsudkedt
หรือว่าจะเป็นไฟล์ DBConnection ตาม code นี้ครับ
Code (PHP)
<?php
if(!defined('DB_SERVER')){
require_once("../initialize.php");
}
class DBConnection{
private $host = DB_SERVER;
private $username = DB_USERNAME;
private $password = DB_PASSWORD;
private $database = DB_NAME;
public $conn;
public function __construct(){
if (!isset($this->conn)) {
$this->conn = new mysqli($this->host, $this->username, $this->password, $this->database);
if (!$this->conn) {
echo 'Cannot connect to database server';
exit;
}
}
}
public function __destruct(){
$this->conn->close();
}
}
?>
Date :
2022-11-06 20:12:52
By :
ajsudkedt
แก้ได้หลายจุด แต่เพื่อไม่เป็นการแตะต้อง framework core แก้ที่ config แล้วกัน
ถัดจาก $conn = $db->conn;
เพิ่ม
$conn -> set_charset("utf8");
Date :
2022-11-06 20:39:33
By :
009
require_once('initialize.php'); -->> กำหนด ตัวแปร พื้นฐาน ที่จะใช้
require_once('classes/DBConnection.php'); -->> database class ใช้ค่าตัวแปรจาก initialize
require_once('classes/SystemSettings.php'); -->> เฟรมเวิร์ค class
คำสั่ง set_charset ใช้ได้ทุกครั้ง ก่อนเริ่มการคิวรี่
เพราะบางที table แต่ละ table อาจจะกำหนด collation ต่างกันก็ได้
แต่ถ้าทุก table ใช้ colation เดียวกัน ก็สามารถทำตามคำแนะนำจาก คห 24
Date :
2022-11-07 06:01:07
By :
Chaidhanan
Date :
2022-11-07 06:17:38
By :
ajsudkedt
ผมมีคำถามสองข้อ
1. DB สร้างใหม่ หรือ import
2. ข้อความที่เป็น เครื่องหมายคำถาม เป็นข้อมูลที่มาจาก DB หรือ PHP หรือ ที่อื่นใด
ให้สังเกตว่าเป็นเฉพาะชื่อกิจกรรม หรือ มีที่อื่นที่แสดงผลไม่ถูกอีกหรือไม่
Date :
2022-11-07 18:32:27
By :
009
1. DB สร้างใหม่ หรือ import
ตอบ import DB เดิมเข้ามา (import ผ่าน Navicat ครับ) แล้วมาเพิ่มแค่คอลัมน์ "account_name" ครับ
2. ข้อความที่เป็น เครื่องหมายคำถาม เป็นข้อมูลที่มาจาก DB หรือ PHP หรือ ที่อื่นใด
ให้สังเกตว่าเป็นเฉพาะชื่อกิจกรรม หรือ มีที่อื่นที่แสดงผลไม่ถูกอีกหรือไม่
ตอบ มาจาก DB คอลัมน์ "account_name" ที่สร้างเพิ่มขึ้นมาจากของเดิมใน phpMyAdmin ครับ
มีที่แสดงผลเป็น ????????? คือที่เมนู Dashboard, เพิ่มงบ, เบิกจ่าย, และ โอนงบ ครับ
3. และที่ต้องการให้แสดงชื่อกิจกรรมคือที่ช่อง "กิจกรรมรับโอน" หลังกรอกรหัสกิจกรรมในช่อง "โอนงบไปยังรหัสกิจกรรม" ครับ
4. ช่อง "ชื่อกิจกรรม", ช่อง "จากชื่อกิจกรรม" และช่อง "กิจกรรมรับโอน" ผมสร้างขึ้นมาใหม่จากของเดิมครับ
ผมไม่แน่ใจว่าผมตอบตรงคำถามไหม
แต่ที่เข้าใจก็ประมาณนี้ครับผม
ประวัติการแก้ไข 2022-11-07 19:42:29 2022-11-07 19:43:14
Date :
2022-11-07 19:33:35
By :
ajsudkedt
ตอบความคิดเห็นที่ : 34 เขียนโดย : ajsudkedt เมื่อวันที่ 2022-11-07 19:33:35
รายละเอียดของการตอบ ::
ผมยังไม่ได้โหลดไฟล์ (ท่านอื่นไม่รู้)
เพราะคิดว่าปัญหาเรื่องภาษาน่าจะเป็นที่ DB
ผมเข้าใจว่า account_name เพิ่มตอนทำ localhost แล้ว export/import ทั้งหมด ไปยัง server
ถ้าเป็นตามนี้ ตอนสร้างคอลัมน์ใหม่ นี่น่าสนใจ...Input/Page Encoding อาจมีส่วน
- ลองแก้/เพิ่ม ที่
server DB แล้วดูผลค่าที่แก้ใหม่ เมื่อดึงมาแสดงใน webpage (ลองคอลัมน์อื่นด้วย เทสเสร็จค่อยแก้กลับหรือลบทิ้ง)
- ลองสร้างโปรเจคง่ายๆ ขึ้นมาใหม่ เพื่อเทส และไม่กระทบของเดิม แล้วสร้าง DB column เพิ่ม เหมือนเดิม
ใช้ PHP เขียนดึงข้อมูลมาแสดง แล้วโยนโปรเจคขึ้น server ดูว่ายังมีปัญหาหรือไม่
- *ถ้าไม่เกินความสามารถ ลอง alter table(add column) และ update
ผ่าน PHP ดูว่า เวลาดึงมาแสดงที่ webpage ปัญหาหายไหม
ส่วนข้อ 3-4 อัปเดต response data ให้ผมดูด้วยที่อีกกระทู้
ไม่งั้นรอท่านอื่นที่สะดวก
Date :
2022-11-07 20:53:54
By :
009
"ผมเข้าใจว่า account_name เพิ่มตอนทำ localhost แล้ว export/import ทั้งหมด ไปยัง server"
= ถูกต้อง ใช่เลยครับ
"ลองแก้/เพิ่ม ที่ server DB แล้วดูผลค่าที่แก้ใหม่ เมื่อดึงมาแสดงใน webpage"
= ผมลองลบคอลัมน์ "account_name" ออกที่
phpMyAdmin ของ Server DB แล้ว สร้างใหม่กลับคืน แล้วเข้าเว็บ ผล ชื่อกิจกรรมว่างเปล่า เครื่องหมาย ??????? หายไป
จากนั้นผม export DB ลงมาลองที่ localhsot ได้ผลเช่นเดียวกันคือ ชื่อกิจกรรมว่างเปล่า เครื่องหมาย ??????? หายไป เช่นกันครับ
ส่วน "- ลองสร้างโปรเจคง่ายๆ ขึ้นมาใหม่ เพื่อเทส และไม่กระทบของเดิม แล้วสร้าง DB column เพิ่ม เหมือนเดิม
ใช้ PHP เขียนดึงข้อมูลมาแสดง แล้วโยนโปรเจคขึ้น server ดูว่ายังมีปัญหาหรือไม่"
= เดี๋ยวขอลองพรุ่งนี้ นะครับ วันนี้งมอยู่หน้าจอทั้งวัน ตาชักปรือแล้วครับ
ส่วน "- *ถ้าไม่เกินความสามารถ ลอง alter table(add column) และ update
ผ่าน PHP ดูว่า เวลาดึงมาแสดงที่ webpage ปัญหาหายไหม"
= อันนี้ ท่านคิดถูก เกินความรู้ ความสารารถที่ผมมีจริง ๆ แต่ก็จะพยายามเรียนรู้ครับ
ประวัติการแก้ไข 2022-11-07 21:29:35 2022-11-07 21:32:17
Date :
2022-11-07 21:27:37
By :
ajsudkedt
ถ้าแนะนำรวมๆควรเขียนผ่าน Docker ครับ
Date :
2022-11-09 18:58:20
By :
Genesis™
จะใช้ Docker หรืออะไรก็ได้ มันไม่ใช่ภาคบังคับหรอก มันแค่สะดวกถ้าติดตั้งเป็นและมีความคุ้นเคย ถ้าไม่เป็นใช้ของเดิมไปสะดวกกว่า.
ถ้ารุ่น MySQL, MariaDB ที่ใช้เขียนโค้ดหรือใช้รันบน server จริงมันเก่าเกินไป ไม่รองรับ utf8 ที่ว่า ก็อัพเกรดซะก็จบแล้วครับ.
ปัญหา ?????? นี้น่าจะอยู่ในขั้นใดขั้นหนึ่งที่ไม่ได้ผ่านการใช้ charset อย่างถูกต้อง.
ผมยังไม่เห็นมีใครให้ทดสอบโดยแยกโค้ดออกมาเลย งั้นขอให้ทำตามนี้แล้วกัน.
งานในโปรเจ็คลืมไปก่อน ยังไม่ต้องไปวุ่นกับมัน ขอตรวจก่อนว่ามันมีปัญหาจริงๆที่ตรงไหน.
ให้สร้างไฟล์ php ขึ้นมาไฟล์หนึ่ง แล้วเขียนโค้ดนี้ลงไปโดยแก้ไข username, password, ชื่อตาราง, ชื่อ host, และชื่อคอลัมน์เอาเองให้ตรง
จากนั้นเอาผลลัพธ์มาดูว่ามันออกมาเป็นไทยมั้ย?
Code (PHP)
$dsn = 'mysql:dbname=test_generic-tests;host=localhost;charset=utf8mb4';// เปลี่ยนชื่อฐานข้อมูล test_generic-tests เป็นของคุณที่มีปัญหา
$user = 'user';// เปลี่ยนเอา
$password = 'pass';// เปลี่ยนเอา
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_STRINGIFY_FETCHES => true,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
];
$dbh = new PDO($dsn, $user, $password, $options);
$sql = 'SELECT * FROM `natural_sort` WHERE `id` = 8';// เปลี่ยนชื่อตาราง แล้วเปลี่ยน id ไปทดลองที่ id 1 ที่เป็นภาษาไทย และทดลองอีกครั้งที่ id 2 ที่เป็นไทยและอังกฤษปนกัน ดูว่าผลออกมาเป็นยังไง
$sth = $dbh->prepare($sql);
$sth->execute();
$result = $sth->fetchAll();
echo '<pre>' . print_r($result, true) . '</pre>' . PHP_EOL;
อ่านคอมเม้นท์ในโค้ดด้วย แล้วทดลองดูได้ผลยังไง เอามาดู.
ถ้าโค้ดของผมข้างบนซึ่งเรียบง่ายโคตรๆ แสดงไทยออกมาได้ถูกต้อง ก็พอจะเดาทางได้แล้วว่าปัญหามาจากตรงไหน มันจะตีวงให้แคบลง
ประวัติการแก้ไข 2022-11-20 08:53:27
Date :
2022-11-20 08:51:47
By :
mr.v
export structure ของตารางทั้งสอง server มาเปรียบเทียบ
ถ้าเท่ากัน ก็ export structure ของ database มาเปรียบเทียบดู อาจจะพบ ข้อแตกต่าง
บางทีค่า default มันต่างกัน import โดยม่ได้กำหนดค่า default อาจจะทำให้ config เปลี่ยนไป
Date :
2022-11-24 21:31:26
By :
Chaidhanan
เดาว่า <= ไม่ใช่วิธีทดสอบหาต้นตอปัญหาและไม่ใช่ขั้นตอนที่แน่นอน
เพราะเอาเข้าจริงถ้าทดสอบตามขั้นตอนจริงๆที่ผมว่า อาจจะเจอไม่ 1 ก็ 2 แล้วมันก็จะง่ายขึ้น
แต่ถ้าไม่ทำก็ไม่เป็นไรหรอก ผมก็ไม่ได้เกี่ยวอะไรเพราะแนะนำวิธีหาต้นตอแบบแยกแจกแจงออกมาให้แล้ว
ประวัติการแก้ไข 2022-11-25 19:52:31 2022-11-25 19:58:10 2022-11-25 19:58:32
Date :
2022-11-25 19:52:00
By :
mr.v
อยากให้ทุกท่านลองโหลด source code ตาม link ใน ความคิดเห็นที่ : 29 มาทดสอบดูครับ
ว่าขึ้น ????? เหมือนที่ผมเจอไหมครับ
Date :
2022-11-27 10:21:04
By :
ajsudkedt
ถ้าคนเคยใช้เว็บตปท. อย่างเช่น Stackoverflow.com ก็คงจะต้องเคยเจอบ้างเกี่ยวกับการทักท้วงของผู้เข้ามาตอบปัญหาว่าให้ทำตัวอย่างที่ ทำซ้ำปัญหาได้, โค้ดน้อยที่สุด ( https://stackoverflow.com/help/minimal-reproducible-example )
ซึ่งมันก็หลักการคล้ายกันกับของผมนั่นแหละ ........บอกเยอะแล้ว ไม่ทำก็เท่านั้น มีวิธีอื่นที่ดีกว่าก็ว่ามา ขี้เกียจอธิบายต่อแล้ว
Date :
2022-11-27 20:10:31
By :
mr.v
กรณีโปรเจ็คใหญ่ๆ ไฟล์เยอะๆปัญหาแยะ ต้องแก้ในนั้นเพราะซับซ้อนจัด
เขามักจะใช้วิธีทำออนไลน์ทั้งหมด คือ โฮสต์ไฟล์บน server แล้วมี editor เขียนออนไลน์
พวกที่ให้บริการก็มีอย่างเช่น
https://phpsandbox.io/
https://replit.com/
https://paiza.cloud/en/php-cloud-ide
แต่ว่า ผมไม่เคยใช้สักอัน
วิธีนี้ไม่ต้องให้คนอื่นมาเสี่ยงโหลดไฟล์ลงมาทดลอง แต่สามารถให้คนอื่นเข้าร่วมไปแก้ปัญหาได้เลยแล้วรันออนไลน์ได้เลย
Date :
2022-11-27 20:40:09
By :
mr.v
แจ้งข่าวล่าสุดครับ
นำเข้าข้อมูลทั้งก้อนจาก excel ลง navicat ที่เชื่อมต่อไปยัง phpMyAdmin ภาษาจะเป็น ??????
แต่ถ้ากรอกผ่านหน้าเว็บที่เมนู Admin ภาษาจะอ่านได้ปกติครับ
ก็คงต้องช่วยกันกรอกผ่านเว็บ 200 กว่ากิจกรรมฯ ก็พอได้อยู่ครับ
ขอบคุณทุก ๆ คำแนะนำมา ณ โอกาสนี้ด้วยนะครับ
ขอบคุณครับ
Date :
2022-12-28 12:58:14
By :
ajsudkedt
Load balance : Server 05