ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[PHP] เรื่อง error cookie ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [PHP] เรื่อง error cookie ครับ  (อ่าน 2000 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
nokia201
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 60



ดูรายละเอียด
« เมื่อ: 17 พฤษภาคม 2013, 19:53:49 »

มันขึ้นแบบนี้ครับ
 Cannot modify header information - headers already sent by (output started at C:\AppServ\www\setcookie.php:1) in C:\AppServ\www\setcookie.php on line 14
นี่โค๊ด
<?php
if(isset($_POST["send"])){
process();
}
else
{
htmlblock();
}

function process(){
$id=$_POST["username"];
if($_COOKIE["username"]=="")
  {
    setcookie("username",$id,time()+3600);
   echo "ขอต้อนรับสู่ระบบคุณ $id <br>";
    echo "ตอนนี้คุณยังไม่มี cookie";
   }
else
  {
    echo "ขอต้อนรับสู่ระบบคุณ $user <br>";
   echo "คุณมี cookie แล้วคือ".$_COOKIE["username"];
  }
}
function htmlblock(){
$id="";
if(isset($_COOKIE["username"])){
$id=$_COOKIE["username"];
}
echo <<<HTML
<form action="{$_SERVER['PHP_SELF']}" method="POST">
<input type="text" name="username" value="{$id}"><br>
<input type="submit" name="send">
</form>
HTML;
}
?>
 wanwan017
บันทึกการเข้า

ขายสคริปปั้มไลค์ตามเว็บดูหนังใช้กันสนใจ PM ครับ
normalblue
คนรักเสียว
*

พลังน้ำใจ: 31
ออฟไลน์ ออฟไลน์

กระทู้: 145



ดูรายละเอียด
« ตอบ #1 เมื่อ: 17 พฤษภาคม 2013, 20:32:07 »

ได้ Include ไฟล์นี้ไปใช้หน้าอื่นหรือเปล่าครับ? ถ้า Include ไปแสดงก็ Show ไฟล์นั้นด้วย

ถ้าเฉพาะ Code ที่แสดง ผมว่ามันจะไป Error ตรงบรรทัด 20 มากกว่า เพราะไม่ได้มีการกำหนดค่าตัวแปล $user จู่ๆ ก็สั่ง Echo มันออกมา
บันทึกการเข้า
thai2ads
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 136
ออฟไลน์ ออฟไลน์

กระทู้: 1,172



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 17 พฤษภาคม 2013, 20:55:49 »

ob_start(); ไว้บนสุด บรรทัดแรกเลยนะ
บันทึกการเข้า

รับทำเว็บไซต์ เขียนระบบต่างๆตามที่ต้องการ (ยกเว้น 18+ กับการพนัน) ระบบมีปัญหาการใช้งานแจ้งพจได้เลยนะครับอย่าได้เกรงใจเพราะเดี๋ยวมันจะไม่รู้ปัญหา
ออกแบบเว็บไซต์ | รับทำเว็บไซต์ |
nokia201
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 60



ดูรายละเอียด
« ตอบ #3 เมื่อ: 17 พฤษภาคม 2013, 21:07:29 »

ทำตามทั้งสองท่านแล้วก็ยังขึ้น
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\setcookie.php:1) in C:\AppServ\www\setcookie.php on line 15
 wanwan031
บันทึกการเข้า

ขายสคริปปั้มไลค์ตามเว็บดูหนังใช้กันสนใจ PM ครับ
nuvatchai
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 76
ออฟไลน์ ออฟไลน์

กระทู้: 1,023



ดูรายละเอียด
« ตอบ #4 เมื่อ: 17 พฤษภาคม 2013, 21:15:49 »

ถ้า cookie ยังทำงานแต่มี error ให้ใส่ @ หน้า function หรือบรรทัดไหนที่ไม่ต้องการให้มันขึ้น error ครับ เช่น @setcookie
บันทึกการเข้า
MapTwoZa
ก๊วนเสียว
*

พลังน้ำใจ: 75
ออฟไลน์ ออฟไลน์

กระทู้: 366



ดูรายละเอียด
« ตอบ #5 เมื่อ: 17 พฤษภาคม 2013, 22:02:37 »

ใส่ ob_start() ไว้บรรทัดแรกสุด ของไฟล์แรกสุดที่มีการ run เช่น www.myweb.com/mypage.php

ก็ให้ใส่ ob_start() ไว้ที่บรรทัดแรกสุดของ mypage.php ไม่ใช่ใส่ไว้บรรทัดแรกของ setcookie.php


ลักษณะการทำงานของ cookie คือส่ง cookie ไปพร้อม header ถ้าส่งไม่ได้ ก็ทำงานไม่ผ่านครับ client ไม่ได้รับ cookie
ใส่ @ ไว้ข้างหน้า setcookie ไม่ช่วยไร แค่ไม่ให้โชว์ error/warning ให้เกะกะลูกตา

