Welcome, Guest. Please login or register.
Did you miss your activation email?


Login with username, password and session length

Search

 
Advanced search

28470 Posts in 7974 Topics- by 10280 Members - Latest Member: cid24
Pages: [1]   Go Down
Print
Author Topic: error...session_name  (Read 5023 times)
กรรัตน์ ไชยรัตน์
มือใหม่หัดโพส
*

Karma: 0
Offline Offline

Posts: 5


« on: April 03, 2008, 10:07:01 am »

ขอรบกวนทุกท่านหน่อยค่ะ ดิฉันใช้ function session_name() แล้วมีข้อความ error
Fatal error: Cannot redeclare session_name()
พอมีวิธีแก้ไขอย่างไงบ้างค่ะ เพราะดิฉันพยายามเปิดหนังสือ เปิดเน็ทแล้วยังไม่เข้าใจค่ะ รบกวนหน่อยน่ะคะ
Logged
i_am_keng
สิ่งที่หาไม่ได้ง่าย ๆ คือโอกาสทองของชีวิต
Global Moderator
เทพแห่งบอร์ด
*

Karma: 3
Offline Offline

Posts: 865


sc450617@at_hotmail_dot_com.com
WWW
« Reply #1 on: April 03, 2008, 02:43:55 pm »

ขอหน้าตาโค้ดที่คุณเรียกใช้หน่อยครับ
Logged

www.cakephp.in.th
www.hotel-reservation.in.th

mambo laithai:www.mambohub.com
mambo dev:www.mambo-foundation.org
ywc#2
KConvert dev (convert character set)
www.keng-d.com
เที่ยวในไทย www.tour-in-thai.com
Keng:Suriya Kaewmungmuang
เก่ง:สุริยา แก้วมุงเมือง
กรรัตน์ ไชยรัตน์
มือใหม่หัดโพส
*

Karma: 0
Offline Offline

Posts: 5


« Reply #2 on: April 03, 2008, 04:21:29 pm »

ขอรบกวนทุกท่านหน่อยค่ะ ดิฉันใช้ function session_name() แล้วมีข้อความ error
Fatal error: Cannot redeclare session_name()
พอมีวิธีแก้ไขอย่างไงบ้างค่ะ เพราะดิฉันพยายามเปิดหนังสือ เปิดเน็ทแล้วยังไม่เข้าใจค่ะ รบกวนหน่อยน่ะคะ

ขอบคุณค่ะ แก้ไขได้แล้วค่ะ แต่ไปติดส่วนอื่นต่อ
ขอถามอีกข้อน่ะค่ะ ..
ใน php มี function ที่มีการ update ข้อมูลข้ามเพจ ไม๊ค่ะ แต่ข้อมูลนั้นต้องมีความสัมพันธ์กันหมดค่ะ รบกวนหน่อนน่ะค่ะ
Logged
i_am_keng
สิ่งที่หาไม่ได้ง่าย ๆ คือโอกาสทองของชีวิต
Global Moderator
เทพแห่งบอร์ด
*

Karma: 3
Offline Offline

Posts: 865


sc450617@at_hotmail_dot_com.com
WWW
« Reply #3 on: April 03, 2008, 09:26:33 pm »

ไม่เข้าใจคำถามครับ อธิบายหน่อยครับ
Logged

www.cakephp.in.th
www.hotel-reservation.in.th

mambo laithai:www.mambohub.com
mambo dev:www.mambo-foundation.org
ywc#2
KConvert dev (convert character set)
www.keng-d.com
เที่ยวในไทย www.tour-in-thai.com
Keng:Suriya Kaewmungmuang
เก่ง:สุริยา แก้วมุงเมือง
กรรัตน์ ไชยรัตน์
มือใหม่หัดโพส
*

Karma: 0
Offline Offline

Posts: 5


« Reply #4 on: April 04, 2008, 01:09:43 am »

ไม่เข้าใจคำถามครับ อธิบายหน่อยครับ

