10/10/2018, 09:43

lỗi Warning: Cannot modify header information - headers already sent by chính xác là gì ?

Warning: Cannot modify header information - headers already sent by
báo lỗi ở hàm setcookie
có bro nào hiểu rõ cái lỗi này ko. vì em bị nó quần cho 1 hồi điên quá !

phân tích theo lịch sử :
- trước kia em bắt đầu làm web với dreamweaver 8 , mọi thứ vẫn suôn sẻ tốt đẹp , dù cho em có xài setcookie kiểu gì.
- bắt đầu chuyển sang notepad++ vài ngày gần đây , vì nó nhẹ .bắt đầu lỗi như trên . do em setcookie trong <body></body>
- lang thang trên mạng đủ kiểu , tìm kiếm giải pháp , nghe các bro nói trên trời dưới đất đủ kiểu về cái lỗi này . nào là xóa các kí tự ẩn , thêm ob_start() ..,chỉnh php.ini , chuyển mã utf-8 without bom ...
đủ kiểu mà vẫn ko được .
- rồi làm theo kiểu cho setcookie ra ngoài <html></html>
thì lúc này mọi thứ đã ổn, ko có lỗi nữa

vậy vấn đề nằm ở đâu . khi trước kia em cũng để setcookie trong cặp tag body mà nó vẫn chạy rất bình thường , cái hồi còn làm với dreamweaver ( nửa năm )
và bi giờ cũng vậy , 1 file khác cũng chứa setcookie trong tag body vẫn chạy bình thường . còn cái file kia thì phải để setcookie lên đầu trang .
trùng hợp cái là bắt đầu có lỗi khi dùng notepad++
kenphan19 viết 11:50 ngày 10/10/2018
khởi tạo session chưa ?
ngoc_viet08 viết 11:59 ngày 10/10/2018
session làm gì vậy bác ?
tiendx2002 viết 11:47 ngày 10/10/2018
Được gửi bởi ngoc_viet08
báo lỗi ở hàm setcookie
có bro nào hiểu rõ cái lỗi này ko. vì em bị nó quần cho 1 hồi điên quá !

phân tích theo lịch sử :
- trước kia em bắt đầu làm web với dreamweaver 8 , mọi thứ vẫn suôn sẻ tốt đẹp , dù cho em có xài setcookie kiểu gì.
- bắt đầu chuyển sang notepad++ vài ngày gần đây , vì nó nhẹ .bắt đầu lỗi như trên . do em setcookie trong <body></body>
- lang thang trên mạng đủ kiểu , tìm kiếm giải pháp , nghe các bro nói trên trời dưới đất đủ kiểu về cái lỗi này . nào là xóa các kí tự ẩn , thêm ob_start() ..,chỉnh php.ini , chuyển mã utf-8 without bom ...
đủ kiểu mà vẫn ko được .
- rồi làm theo kiểu cho setcookie ra ngoài <html></html>
thì lúc này mọi thứ đã ổn, ko có lỗi nữa

