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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming>>> ช่วยด้วยครับ PHP ระบบ login เงื่อนไขมีปัญหาคร
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: >>> ช่วยด้วยครับ PHP ระบบ login เงื่อนไขมีปัญหาคร  (อ่าน 12578 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
bankker6480
สมุนแก๊งเสียว
*

พลังน้ำใจ: 162
ออฟไลน์ ออฟไลน์

กระทู้: 710



ดูรายละเอียด เว็บไซต์
« เมื่อ: 15 มกราคม 2013, 00:18:37 »

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


พอพิมรหัสเข้าไปไม่มีอะไรเกิดขึ้นเลยทั้งๆที่มีเงื่อนไขอยู่ในโค้ด 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");
};
?>                 
« แก้ไขครั้งสุดท้าย: 15 มกราคม 2013, 00:19:25 โดย bankker6480 » บันทึกการเข้า
Misaka
Newbie
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 91



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 15 มกราคม 2013, 00:21:08 »

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

พลังน้ำใจ: 162
ออฟไลน์ ออฟไลน์

กระทู้: 710



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 15 มกราคม 2013, 00:26:45 »

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

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

พลังน้ำใจ: 207
ออฟไลน์ ออฟไลน์

กระทู้: 2,097



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 15 มกราคม 2013, 00:32:07 »

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

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

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

โฮสติ้ง คุณภาพสูง ราคาเริ่มต้น 50 บาท/เดือน ทดลองใช้ฟรี 30 วัน
SSD VPS แรงๆ
จดโดเมนเพียง 400 บาท/ปี
ด้วยประสบการณ์กว่า 12 ปี  Tel 0840640213
vii
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 132
ออฟไลน์ ออฟไลน์

กระทู้: 990



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 15 มกราคม 2013, 07:58:19 »

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

gubaaball
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 184
ออฟไลน์ ออฟไลน์

กระทู้: 1,678



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 15 มกราคม 2013, 08:36:19 »

ท่านลืม รับค่าจากฟอรั่มอ่ะ
$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
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 184
ออฟไลน์ ออฟไลน์

กระทู้: 1,678



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 15 มกราคม 2013, 08:41:38 »

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

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

bluezip
ก๊วนเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 294



ดูรายละเอียด
« ตอบ #7 เมื่อ: 15 มกราคม 2013, 09:07:18 »

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

session_register(),mysql_db_query()
php 5.3 มันไม่มี function พวกนี้แล้ว
บันทึกการเข้า

Freedomlover
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 207
ออฟไลน์ ออฟไลน์

กระทู้: 2,097



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 15 มกราคม 2013, 09:14:27 »

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

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

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

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

ตามที่คุณ gubaaball  บอกครับ
บันทึกการเข้า

โฮสติ้ง คุณภาพสูง ราคาเริ่มต้น 50 บาท/เดือน ทดลองใช้ฟรี 30 วัน
SSD VPS แรงๆ
จดโดเมนเพียง 400 บาท/ปี
ด้วยประสบการณ์กว่า 12 ปี  Tel 0840640213
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 15 มกราคม 2013, 10:17:32 »

โค๊ดดึกดำบรรญมากครับ ผมแนะนำให้เขียนใหม่ทั้งหมด *-*
บันทึกการเข้า

aommiez
ก๊วนเสียว
*

พลังน้ำใจ: 13
ออฟไลน์ ออฟไลน์

กระทู้: 303



ดูรายละเอียด
« ตอบ #10 เมื่อ: 15 มกราคม 2013, 15:15:23 »

ปกติผมใช้ framework พอมาอ่านโค๊ดแบบนี้ ตาลายเลย 555
ไม่รู้มะก่อนเราเขียนได้ไง  wanwan031
บันทึกการเข้า
aunkanbin
สมุนแก๊งเสียว
*

พลังน้ำใจ: 226
ออฟไลน์ ออฟไลน์

กระทู้: 538



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 15 มกราคม 2013, 15:22:29 »

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

ยิ่งสูงยิ่งหนาว
หน้า: [1]   ขึ้นบน
พิมพ์