/**********************************
ดิฉันเพิ่งมาได้จับ php ได้เดือนกว่า ๆ ค่ะ อาจารย์ (เคยไปลงเรียน mambo มา 3 คอร์ส)แต่เปลี่ยนงานได้ไปทำของ xtcommerce .. หนูต้องไปหา script อะไรก็ได้ที่รับค่าจากลูกค้าที่ซื้อของใน shop แล้วให้จำนวนสินค้าที่ลูกค้าซื้อไป ไป update อีก shop หนึ่งโดยการคลิก import เข้ามา และ คลิก export เพื่อเป็นการ update สินค้าค่ะ อาจารย์.. หนูไปเปิดหนังสือ php เจอ function session เค้าเขียนว่า "ในระบบ ecommerce การรับคำสั่งซื้อ การทำ shopping cart ฯลฯ จำเป็นอย่างยิ่งที่แต่ละเพจต้องอาศัยข้อมูลร่วมกันหรือส่งข้อมูลถึงกัน ไปถึงบันทึกลง database " แต่หนูอ่านแล้ว ลองทำแล้ว ผลออกมายังไม่ update ค่ะ อาจารย์
   ขึ้นข้อความ Error "Fatal error : cannot redeclarte xtc_sessoion_start() (previously declared in /page/20/..../function/sessions.php on line 76
>>line 76 ..function xtc_session_start(){
            return session_started();
เพิ่มเติมค่ะ : โจทย์งานที่หนูได้ ยังยากเกินไปสำหรับหนู น่ะค่ะอาจารย์ เพราะเพิ่งมาจับแค่เดือนกว่า ๆ หนูยังคิดไม่ออกค่ะ อาจารย์ว่าจะทำอย่างไงให้มัน update ไปด้วย แต่รู้ว่าต้องใช้ session ด้วยตัวหนึ่ง กับ array
รบกวนอาจารย์ด้วยค่ะ
อาจารย์ค่ะ .. อาจารย์น่าจะเปิดอีกคอร์สหนึ่งสอน php ด้วยน่ะค่ะ หนูเพิ่งไปลงเรียน php พื้นฐานมา เริ่มเรียนไปวันเดียวเอง แพงมากเลย..
ขอบคุณอาจารย์ค่ะ
Logged
i_am_keng
สิ่งที่หาไม่ได้ง่าย ๆ คือโอกาสทองของชีวิต
Global Moderator
เทพแห่งบอร์ด
*

Karma: 3
Offline Offline

Posts: 865


sc450617@at_hotmail_dot_com.com
WWW
« Reply #5 on: April 04, 2008, 08:59:26 am »

ถ้างั้นผมจะขออธิบายเรื่อง session แล้วกันนะครับ จริงๆ แล้ว session มันก็เป็นไฟล์ๆ นึงที่เก็บอยู่ฝั่ง server พอ client 1 thread เปิดหน้าเว็บขึ้นมา แล้วหน้าเว็บนั้นมีการใช้ session ก็จะมีการสร้างไฟล์ขึ้นมาไฟล์นึง ส่วนจะเก็บอยู่ตรงไหนนั้นขึ้นอยู่กับค่า session_save_path ของ php ซึ่งจะสามารถแก้ไขหรือเปิดดูได้อยู่ในไฟล์ php.ini อันนี้ก็แล้วแต่อีกว่า server เป็นอะไร ที่เก็บไฟล์ php.ini ก็จะไม่เหมือนกัน ในการใช้ session นั้น หน้าไหนมีการใช้ session ก็ให้ขึ้นต้นหน้านั้นๆด้วย session_start(); ตรงนี้สำคัญมากนะครับ ฟังก์ชั่นนี้จะต้องอยู่บนสุดเสมอ จะมีข้อความอะไรอยู่ก่อนไม่ได้เลย ยกตัวอย่างนะครับ
Code:
<?php
session_start
();
?>

<html>
<head>........</head>
<body>
.......
.......
.......
</body>
</html>

อันนี้เป็นตัวอย่างที่ผิดนะครับ อย่านำไปใช้
Code:
<html>
<head>........</head>
<body>
<?php
session_start
();
?>

.......
.......
.......
</body>
</html>
นี่แค่เป็นการเริ่มต้นใช้ session เท่านั้น ยังมีฟังก์ชั่นอื่นที่เกี่ยวข้องอีกครับ อย่างเช่น session_register(), session_unregister(), session_is_registered(), session_destroy()
จะขออธิบายคร่าวๆนะครับ session_register() ใช้สำหรับประกาศตัวแปร session ครับ
ตัวอย่าง
a.php
Code:
<?php
session_start
();
$barney "A big purple dinosaur.";//line a
session_register("barney");//line b

$zim "An invader from another planet.";
session_register("zim");

$spongebob "He's got square pants.";
session_register("spongebob");
?>

ให้สังเกตุค่าพารามิเตอร์กับชื่อของตัวแปรครับ จะต้องเหมือนกันเท่านั้น ลองดูที่สองบันทัดคือบันทัด a กับบันทัด b หมายความว่าประกาศตัวแปร session ชื่อ barney และให้ค่าเป็น "A big purple dinosaur." (สองบันทัดนี้สามารถสลับที่กันได้) บันทัดอื่นๆก็เช่นเดียวกัน ส่วนการนำไปใช้ในหน้าถัดไป ก็ให้ใช้แบบนี้ครับ
b.php
Code:
<?php
session_start
();
echo 
"barney : ".$_SESSION["barney"]."<br />";
echo 
"zim : ".$_SESSION["zim"]."<br />";
echo 
"spongebob : ".$_SESSION["spongebob"]."<br />";
?>

จะนำไปบวกลบคูณหารก็จัดการเองนะครับ สำหรับกรณีที่เราไม่อยากที่จะใช้ฟังก์ชั่น session_register() นั้นก็มีทางเลือกอีกสองทางครับ เรามาดูตัวอย่างในทำนองเดียวกันครับ แต่เขียนอีกแบบหนึ่ง
a.php
Code:
<?php
session_start
();
$_SESSION["barney"] = "A big purple dinosaur.";
$_SESSION["zim"] = "An invader from another planet.";
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
?>

การนำไปใช้
b.php
Code:
<?php
session_start
();
echo 
"barney : ".$_SESSION["barney"]."<br />";
echo 
"zim : ".$_SESSION["zim"]."<br />";
echo 
"spongebob : ".$HTTP_SESSION_VARS["spongebob"]."<br />";
?>

การประกาศใช้ตัวแปร session นั้นในทาง physical หมายความว่ามันจะไปสร้างชื่อตัวแปรและเก็บค่าชื่อกับตัวแปรที่เราสร้างขึ้นมาไว้ในไฟล์ session ของเรานั่นเอง(ตรงนี้สามารถเปิดดูได้ แต่เราต้องรู้ก่อนว่าไฟล์ session ของเรานั้นเก็บไว้ที่ไหน ถ้าอยากรู้ให้ใช้ฟังก์ชั่น session_save_path())
สำหรับ session_unregister() นั้นมีไว้สำหรับประกาศยกเลิกการใช้ตัวแปรครับ อันนี้จะยกเลิกเป็นตัวๆไปครับ ตัวอย่างนะครับ
c.php
Code:
<?php
session_start
();
session_unregister("barney");
?>

จากโค้ดหมายความว่าเราจะประกาศยกเลิกใช้ตัวแปรชื่อ "barney" ครับ ซึ่งในทาง physical ก็คือมันจะไปลบค่าออกจากไฟล์ session ของเรานั่นเอง
ฟังก์ชั่น session_is_registered() นั้นใช้สำหรับตรวจเช็คว่าชื่อตัวแปรดังกล่าวได้ถูกประกาศใช้ไปหรือยัง ตัวอย่างเช่น
d.php
Code:
<?php
session_start
();
if(
session_is_registered("barney")) {
    echo 
"barney : was registered<br />";
}
if(
session_is_registered("zim")) {
    echo 
"zim : was registered<br />";
}
if(
session_is_registered("spongebob")) {
    echo 
"spongebob : was registered<br />";
}
?>

ถ้าเรารันโปรแกรมมาตามลำดับ a.php, b.php, c.php จนถึง d.php เราจะเห็นว่า barney ถูกทำลายไปแล้วกรณีนี้ จะไม่พิมพ์ค่า "barney : was registered" ออกมา
ส่วน session_destroy() นั้นจะเป็นการทำลายตัวแปร session ทุกตัวของเราครับคือทำลายยกชุด ไม่ได้ทำลายแค่ตัวใดตัวหนึ่งครับ
ตัวอย่าง
e.php
Code:
<?php
session_start
();
session_destroy();
if(
session_is_registered("barney")) {
    echo 
"barney : was registered<br />";
}
if(
session_is_registered("zim")) {
    echo 
"zim : was registered<br />";
}
if(
session_is_registered("spongebob")) {
    echo 
"spongebob : was registered<br />";
}
?>

กรณีนี้จะไม่พิมพ์ค่าใดๆออกมาเลย เพราะโดนทำลายค่าไปหมดแล้วครับ

ยังมีฟังก์ชั่นอื่นๆที่เกี่ยวข้องอีกมากมายครับ แต่ไม่ค่อยจะได้ใช้(หรือว่าผมไม่ได้ใช้เองก็ไม่รู้) แต่อาจจะมีประโยชน์ก็ได้นะครับ ก็ลองไปศึกษาเพิ่มเติมดูครับ

ที่มา http://www.php.net
« Last Edit: April 05, 2008, 01:25:22 pm by i_am_keng » Logged

www.cakephp.in.th
www.hotel-reservation.in.th

mambo laithai:www.mambohub.com
mambo dev:www.mambo-foundation.org
ywc#2
KConvert dev (convert character set)
www.keng-d.com
เที่ยวในไทย www.tour-in-thai.com
Keng:Suriya Kaewmungmuang
เก่ง:สุริยา แก้วมุงเมือง
i_am_keng
สิ่งที่หาไม่ได้ง่าย ๆ คือโอกาสทองของชีวิต
Global Moderator
เทพแห่งบอร์ด
*

Karma: 3
Offline Offline

Posts: 865


sc450617@at_hotmail_dot_com.com
WWW
« Reply #6 on: April 04, 2008, 09:09:31 am »

แนะนำอีกนิดครับ ตอนจะสร้างฟังก์ชั่นให้ใช้อย่างนี้แทนครับ
Code:
<?php
if(!function_exists("xtc_sessoion_start")) {
      function 
xtc_sessoion_start() {
            ......
            ......
      }
}
?>

Logged

www.cakephp.in.th
www.hotel-reservation.in.th

mambo laithai:www.mambohub.com
mambo dev:www.mambo-foundation.org
ywc#2
KConvert dev (convert character set)
www.keng-d.com
เที่ยวในไทย www.tour-in-thai.com
Keng:Suriya Kaewmungmuang
เก่ง:สุริยา แก้วมุงเมือง
กรรัตน์ ไชยรัตน์
มือใหม่หัดโพส
*

Karma: 0
Offline Offline

Posts: 5


« Reply #7 on: April 04, 2008, 10:25:40 am »

แนะนำอีกนิดครับ ตอนจะสร้างฟังก์ชั่นให้ใช้อย่างนี้แทนครับ
Code:
<?php
if(!function_exists("xtc_sessoion_start")) {
      function 
xtc_sessoion_start() {
            ......
            ......
      }
}
?>



//**********************
ขอบคุณอาจารย์มาก ๆ ค่ะ ตอนนี้กำลังนั่งทำอยู่ค่ะ ทำตามที่อาจารย์แนะนำ  Smiley
Logged
Pages: [1]   Go Up
Print
Jump to: