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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[PHP] กำหนดได้มั้ยครับว่า พอคนเข้าเว็บ กด f5 แล้วให้เปลี่ยน action ตรง url?
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [PHP] กำหนดได้มั้ยครับว่า พอคนเข้าเว็บ กด f5 แล้วให้เปลี่ยน action ตรง url?  (อ่าน 1380 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
charlie
ก๊วนเสียว
*

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

กระทู้: 219



ดูรายละเอียด เว็บไซต์
« เมื่อ: 13 สิงหาคม 2009, 12:02:38 »

คืองี้ครับ ปกติ url เดิม คือ shoppingcart.php?action=CartAdd...บลาๆ

อยากให้ พอที่เครื่องผู้ใช้ กด f5 หรือ refreshpage แล้ว ให้เปลี่ยนคำใน url ตรง action เป็น CartGet แทนหน่ะครับ

ขอบคุณล่วงหน้าสำหรับทุกคำตอบครับ Smiley
บันทึกการเข้า

morizaki
ก๊วนเสียว
*

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

กระทู้: 499



ดูรายละเอียด
« ตอบ #1 เมื่อ: 13 สิงหาคม 2009, 13:43:43 »

ทางเทคนิคเท่าที่ทำมา คิดว่าไม่น่าจะได้นะครับ Smiley

ยังไงรอความคิดเห็นคนอื่นก็ดีครับ โลกนี้มันกว้างผมอาจจะยังอยู่ในกะลาก็เป็นได้ Tongue
บันทึกการเข้า
mr.sit
สมุนแก๊งเสียว
*

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

กระทู้: 616



ดูรายละเอียด
« ตอบ #2 เมื่อ: 13 สิงหาคม 2009, 14:05:30 »

ใช้ session ครับ เข้าหน้า cartadd ครั้งแรก ใส่ค่าอะไรสักอย่างใส่ session ไว้ พอ reload หน้าเว็บที่ cartadd เดิม ก็เช็กว่าถ้ารอบนี้ session ไม่เป็นค่าว่างๆ (แสดงว่าเคยเข้าหน้านี้ไปแล้ว) ก็ให้ redirect ไปหน้า cartget แทน ชะเอิงเงย
บันทึกการเข้า
charlie
ก๊วนเสียว
*

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

กระทู้: 219



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 13 สิงหาคม 2009, 15:04:02 »

ใช้ session ครับ เข้าหน้า cartadd ครั้งแรก ใส่ค่าอะไรสักอย่างใส่ session ไว้ พอ reload หน้าเว็บที่ cartadd เดิม ก็เช็กว่าถ้ารอบนี้ session ไม่เป็นค่าว่างๆ (แสดงว่าเคยเข้าหน้านี้ไปแล้ว) ก็ให้ redirect ไปหน้า cartget แทน ชะเอิงเงย

ยกตัวอย่างเป็น code คร่าวๆ ได้มั้ยครับ ผมไม่ค่อยสันทัดเรื่อง session
บันทึกการเข้า

morizaki
ก๊วนเสียว
*

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

กระทู้: 499



ดูรายละเอียด
« ตอบ #4 เมื่อ: 13 สิงหาคม 2009, 15:48:48 »

ใช้ session ครับ เข้าหน้า cartadd ครั้งแรก ใส่ค่าอะไรสักอย่างใส่ session ไว้ พอ reload หน้าเว็บที่ cartadd เดิม ก็เช็กว่าถ้ารอบนี้ session ไม่เป็นค่าว่างๆ (แสดงว่าเคยเข้าหน้านี้ไปแล้ว) ก็ให้ redirect ไปหน้า cartget แทน ชะเอิงเงย

oh oh oh get เลย ทำไมเข็มขัดผมสั้นล่ะเนี่ย(*คาดไม่ถึง Grin)
เขียน Coding น่าจะประมาณนี้มั้ง
shoppingcart.php?action=CartAdd
โค๊ด:
<?
  if (empty($_SESSION["mAction"])) { //อันนี้ทำงานครั้งแรกกรณีมาจาก CartAdd
     $_SESSION["mAction"]=$_GET["action"];
     //จะทำอะไรใน case CartAdd ก็ว่าไป
  }
  else { //กด F5 อีกครั้ง จะมีค่าใน session อยู่แล้วมันจะเข้ามาตรงนี้
      //จะทำอะไรใน case CartGet ก็ใส่ไป
     //กรณีอยากให้เข้า CartAdd ใหม่หลัง CartGet ต้องเคลียร์ค่า session ด้วยครับ
     $_SESSION["mAction"]=""; //อันนี้แล้วแต่นะ
  }
?>

คงประมาณนี้น่ะครับ มั่วไปเรื่อยอย่าเชื่อมาก... Grin Grin
บันทึกการเข้า
ohmohm
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 3,092



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 13 สิงหาคม 2009, 23:59:22 »

ไม่อยากให้ พอเข้าถึงหน้า หยิบใส่ตะกร้า้ ถ้าสมมติกด refresh แล้ว ไม่อยากให้หยิบเพิ่มใช่ไหมครับ
พูกถึงเรื่อง refresh แล้ว นึกถึง AJAX เลย
เปลี่ยนแนว เป็นไม่มี CartAdd เลย ให้กดที่สินค้่าแล้วเป็น AJAX ไปเรียก CartAdd ไหวไหมครับ
บันทึกการเข้า
charlie
ก๊วนเสียว
*

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

กระทู้: 219



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 14 สิงหาคม 2009, 00:22:27 »

ไม่อยากให้ พอเข้าถึงหน้า หยิบใส่ตะกร้า้ ถ้าสมมติกด refresh แล้ว ไม่อยากให้หยิบเพิ่มใช่ไหมครับ
พูกถึงเรื่อง refresh แล้ว นึกถึง AJAX เลย
เปลี่ยนแนว เป็นไม่มี CartAdd เลย ให้กดที่สินค้่าแล้วเป็น AJAX ไปเรียก CartAdd ไหวไหมครับ

เหอๆ ยังไม่เคยใช้ AJAX เลยครับ แต่สงสัยคงต้องลองดูหน่อย

ผมลองเกือบทุกวิธีแล้วครับ ไม่ว่า ใช้ session cookie ยังไม่ได้ผลเลย Cry
แต่ไม่แน่อาจจะมีคนทำได้ก็ได้
บันทึกการเข้า

charlie
ก๊วนเสียว
*

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

กระทู้: 219



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 14 สิงหาคม 2009, 00:23:51 »

ใช้ session ครับ เข้าหน้า cartadd ครั้งแรก ใส่ค่าอะไรสักอย่างใส่ session ไว้ พอ reload หน้าเว็บที่ cartadd เดิม ก็เช็กว่าถ้ารอบนี้ session ไม่เป็นค่าว่างๆ (แสดงว่าเคยเข้าหน้านี้ไปแล้ว) ก็ให้ redirect ไปหน้า cartget แทน ชะเอิงเงย

oh oh oh get เลย ทำไมเข็มขัดผมสั้นล่ะเนี่ย(*คาดไม่ถึง Grin)
เขียน Coding น่าจะประมาณนี้มั้ง
shoppingcart.php?action=CartAdd
โค๊ด:
<?
  if (empty($_SESSION["mAction"])) { //อันนี้ทำงานครั้งแรกกรณีมาจาก CartAdd
     $_SESSION["mAction"]=$_GET["action"];
     //จะทำอะไรใน case CartAdd ก็ว่าไป
  }
  else { //กด F5 อีกครั้ง จะมีค่าใน session อยู่แล้วมันจะเข้ามาตรงนี้
      //จะทำอะไรใน case CartGet ก็ใส่ไป
     //กรณีอยากให้เข้า CartAdd ใหม่หลัง CartGet ต้องเคลียร์ค่า session ด้วยครับ
     $_SESSION["mAction"]=""; //อันนี้แล้วแต่นะ
  }
?>

คงประมาณนี้น่ะครับ มั่วไปเรื่อยอย่าเชื่อมาก... Grin Grin

ก็ยังไม่ได้หน่ะครับ เหอๆ แต่มะเป็นไร ขอบคุณครับสำหรับคำตอบ เด๋วว่าจะลองใช้ AJAX อย่างที่คุณ ohmohn บอกดู Smiley
บันทึกการเข้า

barco
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,065



ดูรายละเอียด
« ตอบ #8 เมื่อ: 14 สิงหาคม 2009, 00:35:32 »

session_start();   รึัยังเอ่ย  Tongue
บันทึกการเข้า
charlie
ก๊วนเสียว
*

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

กระทู้: 219



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 14 สิงหาคม 2009, 00:36:59 »

session_start();   รึัยังเอ่ย  Tongue


แล้วครับ  Tongue
บันทึกการเข้า

barco
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,065



ดูรายละเอียด
« ตอบ #10 เมื่อ: 14 สิงหาคม 2009, 00:53:24 »

เดี๋ยวลองแก้ code ให้รอซักครู่  Tongue
บันทึกการเข้า
barco
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,065



ดูรายละเอียด
« ตอบ #11 เมื่อ: 14 สิงหาคม 2009, 01:18:29 »

เสร็จและ ไปลองเล่นดูละกันครับเทสแล้วใช้งานได้

code
โค๊ด:
<?php
session_start
();  
if(!isset(
$_SESSION['maction'])){
    
$_SESSION['maction'] = $_GET["action"];
echo 
$_SESSION['maction'];
// ทำอะไรก็ว่าไป
}
else if(
$_SESSION['maction']=='CartAdd'){
    
header("location:test01.php?action=CartGet");
$_SESSION['maction']='CartGet';
// ทำอะไรก็ว่าไป
}
else{
// กรณีกด f5 อีกรอบ อยากทำอะไรก็ว่าไป จะส่งไป if แรกใหม่หรือ ใน elseif ก็แล้วแต่
echo "success : )";
        
session_destroy();
}

?>
« แก้ไขครั้งสุดท้าย: 14 สิงหาคม 2009, 01:21:49 โดย barco » บันทึกการเข้า
morizaki
ก๊วนเสียว
*

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

กระทู้: 499



ดูรายละเอียด
« ตอบ #12 เมื่อ: 14 สิงหาคม 2009, 06:55:46 »

session_start();   รึัยังเอ่ย  Tongue


 Shocked ถูกต้องเลยครับ อันนั้นผมเขียนแบบไม่ได้รัน...... แหะ....แหะ......ขออภัย...ข้าน้อยสมควรตาย Lips Sealed Lips Sealed
ใส่ session_start(); ก่อนด้วยครับ Grin Grin
บันทึกการเข้า
เก๋าลัดคุง
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 3,903



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 14 สิงหาคม 2009, 08:59:47 »

<?php session_start() ; ?>

ไว้บนบรรทัดแล้วของ Page

โค๊ด:
<?php session_start() ; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
บันทึกการเข้า

charlie
ก๊วนเสียว
*

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

กระทู้: 219



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 14 สิงหาคม 2009, 15:43:45 »

เสร็จและ ไปลองเล่นดูละกันครับเทสแล้วใช้งานได้

code
โค๊ด:
<?php
session_start
();  
if(!isset(
$_SESSION['maction'])){
    
$_SESSION['maction'] = $_GET["action"];
echo 
$_SESSION['maction'];
// ทำอะไรก็ว่าไป
}
else if(
$_SESSION['maction']=='CartAdd'){
    
header("location:test01.php?action=CartGet");
$_SESSION['maction']='CartGet';
// ทำอะไรก็ว่าไป
}
else{
// กรณีกด f5 อีกรอบ อยากทำอะไรก็ว่าไป จะส่งไป if แรกใหม่หรือ ใน elseif ก็แล้วแต่
echo "success : )";
        
session_destroy();
}

?>


ได้แล้วค้าบบบบบบบบบ!!!   

ขอบคุณมากครับคุณ barco Cry
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์