แก้ไขโค๊ด php แล้วมีปัญหา โดยแก้โค๊ดไฟล์จาก tis620 เป็น utf8 แล้วพอกด sumit แล้วมันฟ้อง error เลยอ่ะครับ
คือว่าไฟล์ของโปรแกรม รีจีส ล๊อคอินอ่ะครับ แท๊กมันเป็น tis620 ผมก้เลยเปลี่ยนโดยการใช้ notepadเปิดแล้วเซฟไฟล์ใหม่ให้ จากAni เป็น utf8 ทุกไฟล์ แล้วพอกดsumit มันเลยฟ้องเป็นแบบนี้ไม่เข้าใจทําไมถึงเป็นถ้าไม่เปลี่ยนภาษาไม่เป็นนะครับพอเปลี่ยนมาเป็น utf8เป็นเลยมีวิธีแก้อย่างไรบ้างครับสงสัยมานานมากอ่ะครับ
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\keng\member_detail.php:2) in C:\AppServ\www\keng\member_detail.php on line 4
โค๊ดของไฟล์
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
session_start() ;
include("config.inc.php") ;
mysql_select_db($db) ;
// ตรวจสอบ กรณีที่เรียกหน้านี้ขึ้นมาเลยโดยที่กรอกข้อมูลไม่ครบ
if($name=="" || $age=="" || $province=="" || $user_name=="" || $pwd_name1=="" || $email=="") {
echo "<meta http-equiv='refresh' content='0; url=signup.php'>" ;
exit() ;
}
// ถ้ากรอกอีเมล์ไม่ถูกต้อง
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)$",$email)){
echo "<br><br><center><font size='3' face='MS Sans Serif'><b>กรุณากรอกอีเมล์ให้ถูกต้องด้วยครับ</b></font>" ;
echo "<br><br><input type='button' value='edit your email' onclick='history.back();'></center>" ;
exit() ;
}
if((isset($ok)) and ($ok!="ok_pass")) {
echo "<meta http-equiv='refresh' content='0; url=signup.php'>" ;
exit() ;
}
$signup = date("j/n/").(date("Y")+543) ;
$name = htmlspecialchars($name) ;
$address = htmlspecialchars($address) ;
$zipcode = htmlspecialchars($zipcode) ;
$phone = htmlspecialchars($phone) ;
// ตรวจสอบว่ามีชื่อ user นี้ใช้ไปหรือยัง
$sql = "select user from member where user='$user_name'" ;
$result = mysql_query($sql) ;
$numrow = mysql_num_rows($result) ;
if($numrow!=0) {
echo "<br><br><center><font size='3' face='MS Sans Serif'>ขอโทษด้วยครับ user $user_name นี้ ได้มีผู้ใช้ไปแล้วครับ กรุณาเปลี่ยนชื่อ Login ใหม่" ;
echo "<br><br><input type='button' value='back to edit' onclick='history.back();'></center>" ;
exit() ;
}
// ถ้ายังไม่มีผู้ใช้ชื่อ user นี้
$sql = "select * from member order by id desc" ;
$result = mysql_query($sql) ;
$num_result = mysql_num_rows($result) ;
$dbarr = mysql_fetch_row($result) ;
$member_db = $dbarr[0]+1 ; // นำค่า id มาเพิ่มให้กับค่ารหัสสมาชิกครั้งละ1
if($member_db>=100) {
$member_in = "0$member_db" ;
}
else {
if($member_db >=10) {
$member_in = "00$member_db" ;
}
else {
$member_in = "000$member_db" ;
}
}
$member_id = "$yourcode$member_in" ; // รหัสสมาชิกเช่น ip0001
$result = mysql_query("insert into member (member_id,name,date,month,year,age,sex,address,amper,province,zipcode,phone,education,work,user,password,email,signup)
values('$member_id','$name','$date','$month','$year','$age','$sex','$address','$amper','$province','$zipcode','$phone','$education','$work','$user_name','$pwd_name1','$email','$signup')") or die("Err Database");
if($result) {
$login_true = $user_name ;
session_register("login_true") ;
echo "<center><font size=\"3\" face='MS Sans Serif'><b>ขอบคุณมากครับ สำหรับการลงทะเบียนเป็นสมาชิก</b></font></center>" ;
sendmail_welcome($member_id ,$name, $user_name , $pwd_name1 , $email ,$home) ; // ส่งเมล์หาลูกค้า เรียกฟังค์ชั่นให้ทำงาน
echo "<meta http-equiv='refresh' content='4; url=member_detail.php'>" ;
}
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
</body>
</html>
เป็นโปรแกรม ที่แจกให้ใช้ในเว็บเนี่ยแหละครับTag : PHP, MySQL, CakePHP, Report Others
Date :
2010-10-28 00:13:20
By :
kenghockey
View :
883
Reply :
8
เลือก utf without bom หรือเปล่าครับ
Date :
2010-10-28 00:16:55
By :
PlaKriM
ป่าวครับ
Date :
2010-10-28 00:31:17
By :
kenghockey
คืองงมากผมลองโปแกรมที่เค้าเขียนไว้หลายโปรแกรมแล้วมา เปิดด้วยโน๊ตแพทแล้ว เซฟเป็น utf8ธรรมดา เวลารันส่วนใหญ่จะเป็น ตอนใส่รหัสที่แล้ว sumit พอเข้าสถานะมันจะขึ้นแบบนี้ครับ
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\keng\member_detail.php:2) in C:\AppServ\www\keng\member_detail.php on line 4
แต่ก็แสดงสถานะว่าได้ล๊อคอินเข้าไปแล้วแล้วข้อมูลก้ลงฐานข้อมูลด้วยแต่ส่งสัยว่าทําไมมันฟ้องแบบนี้ครับมีหลายโปรแกรมแล้วครับ
Date :
2010-10-28 00:34:58
By :
kenghockey
สิ่งที่มันชอบฟ้องคือ line ที่เป็น session_start() ;
Date :
2010-10-28 00:38:03
By :
kenghockey
ใช้ utf without bom ครับ
Date :
2010-10-28 00:39:35
By :
PlaKriM
อันนี้อ่ะครับ ไฟล์ member_detail ที่มันแจ้งฟ้อง
<?php
# Programe Member-all #
/* จัดทำโดย นายอิทธิพล ผุดกระจ่าง webmaster http://www.funwhan.com
โปรแกรมนี้ห้ามนำไปทำเป็นการค้าแต่อย่างใดทั้งสิ้น นอกจากจะได้รับอนุญาติ หรือยินยอม
หากพบปัญหาในการใช้งานโปรแกรม สามารถติดต่อ หรือ สอบถามได้ที่ [email protected]
หรือ [email protected] */
# นี่คือรายละเอียดต่างๆที่คุณต้องแก้ไข หรือเปลี่ยนแปลงเป็นข้อมูลของคุณนะครับ
$host = "localhost" ;
$username = "root" ; // ชื่อในการติดต่อ mysql
$password = "keng" ; // password ของคุณในการเชื่อมต่อกับฐานข้อมูล
$db = "db" ; // ชื่อฐานข้อมูลของคุณ กรุณาระบุให้ครบถ้วนนะครับ
$connect = mysql_connect($host,$username,$password) ;
mysql_query("SET NAMES UTF8");
$home = "http://www.funwhan.com" ; // url เว็บไซด์ของคุณ เวลาที่ต้องการเรียก
$admin_email = "[email protected] " ; // อีเมล์ของคุณ
$yourcode = "ip" ; // รหัสนำหน้าหมายเลขสมาชิกของคุณ เช่น ip00001 , abc00005
$member_num_show = 3 ; // จำนวนของสมาชิกที่ต้องการให้แสดงต่อ 1 หน้า ในระบบของ admin
function sendmail_welcome($member_id ,$name, $user_name , $pwd_name1, $email ,$home) {
## ข้อความในการส่งเมล์เมื่อมีผู้สมัครสมาชิก ##
##( หากกด Enter เว้นบรรทัด ข้อความของคุณก็จะเว้นบรรทัดด้วย) ##
global $admin_email ;
$subject_mail = "ขอบคุณมากครับ ที่สมัครสมาชิกกับเรา นี่คือรายละเอียดต่างๆในการเข้าสู่ระบบครับ" ; // หัวข้ออีเมล์
//----------------------------------------------------------------------- เนื้อหาของอีเมล์ //
$message_mail = "สวัสดีครับคุณ $name
ยินดีต้อนรับครับ สมาชิกใหม่ หมายเลขสมาชิกของคุณคือ $member_id
รายละเอียดของคุณในการเข้าสู่ระบบมีดังต่อไปนี้ครับ
user = $user_name
pwd = $pwd_name1
-- ขอบคุณมากครับ ที่สมัครสมาชิกกับเรา --
แวะมาเยี่ยมเยียนกันบ่อยๆนะครับ $home
" ;
//------------------------------------------------------------------------ จบเนื้อหาของอีเมล์ //
$from = "From:\"$admin_email\"<$admin_email>" ;
if(mail($email,$subject_mail,$message_mail,$from)) {
echo "<br><br><center><font size='3' face='MS Sans Serif'><b>" ;
echo "ขณะนี้รายละเอียดต่างๆของคุณได้ถูกส่งผ่านไปทางอีเมล์แล้วครับ</b></font></center>" ;
}
else {
echo "ไม่สามารถส่งอีเมล์ได้ครับ" ;
}
}
?>
Date :
2010-10-28 00:40:31
By :
kenghockey
แล้วแก้ไขยังไงครับ ขอวิธีหน่อยครับ
Date :
2010-10-28 00:41:32
By :
kenghockey
ใส่ ob_start(); บรรทัดบนสุด
Date :
2010-10-28 01:07:22
By :
adaaugusta
Load balance : Server 04