ส่วน ob_start() คือ อะไร คือคำสั่งที่ทำให้ php ไปส่งส่วนอื่นไปนอกจาก header ถึงแม้จะมีการ echo ก็จะไปเก็บไว้ใน buffer แทนที่จะส่งไปครับ
เมื่อ obstart ไว้บรรทัดแรกสุด จะใส่ session start/set cookie/set header ไว้ตรงส่วนไหนก็ได้ แต่ต้องก่อนการ flush buffer
« แก้ไขครั้งสุดท้าย: 17 พฤษภาคม 2013, 22:05:33 โดย MapTwoZa » บันทึกการเข้า

Good code quality Developer Cheesy
nokia201
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 60



ดูรายละเอียด
« ตอบ #6 เมื่อ: 17 พฤษภาคม 2013, 23:34:19 »

ผมลองทำตามที่หลายๆท่านบอกละครับยังคง error
ใครก็ได้ลองเอาโค๊ดผมไปแล้วทำไม่ให้มันเกิด error หน่อยครับ  wanwan017

บันทึกการเข้า

ขายสคริปปั้มไลค์ตามเว็บดูหนังใช้กันสนใจ PM ครับ
MapTwoZa
ก๊วนเสียว
*

พลังน้ำใจ: 75
ออฟไลน์ ออฟไลน์

กระทู้: 366



ดูรายละเอียด
« ตอบ #7 เมื่อ: 17 พฤษภาคม 2013, 23:37:52 »

เอาไฟล์มาครับไม่ก็ copy code มาวางในบอร์ดก็ได้
บันทึกการเข้า

Good code quality Developer Cheesy
nokia201
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 60



ดูรายละเอียด
« ตอบ #8 เมื่อ: 17 พฤษภาคม 2013, 23:49:45 »

โค๊ดเดิมแหละครับเพราะผมให้มันประมวลผลในหน้าเพจเดิมใช้ $_SERVER['PHP_SELF']
ผมลองใส่ ob_start(); ไว้ที่บรรดทัดแรกก็ยัง error ครับ คือผมกำลังฝึกใช้ cookie ครับ  Tongue
บันทึกการเข้า

ขายสคริปปั้มไลค์ตามเว็บดูหนังใช้กันสนใจ PM ครับ
gubaaball
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 184
ออฟไลน์ ออฟไลน์

กระทู้: 1,678



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 18 พฤษภาคม 2013, 00:02:48 »

ถ้าใช้ dream เขียนโค้ดลองเข้าไปดูที่ Modify > Page Properties > Title/Encoding > เอาติ๊กถูกหน้าประโยค Include Unicode Signature (BOM) ออก

ลองดูน่ะครับเผื่อเป็นแบบที่ผมเคยเป็น  Tongue
บันทึกการเข้า

iNdEpD
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 57
ออฟไลน์ ออฟไลน์

กระทู้: 2,301



ดูรายละเอียด
« ตอบ #10 เมื่อ: 18 พฤษภาคม 2013, 00:39:07 »

น่าจะเป็นที่ Dream ครับ ลองทำตามด้านบนเลยครับ เพราะผมเอาลง notepad++ ดูได้ปกตินะ
บันทึกการเข้า

I'm Back .........
sbaydee
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 337
ออฟไลน์ ออฟไลน์

กระทู้: 1,622



ดูรายละเอียด
« ตอบ #11 เมื่อ: 18 พฤษภาคม 2013, 00:56:42 »

ถ้าไม่หายใช้ editplus แก้ encode เป็น UTF-8 ก็ได้ครับ
บันทึกการเข้า
adidog
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 238
ออฟไลน์ ออฟไลน์

กระทู้: 1,859



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 18 พฤษภาคม 2013, 08:20:45 »

ถ้าไม่หายใช้ editplus แก้ encode เป็น UTF-8 ก็ได้ครับ
ตามนี้ครับ น่าจะเกิดจากปัญหา encode
บันทึกการเข้า

Certain Dri Certain Dri
คุณแม่มือใหม่ คุณแม่มือใหม่
nokia201
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 60



ดูรายละเอียด
« ตอบ #13 เมื่อ: 18 พฤษภาคม 2013, 11:50:27 »

ได้ละครับขอบคุณครับ สงสัย notepad++ ผมมีปัญหาตอนแรกก็เข้ารหัสแบบ UTF-8
เลยเปลี่ยนเป็น ansi และก็กลับมาเป้น UTF-8 ก็ใช้ได้เลย
ขอบคุณทุกท่านครับ  wanwan017
บันทึกการเข้า

ขายสคริปปั้มไลค์ตามเว็บดูหนังใช้กันสนใจ PM ครับ
หน้า: [1]   ขึ้นบน
พิมพ์