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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingสอบถาม เขียน code check-login อีกรอบค่ะ
หน้า: [1] 2   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: สอบถาม เขียน code check-login อีกรอบค่ะ  (อ่าน 8202 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
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">ชื่อผู้ใช้&nbsp;:&nbsp;</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">รหัสผ่าน&nbsp;:&nbsp;</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); ดูหน่อยครับ
บันทึกการเข้า

งดรับงาน custom coding เตรียมพบบริการใหม่เร็วๆนี้

รับทำ PHP หรือปรับระบบระดับ bigbig เน้น cache คนเข้าแบบกระฉูดๆ <- สมัยก่อน

KendoUI,Ajax,Json,Custom Framework,JqueryUI,Adodb,Memcache,Smarty <- สมัยก่อน

Indicator สัญญาณเทรดคมๆ

App เรียนเทรดพื้นฐาน
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
บันทึกการเข้า

งดรับงาน custom coding เตรียมพบบริการใหม่เร็วๆนี้

รับทำ PHP หรือปรับระบบระดับ bigbig เน้น cache คนเข้าแบบกระฉูดๆ <- สมัยก่อน

KendoUI,Ajax,Json,Custom Framework,JqueryUI,Adodb,Memcache,Smarty <- สมัยก่อน

Indicator สัญญาณเทรดคมๆ

App เรียนเทรดพื้นฐาน
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(); ขึ้นเป็นบรรทัดแรกสุด
บันทึกการเข้า

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