vậy vấn đề nằm ở đâu . khi trước kia em cũng để setcookie trong cặp tag body mà nó vẫn chạy rất bình thường , cái hồi còn làm với dreamweaver ( nửa năm )
và bi giờ cũng vậy , 1 file khác cũng chứa setcookie trong tag body vẫn chạy bình thường . còn cái file kia thì phải để setcookie lên đầu trang .
trùng hợp cái là bắt đầu có lỗi khi dùng notepad++
Em có thể để nó trong <body></body> nhưng miễn là đừng có gọi thì nó sẽ không bị lỗi.
Do đó cần phải xem trong file mà setcookie nằm trong <body></body> ta đã test tới case đó chưa đã (tức là case có gọi được setcookie).
Về nguyên tắc là đặt nó lên trước khi có bất kỳ output nào. Chứ không phải là do Dreamweaver hay do Notepad++.
Thân mến.
ngoc_viet08 viết 11:54 ngày 10/10/2018
ừm , thường khi trước khi setcookie thì phải kiểm tra cookie đã tồn tại hay chưa nên có thể có trường hợp là hàm setcookie ko thực hiện được .
nhưng trước đây , với file đó , cấu trúc em vẫn xài rất bình thường . nhưng chỉ mới bị chỉ vài ngày nay . nên ko hiểu rõ nguyên do của nó lắm .
chính xác là chỉ mới chuyển sang notepad++ gõ gõ vài ngày nay và cũng là thời điểm nó bị tưng tưng .
có khi vấn đề nằm ở việc chuyển encode từ ansi -> utf-8 và utf-8 without bom . em chỉ mới quan tâm mấy cái này lúc xài notepad++ , còn trước kia dreamweaver thì ko bận tâm nên có thể chưa phát sinh lỗi .
khuongCOMPUTER viết 11:44 ngày 10/10/2018
Lỗi này xả ra khi có thao tác sửa vào session hoặc cookie (edit, set, remove) khi đã gửi bất kì thông tin lên trình duyệt (kể cả ký tự xác định utf-8 khi lưu file dưới charset này).
Đó là lý do khi bỏ setcookie lên đầu file thì chạy không có lỗi.
ngoc_viet08 viết 11:54 ngày 10/10/2018
ở file index.php , em cho 1 mớ html rồi ở giữa body mới chèn cuonter.php chứa hàm setcookie .
hồi lâu chạy bình thường , nhưng giờ thì tưng tưng . lỗi ko hoàn toàn như vậy , có lẽ còn nhiều điều uẩn trắc bên trong ...

[=========> Bổ sung bài viết <=========]

<!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>xem anh</title>
<link href="other/site.css" type="text/css" rel="stylesheet">
<script src="other/avim.js" type="text/javascript"></script>
</head>
<body class="body">
<?php include("site/codeall.php");?>
<div align="center" class="containimage">
<div class="banner">
<a href="index.php"><img src="images/banner.jpg" alt="banner"></a></div>
<div class="ads1" align="center">
<?php echo $lienket1;?></div>
<div align="center">
<?php
if (is_numeric($_GET["id"]))
$id=$_GET["id"];
else
$id="1";
$ket_qua0=mysql_query("SELECT `stt` FROM `hinh_anh` WHERE `stt_album`='$id' ORDER BY `stt` LIMIT 0,1");
$firstImage=mysql_fetch_row($ket_qua0);
if (is_numeric($_GET["image"]))
$image=$_GET["image"];
else
$image=$firstImage[0];
$ket_qua1=mysql_query("SELECT * FROM `album_anh` WHERE `stt`='$id'");
$album=mysql_fetch_row($ket_qua1);
$luotXemAlbumMoi=$album[7];
$tenCookie="album_anh$id";
if(!isset($_COOKIE["$tenCookie"]))
{
$luotXemAlbumMoi=$album[7]+1;
setcookie("$tenCookie","1",time()+3600);
mysql_query("UPDATE `album_anh` SET `luot_xem`='$luotXemAlbumMoi' WHERE `stt`=$id");
}
echo "<div style=\"width:600px\">
<div class=\"timecontent\">Ngày $album[4] - Lượt xem $luotXemAlbumMoi - Bình luận $album[8] - Số hình $album[6]</div>
<div class=\"headcontent\" align=\"center\"><a href=\"viewImage.php?id=$id\">$album[1]</a></div><br>
<div class=\"introcontent\">$album[2]</div><br>
</div>
<br>";
include("otherimage.php");
$ket_qua2=mysql_query("SELECT * FROM `hinh_anh` WHERE `stt`='$image'");
$thisImage=mysql_fetch_row($ket_qua2);
$luotXemAnhMoi=$thisImage[4];
$tenCookie="hinh_anh$image";
if(!isset($_COOKIE["$tenCookie"]))
{
$luotXemAnhMoi=$thisImage[4]+1;
setcookie("$tenCookie","1",time()+3600);
mysql_query("UPDATE `hinh_anh` SET `luot_xem`='$luotXemAnhMoi' WHERE `stt`='$image'");
}
echo "<div class=\"introcontent\" align=\"center\"><img src=\"$thisImage[3]\" align=\"center\"></div><br>
<div class=\"introcontent\" align=\"center\">$thisImage[2]</div>
<div align=\"center\">Lượt xem $luotXemAnhMoi</div><br>";
include("otherimage.php");
echo " <br><br><b>Các hình khác trong album : </b><br>" ;
$result2=mysql_query("SELECT `stt` FROM `hinh_anh` WHERE `stt_album`='$id' and `stt`!='$image'");
while ($otherImage=mysql_fetch_row($result2))
{
echo "<a href=\"viewImage.php?id=$id&image=$otherImage[0]\"> $otherImage[0] </a>";
}
echo "<div class=\"boxwhile\" align=\"center\">";
$result=mysql_query("SELECT `stt` FROM `binh_luan4` WHERE `stt2`='$id' and `trang_thai`!='ẩn' ");
if (mysql_num_rows($result)<>0)
{
echo "<iframe src=\"site/comment.php?id=$id\" width=\"550\" height=\"400\"></iframe><br>";
}
?>

