|
|
|
session เปลี่ยนค่าเองครับ ขอรบกวนช่วยดูให้ด้วยครับ |
|
|
|
|
|
|
|
สวัสดีครับ วันนี้ผมงานเข้าอีกแล้ว = =''
คือผมตั้ง session ไว้สำหรับดึงข้อมูลของแต่ละ user มาโชว์ครับ เขียวโค้ดตามนี้
Code (ASP)
<?
$uid = $_SESSION["id"];
echo $id;
$current_page = 1;
if(isset($_GET['page'])){
$current_page = $_GET['page'];
}
$row_per_page = 15;
$start_row = ($current_page - 1) * $row_per_page;
$sql = "select SQL_CALC_FOUND_ROWS * FROM daily WHERE user_id = '$uid' ORDER BY daily_id DESC LIMIT $start_row, $row_per_page";
$result = mysql_query($sql);
?>
ตรง echo $id;ผมใช้เช็คค่า $id ที่ดึงมาครับ ทีนี้พอผมกดลิ้งแก้ไขข้อมูลในตารางที่โชว์ แล้วกดย้อนกลับมาดูมันเป็นแบบนี้ครับ
จะเห็นว่าตรง echo ค่ามันเปลี่ยนไปจาก 1 กลายเป็น 34 ซึ่งถ้าเทียบกับรูปแรก 34 เป็นเลขจากค่า id ในตารางที่ดึงมาครับ
พอจะมีวิธีทำให้เลขมันไม่เปลี่ยนไปมั้ยครับ? เพราะ $_SESSION["id"]; นี่ดึงค่าจากหน้า login แท้ๆ ไหงมาเพียนกับหน้าแก้ไขได้
ลืมไป อันนี้โค้ดหน้าลิ้งแก้ไขครับ
Code (ASP)
<?
session_start();
require_once("config.inc");
/*$host="localhost";
$user="data_db";
$pwd="3214";
$dbname="data_db";*/
mysql_connect($host,$user,$pwd) or die ("ติดต่อ Host ไม่ได้");
mysql_select_db($dbname) or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_query("SET NAMES utf8");
$id = $_GET['id'];
$table = $_GET['type'];
$query = mysql_query("select * from daily where daily_id = '$id' ");
$result = mysql_fetch_assoc($query);
$query2 = mysql_query("select * from event inner join event_list on event.event_type = event_list.list_id inner join event_detail on event.event_list = event_detail.detail_id where daily_id = '$id' ");
if(mysql_num_rows($query2)>0){
$list_id = array();
$list_type = array();
$detail_id = array();
$detail_name = array();
$event_detail = array();
$event_id = array();
while ( $sql = mysql_fetch_assoc($query2)){
array_push($list_id, $sql['list_id']);
array_push($list_type, $sql['list_type']);
array_push($detail_id, $sql['detail_id']);
array_push($detail_name, $sql['detail_name']);
array_push($event_detail, $sql['event_detail']);
array_push($event_id, $sql['event_id']);
}
$_SESSION['eid'] = $event_id;
$mydate=getdate(date("U"));
$myday = $mydate[mday]-1;
$d=strtotime($result['date']);
}
?>
Tag : PHP, MySQL, Web (ASP.NET), Windows
|
ประวัติการแก้ไข 2014-08-19 13:59:52
|
|
|
|
|
Date :
2014-08-19 13:50:09 |
By :
nimirue |
View :
2084 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$uid = $_SESSION["id"];
03.echo $id;
ตัวแปรคนละตัวหรือ พิมพ์ตกครับ
|
|
|
|
|
Date :
2014-08-19 14:02:36 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$uid = $_SESSION["id"]; ควรเป็น $uid = $_SESSION["uid"];
จะได้ไม่สับสนกับ บรรทัดที่ 12 $id = $_GET['id'];
|
|
|
|
|
Date :
2014-08-19 14:17:09 |
By :
chai19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เนื่องจากเอาโค๊ดมาแค่บางส่วน เลยต้องถามให้แน่ใจก่อนว่า session_start() มีอยู่ก่อนการเรียกใช้ $_SESSION ทุกไฟล์นะครับ
ใส่ข้างล่างนี้ ที่บันทัดแรกของ ไฟล์ที่มีปัญหา
Code (PHP)
<?php
session_start();
print_r($_SESSION); exit; // ทดสอบค่า ก่อนทำงานขั้นต่อไป
|
|
|
|
|
Date :
2014-08-19 14:21:55 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เปลียนบรรทัดที่ 23 เป็น $_SESSION["uid"] = $user_id;
และเปลี่ยนเป็น $uid = $_SESSION["uid"];
|
|
|
|
|
Date :
2014-08-19 14:22:18 |
By :
chai19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถูกต้อง
|
|
|
|
|
Date :
2014-08-19 14:35:00 |
By :
chai19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|