ใช้ post รับค่าจาก form แล้วเอาค่าไปใช้ต่อไม่ได้อ่ะค่ะ

คือปัญหาตอนนี้ไมันตรวจสอบค่าไม่ได้เลยอ่ะค่ะ ตกเงื่อนไข if ที่ว่า username ไม่ผ่าน pw
ช่วยดูให้หน่อยนะค่ะ
หนูคิดว่าปัญหาน่าจะอยู่ที่ค่าที่รับมาจาก method post ของ form นะค่ะ
แก้ไม่ได้จริงค่ะ ขอความกรุณาด้วยค่า

ฐานข้อมูลเป็น utf8_unicode_ci ทั้งหมดเลยค่ะ

form.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>:: NSC AdminLogin ::</title>
</head>
<H1>:: Admin Login ::</H1>
<FORM  METHOD="POST"   ACTION="admin_check.php">
<TABLE  WIDTH="260" >
<TR>
    <TD>Username  :</TD>
    <TD><INPUT NAME="user" TYPE="text">  *  </TD>
</TR>
<TR>
    <TD>Password  : </TD>
    <TD><INPUT  NAME="pass"  TYPE="password">  *  </TD>
</TR>
<TR>
    <TD>&nbsp; </TD>
    <TD>   <INPUT  NAME="submit" TYPE="submit" VALUE="Sumit">
                <INPUT  NAME="RESET"  TYPE="reset" VALUE="Reset">
    </TD>
</TR>
</TABLE>
</FORM>
<body>
</body>
</html>
_________________________________________________________________________
checkform.php

<?
session_start () ;

$user=$_POST[user];
$pass=$_POST[pass];

//print"$user and $pass <br>"; ค่าที่รับจากฟอร์มแสดงถูกต้องค่ะ แต่น่าจะเพราะ SET NAMES UTF8 ไว้ใน connect.php

include"connect.php";
mysql_select_db("db_nsc");

//$use = "userka"; เพราะลองกำหนดแบบนี้แล้วเทสดูไม่ปัญหาค่ะ คิวรีทำงานปกติ เลยคิดว่าน่าจะมีปัญหาจากค่าที่รับจาก form ค่ะ
$sql="SELECT * FROM tb_user
    WHERE Username = '$user' AND Status_user='Admin' AND Password = '$pass';";
$result=mysql_query($sql) ;

$retest = mysql_fetch_array($result);

If(mysql_num_rows($result)==0)  {
       Echo "<h3>ERROR  :  Username  หรือ  Password  ผิด</h3>";

}else{
      Echo  "<H3>Login Success</H3>";     print"$retest[Username] $retest[name]";
}
mysql_close($cn);
?>

06 เม.ย. 2552 4 4,138

ผมว่าผิดที่โค้ด checkform.php บรรทัดนี้ครับ

    WHERE Username = '$user' AND Status_user='Admin' AND Password = '$pass';";

ตรงสี่แดงผมว่ามันมีเครื่องหมาย ; เกินมาอันนึงนะ

อีกอย่างจากโค้ดฟอร์ม

ACTION="admin_check.php"

แต่โค้ดรับค่าของคุณเป็น chekform.php ตกลงส่งค่าให้ไฟล์ไหนกันแน่ครับ

#1

กำ อ่อ ขอโทดทีค่ะ ชื่อตาม โค๊ตอ่ะถูกแล้วค่ะ เป็น admin_check.php
#2

555+++

โค้ดก็ดูปกตินะ

ผมเคยบอกมาสัก 1000 หนบนบอร์ดแล้วว่าการตรวจสอบ query สามารถทำได้ง่ายๆแค่ echo เอาคำสั่ง sql ออกมาดู และเอาคำสั่งนั้น ไปทดสอบบน phpMyAdmin

การ echo ทำให้เราเห็นผลลัพท์สุดท้ายก่อนการ query และ การทดสอบ บน phpMyAdmin ถ้ามีข้อผิดพลาด phpMyadmin จะรายงานออกมาได้มากว่า รวมถึงเราอาจแก้ไขให้เหมาะสมได้ดวย

ถ้าทุกอย่างถูกต้อง ผมว่าปัญหาอาจจะอยู่ที่ Status_user='Admin' ซึ่งเดาว่า user ที่ login อาจไม่ใช่ admin ก็ได้ครับ
#3

*0* ได้แล้วค่าาาา ชื่อตัวแปรไปซ้ำกับใน connect.php

ค่า user มันเลย ผิด วางยาตัวเองง่ะ

ไงก็ขอบคุณค่ะ
#4
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^