GORAGOD.com

freelance, web developer, web designer, hosting, domain name

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

one

คือปัญหาตอนนี้ไมันตรวจสอบค่าไม่ได้เลยอ่ะค่ะ ตกเงื่อนไข 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,310

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

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

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

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

ACTION="admin_check.php"

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

#1
one

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

555+++

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

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

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

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

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

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

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