pum_pam
ก๊วนเสียว
พลังน้ำใจ: 63
ออฟไลน์
กระทู้: 273
|
|
« เมื่อ: 17 กรกฎาคม 2014, 14:01:49 » |
|
เขียน Code login แบบนี้แต่ session ไม่เก็บค่าเป็นค่าว่าง ต้องแก้ที่อะไรค่ะ
หน้า กรอกแบบฟอร์ม
<? session_start(); ?> <form id="form1" name="form1" method="post" action="check-login.php?Login=checklogin">
<td width="68" height="20" align="right" valign="middle">ชื่อผู้ใช้ : </td> <td width="132" align="left" valign="middle"><input name="username" type="text" class="inputbox" id="username" /></td> </tr> <tr id="link14"> <td height="28" align="right" valign="middle">รหัสผ่าน : </td> <td align="left" valign="middle"><input name="password" type="password" class="inputbox" id="password" /></td> </tr> <tr class="text12"> <td></td> <td height="25" align="left" valign="middle"><input type="image" src="images/bg/Button-login.png" name="Submit"/></td>
หน้าเช็ค ข้อมูล check-login.php <? ob_start(); session_start(); include('connect.php'); header("content-type: text/html; charset=UTF-8"); $username=trim($_REQUEST[username]); $password=md5(trim($_REQUEST[password])); $sql=mysql_query("Select * From tb_member Where username='$username' && password='$password'"); if(mysql_num_rows($sql)>0){ $row=mysql_fetch_array($sql); $_SESSION['id_mem']=$row[id_mem]; $_SESSION['username']=$row[username]; $_SESSION['name']=$row[name]; $_SESSION['province']=$row[province]; $_SESSION['status']=$row[status]; mysql_query("Update tb_member Set login=NOW() Where username=$row[username]"); echo"กำลังเข้าสู่ระบบ"; echo"<meta http-equiv='refresh' content='2;URL=tes.php'>"; }else{ echo"ไม่สามารถเข้าสู่ระบบได้"; echo"<meta http-equiv='refresh' content='2;URL=./.'>"; } ?>
หน้า tes.php หาก login ผ่านแสดงชื่อ user ที่ login
<? ob_start(); session_start(); ?>
<? echo $_SESSION["username"]; ?> <? echo $_SESSION["name"]; ?>
|
|
« แก้ไขครั้งสุดท้าย: 17 กรกฎาคม 2014, 14:19:41 โดย pum_pam »
|
บันทึกการเข้า
|
|
|
|
tlecreate
Newbie
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 44
|
|
« ตอบ #1 เมื่อ: 17 กรกฎาคม 2014, 14:11:25 » |
|
ยัง งง นิดๆ SESSION ตัวไหนเก็บค่าว่างหรอครับ
|
|
|
บันทึกการเข้า
|
|
|
|
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 493
ออฟไลน์
กระทู้: 5,905
|
|
« ตอบ #2 เมื่อ: 17 กรกฎาคม 2014, 14:12:20 » |
|
ลอง echo $row[username] กับ echo $row[name] ก่อนเก็บค่าลง Session ดูครับ ดูว่ามันมีค่าหรือเปล่าครับ
|
|
|
บันทึกการเข้า
|
|
|
|
pum_pam
ก๊วนเสียว
พลังน้ำใจ: 63
ออฟไลน์
กระทู้: 273
|
|
« ตอบ #3 เมื่อ: 17 กรกฎาคม 2014, 14:20:37 » |
|
ยัง งง นิดๆ SESSION ตัวไหนเก็บค่าว่างหรอครับ
หน้า tes.php หาก login ผ่านแสดงชื่อ user ที่ login ค่ะ <? ob_start(); session_start(); ?> <? echo $_SESSION["username"]; ?> <? echo $_SESSION["name"]; ?>
|
|
|
บันทึกการเข้า
|
|
|
|
pum_pam
ก๊วนเสียว
พลังน้ำใจ: 63
ออฟไลน์
กระทู้: 273
|
|
« ตอบ #4 เมื่อ: 17 กรกฎาคม 2014, 14:25:00 » |
|
ลอง echo $row[username] กับ echo $row[name] ก่อนเก็บค่าลง Session ดูครับ ดูว่ามันมีค่าหรือเปล่าครับ
มีค่ะแต่พอใช้คำสั่ง echo"<meta http-equiv='refresh' content='2;URL=tes.php'>"; เพื่อให้แสดงผล user ใน หน้า tes.php หาก login ผ่านแสดงชื่อ user ที่ login มันไม่แสดงในหน้านี้ค่ะ tes.php <? ob_start(); session_start(); ?> <? echo $_SESSION["username"]; ?> <? echo $_SESSION["name"]; ?>
|
|
|
บันทึกการเข้า
|
|
|
|
siamjung
Verified Seller
ก๊วนเสียว
พลังน้ำใจ: 25
ออฟไลน์
กระทู้: 419
|
|
« ตอบ #5 เมื่อ: 20 กรกฎาคม 2014, 20:09:39 » |
|
หน้า tes.php
ลองใส่โค๊ด print_r($_SESSION); ดูหน่อยครับ
|
|
|
บันทึกการเข้า
|
|
|
|
max30012540
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 196
ออฟไลน์
กระทู้: 1,310
|
|
« ตอบ #6 เมื่อ: 20 กรกฎาคม 2014, 22:31:12 » |
|
<?Php ob_start(); session_start(); ?>
<?Php echo $_SESSION["username"]; ?> <?Php echo $_SESSION["name"]; ?>
<? ยกเลิกใช้ไปแล้วครับ แนะนำให้ใช้ <?Php แทนครับ
ส่วน print_r() แสดงได้แค่ Array แนะนำ var_dump() ที่แสดงชนิดตัวแปรออกมาด้วยครับ
|
|
|
บันทึกการเข้า
|
|
|
|
pum_pam
ก๊วนเสียว
พลังน้ำใจ: 63
ออฟไลน์
กระทู้: 273
|
|
« ตอบ #7 เมื่อ: 26 กรกฎาคม 2014, 14:12:59 » |
|
หน้า tes.php
ลองใส่โค๊ด print_r($_SESSION); ดูหน่อยครับ
ลองทดสอบ session ใส่ code นี้เข้าไปแล้วลอง รีเฟชดู <?PHP session_start(); print_r($_SESSION); if (!isset($_SESSION['count'])) { $_SESSION['count'] = 0; } else { $_SESSION['count']++; } echo "<br>". session_id(); ?> ได้ค่านี้ออกมาค่ะ Array ( ) udubk9tourlghoq8rp7ll9e2j3 แต่ถ้าทดสอบในจำลอง localhost จะได้ค่านี้ออกมาค่ะหากรีเฟชหลายรอบค่า count ก็จะเพิ่มขึ้นเรื่อยๆ ค่ะ Array ( [count] => 18 ) 80cae9d3bdf42a0b8b7cacd4a1578177 แบบนี้ต้องไปแก้ที่ตรงไหนค่ะ
|
|
|
บันทึกการเข้า
|
|
|
|
ยิ้มโค้ด.คอม
สมุนแก๊งเสียว
พลังน้ำใจ: 83
ออฟไลน์
กระทู้: 729
|
|
« ตอบ #8 เมื่อ: 26 กรกฎาคม 2014, 17:35:07 » |
|
หน้า tes.php
ลองใส่โค๊ด print_r($_SESSION); ดูหน่อยครับ
ลองทดสอบ session ใส่ code นี้เข้าไปแล้วลอง รีเฟชดู <?PHP session_start(); print_r($_SESSION); if (!isset($_SESSION['count'])) { $_SESSION['count'] = 0; } else { $_SESSION['count']++; } echo "<br>". session_id(); ?> ได้ค่านี้ออกมาค่ะ Array ( ) udubk9tourlghoq8rp7ll9e2j3 แต่ถ้าทดสอบในจำลอง localhost จะได้ค่านี้ออกมาค่ะหากรีเฟชหลายรอบค่า count ก็จะเพิ่มขึ้นเรื่อยๆ ค่ะ Array ( [count] => 18 ) 80cae9d3bdf42a0b8b7cacd4a1578177 แบบนี้ต้องไปแก้ที่ตรงไหนค่ะ print_r คือการแสดงค่าใน array ออกมาครับที่มัน +1 ไปเรื่อยๆ ก็ถูกแล้วน่ะครับเพราะโค้ดมันสั่งให้บวกหนึ่งเมื่อมีค่าตัวแปร $_SESSION['count'] นิครับ
|
|
|
บันทึกการเข้า
|
|
|
|
siamjung
Verified Seller
ก๊วนเสียว
พลังน้ำใจ: 25
ออฟไลน์
กระทู้: 419
|
|
« ตอบ #9 เมื่อ: 27 กรกฎาคม 2014, 19:38:19 » |
|
สรุปประเด็นคือคุณไม่มีค่าการ login อยู่ดีนะครับ
$_SESSION['id_mem']=$row[id_mem]; $_SESSION['username']=$row[username]; $_SESSION['name']=$row[name]; $_SESSION['province']=$row[province]; $_SESSION['status']=$row[status];
ผมว่าลองเช็ค check-login.php
echo $row['username'].'<br />'.$row['name'];
ค่าพวกนี้คุณออกหรือป่าวครับ ก่อนเก็บเข้า SESSION
|
|
|
บันทึกการเข้า
|
|
|
|
jenovazac
คนรักเสียว
พลังน้ำใจ: 6
ออฟไลน์
กระทู้: 134
|
|
« ตอบ #10 เมื่อ: 27 กรกฎาคม 2014, 21:51:09 » |
|
ลองแก้ตามนนี้ ครับ ไฟล์ check-login.php
<?php ob_start(); session_start(); include('connect.php'); header("content-type: text/html; charset=UTF-8"); $username=trim($_REQUEST[username]); $password=md5(trim($_REQUEST[password])); $sql=mysql_query("Select * From tb_member Where username='$username' && password='$password'"); if(mysql_num_rows($sql)>0){
while($row=mysql_fetch_array($sql)){
$_SESSION['id_mem']=$row['id_mem']; $_SESSION['username']=$row['username']; $_SESSION['name']=$row['name']; $_SESSION['province']=$row['province']; $_SESSION['status']=$row['status']; mysql_query("Update tb_member Set login=NOW() Where username='$row[username]'");
}
echo"กำลังเข้าสู่ระบบ<br>";
print_r($_SESSION);
//echo"<meta http-equiv='refresh' content='2;URL=tes.php'>";
}else{ echo"ไม่สามารถเข้าสู่ระบบได้"; //echo"<meta http-equiv='refresh' content='2;URL=./.'>"; }
ob_end_flush(); ?>
|
|
« แก้ไขครั้งสุดท้าย: 27 กรกฎาคม 2014, 22:00:58 โดย jenovazac »
|
บันทึกการเข้า
|
|
|
|
pum_pam
ก๊วนเสียว
พลังน้ำใจ: 63
ออฟไลน์
กระทู้: 273
|
|
« ตอบ #11 เมื่อ: 28 กรกฎาคม 2014, 14:30:39 » |
|
ลองแก้ตามนนี้ ครับ ไฟล์ check-login.php
<?php ob_start(); session_start(); include('connect.php'); header("content-type: text/html; charset=UTF-8"); $username=trim($_REQUEST[username]); $password=md5(trim($_REQUEST[password])); $sql=mysql_query("Select * From tb_member Where username='$username' && password='$password'"); if(mysql_num_rows($sql)>0){
while($row=mysql_fetch_array($sql)){
$_SESSION['id_mem']=$row['id_mem']; $_SESSION['username']=$row['username']; $_SESSION['name']=$row['name']; $_SESSION['province']=$row['province']; $_SESSION['status']=$row['status']; mysql_query("Update tb_member Set login=NOW() Where username='$row[username]'");
}
echo"กำลังเข้าสู่ระบบ<br>";
print_r($_SESSION);
//echo"<meta http-equiv='refresh' content='2;URL=tes.php'>";
}else{ echo"ไม่สามารถเข้าสู่ระบบได้"; //echo"<meta http-equiv='refresh' content='2;URL=./.'>"; }
ob_end_flush(); ?>
ลองเอาโค๊ตที่ให้มาข้างบนไปรันในหน้า check-login.php รันได้ตามปกติค่ะข้อมูลสมาชิกออกมาหมดแต่พอ refreshส่งไปหน้า tes.php กลับเป็นค่าว่างค่ะ รู้สึกว่าจะเป็นปัญหาเดียวกันกับlink นี้ค่ะ http://www.thaiadmin.org/board/index.php?topic=47775.0 แต่ลองconfig โฮสเหมือนเค้าแล้ว ก็ไม่หายค่ะรู้สึกว่าจะเป็นปัญหาหมดที่ใช้งานส่งค่า session ข้ามหน้า page หน้าสมัครสมาชิกก็เป็นค่ะ <?PHP session_start(); print_r($_SESSION); if (!isset($_SESSION['count'])) { $_SESSION['count'] = 0; } else { $_SESSION['count']++; } echo "<br>". session_id(); ?> ลองทดสอบ session ของโฮสต์ใส่ code ด้านล่างบนไปได้ค่านี้ออกมาค่ะ Array ( ) ttjkmj0clser1d6a8jqqov5dm4 งงว่าในอาเรย์มัยไม่มีค่าไรออกมารีเฟสกี่รอบก็เป็นเหมือนเดิมค่ะ
|
|
|
บันทึกการเข้า
|
|
|
|
mikeyx
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 268
ออฟไลน์
กระทู้: 4,007
|
|
« ตอบ #12 เมื่อ: 28 กรกฎาคม 2014, 14:37:44 » |
|
เปลี่ยน _REQUEST เป็น _POST ด้วยครับ php version ใหม่ ๆ คำสั่ง _REQUEST รู้สึกจะไม่ค่อยสเถียร
|
|
|
บันทึกการเข้า
|
|
|
|
pum_pam
ก๊วนเสียว
พลังน้ำใจ: 63
ออฟไลน์
กระทู้: 273
|
|
« ตอบ #13 เมื่อ: 28 กรกฎาคม 2014, 14:54:19 » |
|
เปลี่ยน _REQUEST เป็น _POST ด้วยครับ php version ใหม่ ๆ คำสั่ง _REQUEST รู้สึกจะไม่ค่อยสเถียร
ใส่แล้วก็ไม่ได้เหมือนเดิมค่ะ
|
|
|
บันทึกการเข้า
|
|
|
|
jenovazac
คนรักเสียว
พลังน้ำใจ: 6
ออฟไลน์
กระทู้: 134
|
|
« ตอบ #14 เมื่อ: 28 กรกฎาคม 2014, 16:05:16 » |
|
<?php session_start(); print_r($_SESSION); /* if (!isset($_SESSION['count'])) { $_SESSION['count'] = 0; } else { $_SESSION['count']++; } echo "<br>". session_id(); */ ?>
code นี้ใช้ได้ไม่มีปัญหา ใดๆครับ ทดสอบให้แล้ว
|
|
|
บันทึกการเข้า
|
|
|
|
jenovazac
คนรักเสียว
พลังน้ำใจ: 6
ออฟไลน์
กระทู้: 134
|
|
« ตอบ #15 เมื่อ: 28 กรกฎาคม 2014, 16:16:27 » |
|
ใช้ appserv หรือ Xampp เวอร์ชั่นไหนครับ
ผมทดสอบ กับ appserv 2.5.10 ไม่มีการปรับแต่งอะไร ใช้การตั้งค่าแบบเดิม สคริปใช้ได้
|
|
|
บันทึกการเข้า
|
|
|
|
pum_pam
ก๊วนเสียว
พลังน้ำใจ: 63
ออฟไลน์
กระทู้: 273
|
|
« ตอบ #16 เมื่อ: 28 กรกฎาคม 2014, 16:23:31 » |
|
ใช้ appserv หรือ Xampp เวอร์ชั่นไหนครับ
ผมทดสอบ กับ appserv 2.5.10 ไม่มีการปรับแต่งอะไร ใช้การตั้งค่าแบบเดิม สคริปใช้ได้
เด่วเช็คให้อีกทีนะคะตอนนี้ โฮสตล่มอยู่ค่ะเช็คยังไม่ได้ค่ะแต่ก่อนหน้านี้code ก็เคยใช้งานได้ค่ะตอนที่ใช้งานได้ก็ไม่ได้สังเกตว่าเวอร์ชั่นไหนค่ะ
|
|
|
บันทึกการเข้า
|
|
|
|
jenovazac
คนรักเสียว
พลังน้ำใจ: 6
ออฟไลน์
กระทู้: 134
|
|
« ตอบ #17 เมื่อ: 28 กรกฎาคม 2014, 16:28:40 » |
|
ถ้ารันบนโฮส ให้ติดต่อเจ้าของโฮสเลยครับ แจ้งปัญหาให้โฮส แล้วส่ง code ให้เค้าเช็คให้เลยครับ
|
|
|
บันทึกการเข้า
|
|
|
|
pum_pam
ก๊วนเสียว
พลังน้ำใจ: 63
ออฟไลน์
กระทู้: 273
|
|
« ตอบ #18 เมื่อ: 29 กรกฎาคม 2014, 08:31:53 » |
|
ใช้ appserv หรือ Xampp เวอร์ชั่นไหนครับ
ผมทดสอบ กับ appserv 2.5.10 ไม่มีการปรับแต่งอะไร ใช้การตั้งค่าแบบเดิม สคริปใช้ได้
ใช้ PHP Version 5.3.3 ค่ะ
|
|
|
บันทึกการเข้า
|
|
|
|
dekdoo
สมุนแก๊งเสียว
พลังน้ำใจ: 58
ออฟไลน์
กระทู้: 891
|
|
« ตอบ #19 เมื่อ: 29 กรกฎาคม 2014, 10:52:04 » |
|
ลองเอา session_start(); ขึ้นเป็นบรรทัดแรกสุด
|
|
|
บันทึกการเข้า
|
|
|
|
|