ช่วยดูหน่อยครับ php กับ text ครับ ไม่ยอมบันทึกค่า (ก่อนหน้านี้บันทึกปกติ ตื่นมาตอนเช้าเพิ่งเป็นนี่ละครับ)
ลอง remark ตามท่านบอกแล้วครับ ยังไม่ได้ครับป๋ม
Date :
2014-07-04 11:00:11
By :
kuzaa516
11. $savefilename = "chatroom/log/message.txt";
12. $objfopen = fopen($savefilename, "a");
เช็คไฟล์ว่ามีอยู่จริงหรือไม่
11. $savefilename = "chatroom/log/message.txt";
if( ! file_exists($savefilename)){
echo 'fileNotfound'; exit;
}
12. $objfopen = fopen($savefilename, "a");
Date :
2014-07-04 11:17:59
By :
Chaidhanan
เช็คแล้วครับ ปกติครับป๋ม
ผมลืมนี่โค้ด jQuery ครับ ไม่รู้พลาดตรงไหนบ้างรึป่่าวครับ
Code (Java)
$(document).ready(function(){
$("#msg").keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
$('#btnsend').focus().click(); // โฟกัสปุ่ม Enter ให้เป็นการกดปุ่ม btnsend
}
});
$('#btnsend').click(function(){
$.post("?action=send", { // ส่งค่าที่ได้ในแบบ POST ไปยัง ?action=send
data1: $("#msg").val()
});
$('#msgform')[0].reset(); // รีเซ็ตค่าใน form id msgform
});
var auto_refresh = setInterval(function(){
$('#boxmsg').load('../chatroom/getmsg.php'); // โหลดข้อมูลจาก getmsg.php ไปแสดงใน id boxmsg
}, 2000 // จำนวนวินาทีในการรีเฟรชข้อมูล 1000 = 1 วินาที
);
var scrolltobottom = setInterval(function(){
var scroll = document.getElementById('boxmsg');
scroll.scrollTop = scroll.scrollHeight;
}, 500);
});
Date :
2014-07-04 11:38:22
By :
kuzaa516
ขอ url สำหรับ save ครับ อยู่ใน folder ไหนครับ
ถ้าอยู่ที่ root แบบเดิมก็ถูกแล้ว
11. $savefilename = "chatroom/log/message.txt";
|--chatroom
|--index.php
|--getmsg.php
|--log
|--message.txt
ถ้าเป็น chatroom/index.php
บันทัดนี้ต้องแบบนี้ครับ
11. $savefilename = "log/message.txt";
ถ้าจะให้ดีก็ขอ url มาแสดงครับ ว่าเรียกใช้ยังไง
Date :
2014-07-04 15:32:05
By :
Chaidhanan
อยู่ใน chatroom/index.php ครับ แต่เรียกใช้เมื่อ ?action=send ครับ
แต่เวลาใช้งานจริงผม include ไฟล์ chatroom/index.php มาใช้งานใน root/chatroom.php ครับ
เพราะฉนั้น path chatroomlog/message.txt ก็น่าจะถูกแล้วนะครับ
ผมลองแก้เป็น 11. $savefilename = "log/message.txt"; ไม่หายครับ เหมือนเดิม
ประวัติการแก้ไข 2014-07-04 16:09:18
Date :
2014-07-04 16:06:55
By :
kuzaa516
กรรม หลงไปหน่อยครับ เคยทำได้ ก็ไม่น่าจะเป็นที่ โปรแกรมแล้วครับ
น่าจะเป็นที่ระบบไฟล์ แต่ตอนนี้ขอไปทำธุระก่อนครับ รอท่านอื่นมาตอบนะครับ
Date :
2014-07-04 16:50:31
By :
Chaidhanan
แหะๆ ขอบคุณพี่มากครับ รอท่านอื่นครับป๋มมมม ^ ^ งง มากเลย เคยใช้งานได้ จู๋ๆก็ไม่ได้ ไม่รู้ตกลงเป็นที่อะไร T T
Date :
2014-07-04 16:52:30
By :
kuzaa516
ต้งองดูว่า text ของเราขนาดไฟล์ใหญ่แค่ใหน
เก็บได้กี่บรรทัดแล้ว
โหลดมาได้ครบหรือไม่
ไม่มี error อะไรออกมาเลยเหรอครับ
ลองไล่ debug ไปทีละสเต็บดีกว่าครับ
Date :
2014-07-04 17:52:28
By :
deawx
ขอไฟล์ตัวเต็มมาลองหน่อยได้มะครับ สงสัยมากๆ เหมือนกัน
Date :
2014-07-04 19:01:39
By :
Chaidhanan
define('srv_path', $_SERVER['DOCUMENT_ROOT']);
เขียนโค๊ดข้างบน ก่อน session_start()
และทุกการอ้างไฟล์ เช่น
<?php include ('chatroom/image/icon/index.php'; ?>
ให้แก้เป็น
<?php include ( srv_path . '/chatroom/image/icon/index.php'); ?>
ให้เป็นการเรียกแบบ direct ไม่ต้อง relative
ไม่ว่าจะเป็นการ include หรือ fopen
คือถ้ายังไม่แม่น เกี่ยวกับการเรียกใช้ folder ควรใจแบบนี้ดีกว่าครับ เรียกมันตรงๆ
Date :
2014-07-04 21:02:12
By :
Chaidhanan
file meTest.php
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
//define('srv_path', 'D:/web/djdai'); // เปลี่ยนตรงนี้ให้ถูกต้อง
define('srv_path', $_SERVER['DOCUMENT_ROOT']);
define('ip', $_SERVER['REMOTE_ADDR']);
define('dt', date('Y-m-d H:i:s') );
$savefilename = srv_path."/chatroom/log/msgTEST.txt"; // เปลี่ยนชื่อไฟล์ให้ถูกต้อง
if(file_exists($savefilename)){
for($i=0; $i<1000; $i++){
$objfopen = fopen($savefilename, "a");
$data1 = "<a title='". ip . "'><b>TEST user ".$i."</b></a> <span class='time'>[". dt ."]</span> : <br/> TEST MESSAGE\n";
fwrite($objfopen, $data1);
fclose($objfopen);
}
include($savefilename);
}else echo 'file not found '.$savefilename;
?>
</body>
</html>
ประวัติการแก้ไข 2014-07-04 21:34:41
Date :
2014-07-04 21:33:06
By :
Chaidhanan
ผมแก้ได้แล้วนะครับพี่ ขอบคุณมากเลยครับ ปัญหามันแค่ปลายจมูกจริงๆครับ การที่เราใช้ file txt เป็นฐานข้อมูล เราก็ต้อง CMOD ให้ไฟล์นั้นเป็น 777 ด้วย เพื่อให้มันเขียนได้ด้วย นิดเดียวจริงๆครับ 5555555
Date :
2014-07-05 23:35:37
By :
kuzaa516
(ก่อนหน้านี้บันทึกปกติ ตื่นมาตอนเช้าเพิ่งเป็นนี่ละครับ) มันเป็นยังไงครับถึงทำได้
มันเป็น chat log มันต้องเปิดและปิด ถ้าเป็นที่ chmod มันก็ไม่ควรเข้าได้แม้ record เดียว
ยกเว้นว่า ย้าย server หรือเปล่าครับ
ประวัติการแก้ไข 2014-07-06 05:01:36
Date :
2014-07-06 05:00:31
By :
Chaidhanan
Load balance : Server 05