09/10/2018, 23:58

Lỗi khi tạo Session.

Chào các bác, em vừa mới chuyển sang PHP thì gặp ngay cái lỗi này mà không biết tại cấu hình hay tại cú pháp, bác nào biết giúp đỡ 1 chút.

tạo vì dụ :
<?php
// page1.php

session_start();

echo 'Welcome to page #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();

// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';

// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

No báo như sau :

Warning: session_start() [function.session-start]: open(C:PHPsessiondatasess_8463df462a455c9aace5e 3a73459f182, O_RDWR) failed: Permission denied (13) in D:PHPvidu1.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:PHPvidu1.php:4) in D:PHPvidu1.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:PHPvidu1.php:4) in D:PHPvidu1.php on line 4
Welcome to page #1
page 2
page 2
Warning: Unknown(): open(C:PHPsessiondatasess_8463df462a455c9aace5e 3a73459f182, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:PHPsessiondata) in Unknown on line 0


Xin chỉ giáo các pác. thanks !
hungnt_vip viết 02:02 ngày 10/10/2018
em viết cái này nó cũng báo tưong tự như vậy : header("Location : login.php");
NumPad0 viết 02:08 ngày 10/10/2018
Lỗi bị thế này nhé.
Cái thư mục C:\PHP\sessiondata này của bạn chắc là NTFS không cấp quyền ghi cho miss apache. Do đó cookie lưu session state của bạn không tạo được trong thư mục đó. Nó sẽ báo một warning:
Code:
Warning: session_start() [function.session-start]: open(C:\PHP\sessiondata\sess_8463df462a455c9aace5e 3a73459f182, O_RDWR) failed: Permission denied (13) in D:\PHP\vidu1.php on line 4
Khi đó session không được khởi tạo (failed). Và output page của bạn đã có a bunch of text . Do đó nó sẽ phát sinh tiếp lỗi thứ 2, là không thể send header info (cookie) xuống browser của bạn được do đã có output gửi xuống trước. Nguyên tắc là header của package tin phải được send trước tất cả các nôi dung khác. Đó là nguyên nhân của warn thứ 2 và 3:
Code:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\PHP\vidu1.php:4) in D:\PHP\vidu1.php on line 4
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\PHP\vidu1.php:4) in D:\PHP\vidu1.php on line 4
2 cái warn cuối có nguyên nhân như cái warn đầu tiên.
------------
Cái header("Location") bị lỗi nguyên nhân giống 2 cái warn thứ 2 và 3.
kemkem viết 02:10 ngày 10/10/2018
bạn chú ý trước session_start() không được out bất cứ cái gì ra màn hình. Một số chương trình edit nó tự động sinh mã ký tự trắng trước mỗi đầu file.
kiểm tra bạn vao cmd gõ lệnh more file.php để xem có ký tự trắng trước nó không.
ducuytran viết 02:01 ngày 10/10/2018
Cho hỏi bạn dùng trình soạn thảo nào để code vậy? Vừa rồi mình cũng bị lỗi này và lý do là dùng Notepad++ để code. Copy source chuyển wa Dreamweaver thì chạy tốt. Lỗi do editor.
ducuytran viết 02:00 ngày 10/10/2018
Àh, hiểu cái này rồi, dzo encode UTF-8 with BOM nên bị. Nếu code bằng Notepad++ bạn hãy vào Format>encode in UTF-8 without BOM rùi save lại chạy thử. Mới test xong tức thì.
Bài liên quan
0