<div class="oneline"></div>
<div class="sectioncontent" align="center">Gửi bình luận</div>
<form action="<?php echo "index.php?view=action&a=1&type=5&id=$id"?>" method="post">
<table>
<tr>
<td>Tên</td><td><input type="text" name="ten" class="textinput"></td>
</tr>
<tr>
<td>Email</td><td><input type="text" name="yahoo" class="textinput"></td>
</tr>
<tr>
<td>Nội dung</td><td><textarea name="noi_dung" class="textinput" rows="5" cols=""></textarea></td>
</tr>
<tr>
<td>
<img src="site/captcha.php" width="100" height="50" alt="captcha">
</td>
<td>
Hãy nhập dòng chữ trong ảnh bên <br>
<input type="text" name="captcha" class="textinput">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="binh_luan" value="Bình luận">
<input type="reset" value="Làm lại">
</td>
</tr>
</table>
<fieldset style="width:500px">
<legend>Kiểu gõ </legend>
<input id="him_auto" onclick="setMethod(0);" type="radio" name="viet_method" checked><label for="him_auto">Tự động</label>
<input id="him_telex" onclick="setMethod(1);" type="radio" name="viet_method"><label for="him_telex">telex</label>
<input id="him_vni" onclick="setMethod(2);" type="radio" name="viet_method"><label for="him_vni">vni</label>
<input id="him_viqr" onclick="setMethod(3);" type="radio" name="viet_method"><label for="him_viqr">viqr</label>
<input id="him_viqr2" onclick="setMethod(4);" type="radio" name="viet_method"><label for="him_viqr2">viqr*</label>
<input id="him_off" onclick="setMethod(-1);" type="radio" name="viet_method"><label for="him_off">Tắt</label><br>
<input id="him_ckspell" onclick="setSpell(this);" type="checkbox" name="viet_method"><label for="him_ckspell">Kiểm tra chính tả</label>
<input id="him_daucu" onclick="setDauCu(this);" type="checkbox" name="viet_method"><label for="him_daucu">Bỏ dấu kiểu cũ</label></fieldset>
</form>
<br>
</div> </div>
<div class="footer" align="center">
<?php echo $banquyen;?>
</div>
</div>
</body>
</html>
đây là 1 file có chứa hàm setcookie , nhưng chạy hoàn toàn ko bị lỗi .
em đến là bó tay khi ko hiểu nổi thực sự nó bị lỗi gì ?
cách trình bày , đặt biến hơi lộn xộn vì đây là web đầu tiên em code , mong các bro bỏ qua , bớt chặt chém
ngoc_viet08 viết 12:00 ngày 10/10/2018
mình đã thử thay $tenCookie="10000"; lẫn setcookie("10000"...) vẫn ko bị lỗi
thôi dùng ob_start(); fix được rồi , khỏi phải chỉnh lại cấu trúc file , lập trình few. thank các bác đã giúp đỡ .
Bài liên quan
0