Monday, May 25, 2009

Error for beginer PHP about start_session();

  • คือลง php ให้ vista แล้วจะทดสอบรัน php ดูอ่ะนะ
  • และก็พอดีมีไฟล์ php ไว้ทดสอบอยู่แหละ แต่ไม่รู้เรื่อง syntax สักเท่าใหร่เลยงง นิดหน่อย
  • นึกว่าเป็นปัญหาของ ii7 กับ php ซะแหละ ตอนแรก
  • ที่แท้เราไม่เข้าใจ syntax ของ php ^^'
Error show:

PHP TestWarning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\Sites\samples\scripts\index-test2.php:6) in D:\Sites\samples\scripts\index-test2.php on line 10

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\Sites\samples\scripts\index-test2.php:6) in D:\Sites\samples\scripts\index-test2.php on line 10



My code:


<center>
hello
</center>


<?php
// testing sessions
// check to see if files are being created
// in the session.save_path folder
session_start();
?>
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<p>
The browser you're using is
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
</p>
<p>
<!-- test the browscap setup -->
Your browser's capabilities are: <br/>
<pre>
<?php print_r(get_browser(null, true)); ?>
</pre>
</p>
<?php phpinfo(); ?>
</body>
</html>

  • ตอนแรกเข้าใจว่าเป็นปัญหาเกี่ยวกับ permission ของ vista เค้าอ่ะนะ ^^'
  • แต่พอไปเจอติดตั้ง php บน vista จาก ที่นี่ เห็นปัญหาเกี่ยวกับ session เลยว่าน่าจะเป็นปัญหาเนี๋ย
  • จาก: http://www.oknation.net/blog/print.php?id=148771

ส่วนการแก้ไข : ดูเหมือนว่า Vista จะมีปัญหาการจัดการ permission ในส่วน PHP

อาการ :
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line

วิธีแก้ :
เพื่อแก้ปัญหานี้ ใน CMD ที่เป็น administrator (ให้คุณคลิกขวาบน CMD.exe แล้ว "Run as administrator" ให้เขียนคำสั่ง 2 อย่าง
icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)
icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)


  • ทำตามวิธีแก้แหละก็ไม่หายซะงั้น
  • แต่ไปเจอสาเหตุของปัญหาจริงก็ ที่นี่ อ่ะ และ ใน comment

jkna_gunn:you cannot output any html then call session_start(), this must be the first line.

<?
session_start();
$_SESSION['abc'] = "hello world";?>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<? echo "The content of sess variable is $_SESSION['abc']";?>
<a href="call_session.php">Next page</a>
</body>
</html>

Solved
  • call session_start(), this must be the first line
  • แค่แก้โค้ดเราเอา start_session ขึ้นไปบนสุด
  • หรือไม่ก็เอาโค้ดอาไรที่อยู่บน start_session ออกโค้ดเราก็เอา hello ออกไง

Related Posts
Reference

No comments:

Post a Comment

Popular Posts