>>> ช่วยด้วยครับ PHP ระบบ login เงื่อนไขมีปัญหาคร

เริ่มโดย bankker6480, 15 มกราคม 2013, 00:18:37

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

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

bankker6480

เงื่อนเช็คตรงฐานข้อมูลรู้สึกว่าจะไม่ถูกอ่ะครับ
รบกวนเทพๆช่วยหน่อยครับ


พอพิมรหัสเข้าไปไม่มีอะไรเกิดขึ้นเลยทั้งๆที่มีเงื่อนไขอยู่ในโค้ด :wanwan011:

---formlogin.php
<?
session_start();
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<style type="text/css">
<!--
body {
background-image: url(sub/bg2.jpg);
}
.style2 {color: red; font-weight: bold;}
.style8 {color: #FF0000; font-weight: bold; }
-->
</style></head>
<body bgcolor="#FFFFFF">
<p><br>
<br><br>
</p>
<form name="form1" method="post" action="checkuser.php">
<table width="282" border="0" align="center">
  <tr>
    <td width="86"><span class="style8">Username :</span></td>
    <td width="147"><input type="text" name="logname"></td>
</tr>
  <tr>
    <td><span class="style8">Password :</span></td>
    <td><input type="password" name="pw"></td>
  </tr>
         <td><span class="style8">Login ตลอดไป : </span></td>
      <td><input name="check" type="checkbox" id="check" value="on" /></td>
  <tr>
    <td colspan="2"><div align="center"><input type="submit"

name="Submit" value="Login"></div></td>
    </tr>
</table>
<div align="center"><? print"$code_error";?></div>
</form>
</body>
</html>


-- checkuser.php
<? 
session_start();
$host = "localhost";
$user = "*****";
$passwd = "*****";
$dbname = "*****";
mysql_connect($host,$user,$passwd) or die("ติดต่อ Host ไม่ได้");
mysql_select_db($dbname) or die("ติดต่อฐานข้อมูลไม่ได้");
$sql = "select * from admin where useradmin='$logname' and pwadmin='$pw' ";
$dbquery = mysql_db_query($dbname, $sql);
$num_rows = mysql_num_rows($dbquery);
if($num_rows==1)
{
if($check == "on")
{
setcookie("logname",$logname,time()+3600*24*356);
setcookie("pw",$pw,time()+3600*24*356);
header("location:http://bank-network.info/MainAdmin.php");
} else {
header("location:http://bank-

network.info/MainAdmin.php");
}
}else {
$code_error="<span class=style2> ข้อมูลไม่ถูกต้องกรุณา Login

ใหม่</span> ";
session_register("code_error");
header("location:formlogin.php");
};
?>                 

Misaka

ท่านลืม รับค่าจากฟอรั่มอ่ะ
$logname=$_POST['logname'];
$pw=$_POST['pw'];
เอาไปวางไว้
บน
$sql = "select * from admin where useradmin='$logname' and pwadmin='$pw' ";

bankker6480

อ้างถึงจาก: Misaka ใน 15 มกราคม 2013, 00:21:08
ท่านลืม รับค่าจากฟอรั่มอ่ะ
$logname=$_POST['logname'];
$pw=$_POST['pw'];
เอาไปวางไว้
บน
$sql = "select * from admin where useradmin='$logname' and pwadmin='$pw' ";

อ๋อ ขอบคุณครับ แล้วเงื่อนไขที่ให้แสดงตอน login ไม่ผ่านทำไมไม่ขึ้นอ่ะครับ (ข้อความที่สั่งให้แสดง)

Freedomlover

อ้างถึงจาก: bankker6480 ใน 15 มกราคม 2013, 00:26:45
อ้างถึงจาก: Misaka ใน 15 มกราคม 2013, 00:21:08
ท่านลืม รับค่าจากฟอรั่มอ่ะ
$logname=$_POST['logname'];
$pw=$_POST['pw'];
เอาไปวางไว้
บน
$sql = "select * from admin where useradmin='$logname' and pwadmin='$pw' ";

อ๋อ ขอบคุณครับ แล้วเงื่อนไขที่ให้แสดงตอน login ไม่ผ่านทำไมไม่ขึ้นอ่ะครับ (ข้อความที่สั่งให้แสดง)

ก็เพราะ  $num_rows  ไม่เท่ากับ 1 ครับ  มันเลยไปที่ else
[direct=https://www.jaideawhosting.com/web-hosting/]โฮสติ้ง[/direct] คุณภาพสูง ราคาเริ่มต้น 50 บาท/เดือน ทดลองใช้ฟรี 30 วัน
[direct=https://www.jaideawhosting.com/vps-hosting/]SSD VPS[/direct] แรงๆ
จดโดเมนเพียง 400 บาท/ปี
ด้วยประสบการณ์กว่า 12 ปี  Tel 0840640213

vii

อย่าลืมใส่ mysql_real_escape_string() ครอบนะ
ตย.
$sql = "SELECT * FROM table WHERE field1 = '".mysql_real_escape_string($field1)."'";

gubaaball

อ้างถึงจาก: bankker6480 ใน 15 มกราคม 2013, 00:26:45
อ้างถึงจาก: Misaka ใน 15 มกราคม 2013, 00:21:08
ท่านลืม รับค่าจากฟอรั่มอ่ะ
$logname=$_POST['logname'];
$pw=$_POST['pw'];
เอาไปวางไว้
บน
$sql = "select * from admin where useradmin='$logname' and pwadmin='$pw' ";

อ๋อ ขอบคุณครับ แล้วเงื่อนไขที่ให้แสดงตอน login ไม่ผ่านทำไมไม่ขึ้นอ่ะครับ (ข้อความที่สั่งให้แสดง)

ที่มันไม่แสดงเพราะว่า session_register("code_error"); ท่านต้อง echo ตัวแปร $_SESSION['code_error']; ครับ ไม่ใช่ตัวแปร $code_error เพราะว่าตัวแปรธรรมดา จะไม่มีค่าเมื่อมีการเปลี่ยนหน้าครับ ผิดถูกยังไงขออภัยด้วยครับ

gubaaball

อ้างถึงจาก: vii ใน 15 มกราคม 2013, 07:58:19
อย่าลืมใส่ mysql_real_escape_string() ครอบนะ
ตย.
$sql = "SELECT * FROM table WHERE field1 = '".mysql_real_escape_string($field1)."'";

ผมเสริมให้น่ะครับตรงนี้เผื่อไม่เข้าใจ ที่ต้องใส่อย่างที่ท่านนี้ว่าเพื่อป้องกัน SQL Injection ครับ นั่นก็คือป้องกันการแฮกเว็บทางหนึ่งครับ

bluezip

แนะนำ
username กับ password ไม่ควรเก็บเข้าไปใน cookie ถึงทำก็มีการเข้ารหัสไว้

session_register(),mysql_db_query()
php 5.3 มันไม่มี function พวกนี้แล้ว

Freedomlover

อ้างถึงจาก: Freedomlover ใน 15 มกราคม 2013, 00:32:07
อ้างถึงจาก: bankker6480 ใน 15 มกราคม 2013, 00:26:45
อ้างถึงจาก: Misaka ใน 15 มกราคม 2013, 00:21:08
ท่านลืม รับค่าจากฟอรั่มอ่ะ
$logname=$_POST['logname'];
$pw=$_POST['pw'];
เอาไปวางไว้
บน
$sql = "select * from admin where useradmin='$logname' and pwadmin='$pw' ";

อ๋อ ขอบคุณครับ แล้วเงื่อนไขที่ให้แสดงตอน login ไม่ผ่านทำไมไม่ขึ้นอ่ะครับ (ข้อความที่สั่งให้แสดง)

ก็เพราะ  $num_rows  ไม่เท่ากับ 1 ครับ  มันเลยไปที่ else

ตอนแรก ผมไปอ่านเข้าใจว่า  login ไม่ผ่าน แล้วทำไมข้อความที่สั่งให้แสดง login ผิดแล้วมันยังแสดง   :P

ตามที่คุณ gubaaball  บอกครับ
[direct=https://www.jaideawhosting.com/web-hosting/]โฮสติ้ง[/direct] คุณภาพสูง ราคาเริ่มต้น 50 บาท/เดือน ทดลองใช้ฟรี 30 วัน
[direct=https://www.jaideawhosting.com/vps-hosting/]SSD VPS[/direct] แรงๆ
จดโดเมนเพียง 400 บาท/ปี
ด้วยประสบการณ์กว่า 12 ปี  Tel 0840640213

xvlnw.com

โค๊ดดึกดำบรรญมากครับ ผมแนะนำให้เขียนใหม่ทั้งหมด *-*
[direct=https://cloudhost.in.th/wordpress-hosting]ツ ⓌⓄⓇⒹⓅⓇⒺⓈⓈ ⒽⓄⓈⓉⒾⓃⒼ [/direct] :wanwan014:  :D
[direct=https://cloudhost.in.th/cloudhosting.html]Cloud Hosting[/direct] [direct=https://cloudhost.in.th/cloudvps.html]Cloud Server[/direct] [direct=https://cloudhost.in.th/vpshosting.html]Cloud VPS Hosting[/direct] [direct=https://cloudhost.in.th/windowsvps.html]Cloud Windows[/direct] Tel: 080-348-0843 LINE: ixvlnw

aommiez

ปกติผมใช้ framework พอมาอ่านโค๊ดแบบนี้ ตาลายเลย 555
ไม่รู้มะก่อนเราเขียนได้ไง  :wanwan031:

aunkanbin

ลักษณะการเขียนเก่ามากเลยครับตั้งแต่สมัยผมหัดเขียนใหม่ๆเลยมั้งเมื่อ 10 ปีที่แล้ว  :wanwan004:
ลองแกาะตัวนี้ก็พอใช้ได้ครับ
http://www.thaicreate.com/community/php-mysql-login-form-check-username-password.html  :)
ยิ่งสูงยิ่งหนาว