ช่วยดูตรวจ Code PHP (data MS SQL) ทำไม loginไม่ผ่าน ไม่เก็บค่า Seeison เลย

เริ่มโดย modoindy, 11 กันยายน 2017, 18:08:20

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

modoindy

ช่วยดูตรวจ Code PHP (data MS SQL) ทำไม loginไม่ผ่าน ไม่เก็บค่า Seeison เลย

ขอบคุนจ้าล่วงหน้า

****ส่งค่า

<form name="form1" method="post" action="login.php">               
<input name="username" type="text" id="username">
<input name="password" type="text" id="password">
        <input type="submit" name="Submit" value="Login">
   </form>



************************************************

*****รับค่า

<?php
@session_start();

$loginname=$username;
$loginpass=$password;

$objConnect = mssql_connect("111111","sa","10101") or die("Error Connect to Database");
$objDB = mssql_select_db("DATA");
$strSQL = "SELECT * FROM tb WHERE (code = '$loginname') AND (Pass = '$loginpass')" or die("Not Login");
$objQuery = mssql_query($strSQL);
   $objResult = mssql_fetch_array($objQuery);
   if(!$objResult)
   {
   echo "<font color='#ff0000'><b>Username  : !!  ";
      }
   else
   {
   session_register("Sai");
   session_register("Am");
   $_SESSION['Sai'] = $objResult['Sai'];
   $_SESSION['Am'] = $objResult['Am'];
   session_write_close();
   echo"<meta http-equiv='refresh' content='0;URL=admin.php'>";   
}
      

?>




****************************


admin.php

<?php
ob_start();
@session_start();


   if($_SESSION["Sai"] == "")
   {
      header("location:index.php");
      exit();
   }

$Sai = $_SESSION['Sai'] ;
$Am =  $_SESSION['Am'] ;

?>



<img src='images/icon_user.png' border='0' />  <?=$_SESSION['Sai']?>

ไม่เข้าถึงหน้านี้เลย  ดีดกลับไปหน้า login
[/size][/color]

iCeEffecT

น่าจะเป็นที่ hosting ส่วนใหญ่ตอนนี้ php 5.6 ขึ้นไป session_register ถูกยกเลิกการใช้งานแล้วครับ ทางแก้คือเปลี่ยนคำสั่งบันทึก session ครับ จากโค้ดด้านบนลบ 2 บรรทัดที่เป็น session_register ออกในไฟล์แรก และไฟล์ admin ลองเปลี่ยน เอาคำสั่ง @session_start() ไปไว้บนสุด ก่อนคำสั่ง ob_start(); ดูครับ น่าจะใช้งานได้ครับ

ขอแนะนำว่าเวลาใช้งานถ้ามันรันคำสั่งไหนแล้วไม่ได้แบบที่ต้องการให้ลบเครื่องหมาย @ ออกเพื่อเปิด debug คำสั่ง มันจะได้พ่น error มาว่าสาเหตุที่ทำงานไม่ได้เพราะอะไรครับ พอคำสั่งใช้งานได้แล้วค่อยไปปิด debug ไว้ครับ

esanza.com

อ้างถึงจาก: iCeEffecT ใน 11 กันยายน 2017, 18:38:59
น่าจะเป็นที่ hosting ส่วนใหญ่ตอนนี้ php 5.6 ขึ้นไป session_register ถูกยกเลิกการใช้งานแล้วครับ ทางแก้คือเปลี่ยนคำสั่งบันทึก session ครับ จากโค้ดด้านบนลบ 2 บรรทัดที่เป็น session_register ออกในไฟล์แรก และไฟล์ admin ลองเปลี่ยน เอาคำสั่ง @session_start() ไปไว้บนสุด ก่อนคำสั่ง ob_start(); ดูครับ น่าจะใช้งานได้ครับ

ขอแนะนำว่าเวลาใช้งานถ้ามันรันคำสั่งไหนแล้วไม่ได้แบบที่ต้องการให้ลบเครื่องหมาย @ ออกเพื่อเปิด debug คำสั่ง มันจะได้พ่น error มาว่าสาเหตุที่ทำงานไม่ได้เพราะอะไรครับ พอคำสั่งใช้งานได้แล้วค่อยไปปิด debug ไว้ครับ
ตามท่านนี้คับ
กำลังจะทักเรื่อง session_register พอดีคับ
ใครต้องการเช่าโฮสที่มี Control Panel ดีๆ
และ Support ดี แนะนำ => [direct=https://support.hostatom.com/aff.php?aff=456]โฮสอะตอม[/direct]

goragod

ใช้ PHP 5.2 เคยสินะ แนะนำให้ปรับวิธีการเขียนโดยด่วน

การรับค่าจากฟอร์มต้องรับด้วย $_GET หรือ $_POST ในกรณีข้างบนน่าจะเป็น

$loginname=$_POST['username'];
$loginpass=$_POST['password'];

หรือใช้ filter_input() เพื่อความปลอดภัยที่สูงกว่า

modoindy

Thk คุณ goragod

Thk คุณ esanza com

Thk คุณ iCeEffecT


เดี่ยวขอลอง ขอบคุณมากเลยน่ะ น้ำใจงาม  :wanwan008: :-[

modoindy

อ้างถึงจาก: esanza.com ใน 11 กันยายน 2017, 20:07:43
อ้างถึงจาก: iCeEffecT ใน 11 กันยายน 2017, 18:38:59
น่าจะเป็นที่ hosting ส่วนใหญ่ตอนนี้ php 5.6 ขึ้นไป session_register ถูกยกเลิกการใช้งานแล้วครับ ทางแก้คือเปลี่ยนคำสั่งบันทึก session ครับ จากโค้ดด้านบนลบ 2 บรรทัดที่เป็น session_register ออกในไฟล์แรก และไฟล์ admin ลองเปลี่ยน เอาคำสั่ง @session_start() ไปไว้บนสุด ก่อนคำสั่ง ob_start(); ดูครับ น่าจะใช้งานได้ครับ

ขอแนะนำว่าเวลาใช้งานถ้ามันรันคำสั่งไหนแล้วไม่ได้แบบที่ต้องการให้ลบเครื่องหมาย @ ออกเพื่อเปิด debug คำสั่ง มันจะได้พ่น error มาว่าสาเหตุที่ทำงานไม่ได้เพราะอะไรครับ พอคำสั่งใช้งานได้แล้วค่อยไปปิด debug ไว้ครับ
ตามท่านนี้คับ
กำลังจะทักเรื่อง session_register พอดีคับ



ได้ลองทดสอบ  แล้ว $objConnect = mysql_connect  session ทำงานตามปกติ แต่ ทำไม
              $objConnect = mssql_connect   session ไม่ทำงาน เกิดจากอะไรเหอร  
               ทั้ง 2data login เข้าได้แต่ไม่เก็บค่า session   
          ของ mssql