09/10/2018, 23:12

Lỗi gì đây và cách khắc phục ?

Em mới học PHP. Khi chạy chương trình tại dòng 13 có nội dung gọi hàm:

session_start();

có lỗi sau:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:wampwwwedutestindex.php:7) in D:wampwwwedutestindex.php on line 13

các bác cho em hỏi tại sao lại zậy ? Cách khắc phục thế nào?
amida viết 01:15 ngày 10/10/2018
Lỗi khi bạn save định dạng utf-8, khi đó một số kí tự sẽ xuất hiện ở đầu trang. Thử save encoding chuẩn 1252, iso-8859-1 xem sao Nếu kô muốn hay thích giấu lỗi thì thêm @ trước hàm
nguyenthanhhuy19 viết 01:28 ngày 10/10/2018
bạn nên đựa session_start() lên trên cùng. vì khi gặp bất cứ output nào trước session_start() thì nó sẽ ko thể gọi được session và báo lỗi. Khi đó trang đó sẽ không thể start được session và sẽ không thể Get được session trên trang đó.
darkera13 viết 01:19 ngày 10/10/2018
Quote Được gửi bởi nguyenthanhhuy19
bạn nên đựa session_start() lên trên cùng. vì khi gặp bất cứ output nào trước session_start() thì nó sẽ ko thể gọi được session và báo lỗi. Khi đó trang đó sẽ không thể start được session và sẽ không thể Get được session trên trang đó.
Nên đọc kỹ manual, cái này là do khởi tạo session sau khi gởi header rồi, vì session được gửi đi cùng header nên phải gọi nó ra trước header
<?php session_start();?>
<html>
<head>
....
</head>
......
parisby9 viết 01:17 ngày 10/10/2018
Tớ cũng bị 1 lỗi như bạn này, bác nào có thể giải quyết vẫn đề này giúp e dc ko vậy ? Thanks các bác nhiều nhé !
Dưới đây là đoạn code

Quote Được gửi bởi tuan
<?php
session_start();
include "includes/config.php";
include "includes/class_mysql.php";
include "includes/class_useronline.php";
include "includes/function.php";
$data = new class_mysql();
$data->config();
$data->access();
$config=$data->query("SELECT * FROM $data->table_config ORDER BY config_id ASC");
$rows_config=$data->num_rows($config);
for($i=0;$i<$rows_config;$i++){
$k[$i]=$data->result($config,$i,"config_values");
}
$query_all = $data->query("SELECT * FROM $data->table_media");
$query_top_new = $data->query("SELECT * FROM $data->table_media ORDER BY mediaid DESC LIMIT 15");
$query_top_rate = $data->query("SELECT * FROM $data->table_vote WHERE rate>=4 GROUP BY medianame DESC LIMIT 15");
$query_top_down = $data->query("SELECT * FROM $data->table_media WHERE mediadown!=0 ORDER BY mediadown DESC LIMIT 15");
$query_top_play = $data->query("SELECT * FROM $data->table_media WHERE mediahits!=0 ORDER BY mediahits DESC LIMIT 15");
$pagesize = $k[1];
$startrow = 0;
if (isset($_COOKIE['T2HnS'])) {
$_SESSION["t2huser"] = $_COOKIE['T2HnS'];
}
?>
Đây là link trang web của mình
http://parisby9.free.fr/nghenhacrap/
phamduyvt viết 01:13 ngày 10/10/2018
không phải đâu, session được tạo lần đầu tiên khi bạn gọi trang có khai báo sessiong_start(),và session đó ko được gọi lần nữa. Để ko báo lỗi bạn thêm vào chữ @ trước chữ session_start(), cụ thể là: <?php
@session_start();
....
....
?>
parisby9 viết 01:24 ngày 10/10/2018
Hehe, mình làm được rồi. Cám ơn bác phamduyvt nhiều nhiều nhé.
Chúc bác vui vẻ ...
Bài liên quan
0