ไม่อยากให้กำหนด username, password แบบนี้ รบกวนด้วยค่า เครียดๆ !!!
เปลี่ยนให้เปน sql ยังไงคะ TT ไม่ต้องการให้กำหนด username, password แต่อยากให้เช็คจากฐานข้อมูลว่ามีข้อมูลusername, passwordนี้รึป่าว
// ---------- LOGIN INFO ---------- //
$config_username = 'user';
$config_password = 'demo123';
login.php
<?php
require_once 'config.php';
// Is the user already logged in? Redirect him/her to the private page
if($_SESSION['username'])
{
header("Location: private.php");
exit;
}
if(isSet($_POST['submit']))
{
$do_login = true;
include_once 'do_login.php';
}
?>
<form name="login" method="post" action="login.php">
<fieldset><legend>Admin login</legend>
<?php
if(isSet($login_error))
{
echo '<div id="error_notification">The submitted login info is incorrect.</div>';
}
?>
<label>Username</label><input id="name" type="text" name="username"><br />
<label>Password</label><input type="password" name="password"><br />
<label> </label><input type="checkbox" name="autologin" value="1">Remember Me<br />
<label> </label><input id="submit" type="submit" name="submit" value="Login"><br />
</fieldset>
</form>
private.php
<?php
include 'config.php';
// Check if the user is logged in
if(!isSet($_SESSION['username']))
{
header("Location: login.php");
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Private Page</TITLE>
<META name="Author" Content="Bit Repository">
<META name="Keywords" Content="private">
<META name="Description" Content="Private Page">
</HEAD>
<BODY>
Welcome, <?php echo $_SESSION['username']; ?> | <a href="logout.php">Logout</a><br /><br />
This is your private page. You can put specific content here.
</BODY>
</HTML>
do_login.php
<?php
if(!$do_login) exit;
// declare post fields
$post_username = trim($_POST['username']);
$post_password = trim($_POST['password']);
$post_autologin = $_POST['autologin'];
if(($post_username == $config_username) && ($post_password == $config_password))
{
$login_ok = true;
$_SESSION['username'] = $config_username;
// Autologin Requested?
if($post_autologin == 1)
{
$password_hash = md5($config_password); // will result in a 32 characters hash
setcookie ($cookie_name, 'usr='.$config_username.'&hash='.$password_hash, time() + $cookie_time);
}
header("Location: private.php");
exit;
}
else
{
$login_error = true;
}
?>
autologin.php
<?php
if(isSet($cookie_name))
{
// Check if the cookie exists
if(isSet($_COOKIE[$cookie_name]))
{
parse_str($_COOKIE[$cookie_name]);
// Make a verification
if(($usr == $config_username) && ($hash == md5($config_password)))
{
// Register the session
$_SESSION['username'] = $config_username;
}
}
}
?>
config.php
<?php
error_reporting(E_ALL ^ E_NOTICE);
session_start(); // Start Session
header('Cache-control: private'); // IE 6 FIX
// always modified
header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT');
// HTTP/1.1
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
// HTTP/1.0
header('Pragma: no-cache');
// ---------- LOGIN INFO ---------- //
$config_username = 'user';
$config_password = 'demo123';
// ---------- Cookie Info ---------- //
$cookie_name = 'siteAuth';
$cookie_time = (3600 * 24 * 30); // 30 days
// ---------- Invoke Auto-Login if no session is registered ---------- //
if(!$_SESSION['username'])
{
include_once 'autologin.php';
}
?>
Tag : PHP
ประวัติการแก้ไข 2011-08-08 23:55:21
Date :
2011-08-08 23:27:35
By :
Poster
View :
1267
Reply :
18
1. add multiple users in mysql
2. เปลี่ยนให้เปน sql
สองอย่างนี้มันจะเกี่ยวกับ code login นี้ยังไง ผมงงสุดๆ
Date :
2011-08-09 00:00:39
By :
ikikkok
555+ งงตัวเองยุคะ
ไม่ต้องการให้กำหนด username, password แต่อยากให้เช็คจากฐานข้อมูลว่ามีข้อมูลusername, password นี้รึป่าว จากในตัวอย่างเค้ากำหนดไว้เลยคะ จะเปลี่ยนยังไงคะ รบกวนด้วยนะคะ เปนระบบ login คะ
// ---------- LOGIN INFO ---------- //
$config_username = 'user';
$config_password = 'demo123';
Date :
2011-08-09 00:03:41
By :
Poster
<?php
if(!$do_login) exit;
// declare post fields
$post_username = trim($_POST['username']);
$post_password = trim($_POST['password']);
$post_autologin = $_POST['autologin'];
// connect to database.
$sql = "select * from table users where `username` = '" . $post_username . "' and `password` = '" . $config_password. "'";
$result = mysql_query($sql);
if(($post_username == $config_username) && ($post_password == $config_password)) // ตรงนี้เอาออกเปลี่ยนเป็น
if(mysql_num_rows($result)>0)
{
$login_ok = true;
$_SESSION['username'] = $config_username;
// Autologin Requested?
if($post_autologin == 1)
{
$password_hash = md5($config_password); // will result in a 32 characters hash
setcookie ($cookie_name, 'usr='.$config_username.'&hash='.$password_hash, time() + $cookie_time);
}
header("Location: private.php");
exit;
}
else
{
$login_error = true;
}
?>
Date :
2011-08-09 00:19:08
By :
ikikkok
^_^ ขอบคุนค่า เด่วลองดูก่อนนะคะ
โล่ง !!!!!!!!!!!!
Date :
2011-08-09 00:28:36
By :
Poster
อย่าลืมตรงนี้ // connect to database. เขียนเองนะครับ ในบทเรียนพี่วินมีครบนะ จริงๆ ขอบอก
Date :
2011-08-09 00:35:52
By :
ikikkok
ยังไม่ได้เลยคะ แง๊ๆ TT
do_login.php
<?php
$host="localhost";
$user="root";
$pw="admin";
$dbname="aboutus";
$link=mysql_connect($host,$user,$pw);
if(!link){
echo"<H3>ERROR : Cann't connet to datababase</H3>";
exit();
}
mysql_db_query($dbname,"SET NAMES UTF8");
if(!$do_login) exit;
// declare post fields
$post_username = trim($_POST['username']);
$post_password = trim($_POST['password']);
$post_autologin = $_POST['autologin'];
// connect to database.
$sql = "select username, password from admin where 'username' = '" . $post_username . "' and 'password' = '" . $config_password. "'";
$result = mysql_query($sql);
if(mysql_num_rows($result)>0)
{
$login_ok = true;
$_SESSION['username'] = $config_username;
// Autologin Requested?
if($post_autologin == 1)
{
$password_hash = md5($config_password); // will result in a 32 characters hash
setcookie ($cookie_name, 'usr='.$config_username.'&hash='.$password_hash, time() + $cookie_time);
}
header("Location: private.php");
exit;
}
else
{
$login_error = true;
}
?>
Date :
2011-08-09 00:42:08
By :
Poster
ผมลืมแก้
$sql = "select * from table users where `username` = '" . $post_username . "' and `password` = '" . $config_password . "'";
เป็น
$sql = "select * from table users where `username` = '" . $post_username . "' and `password` = '" . $post_password . "'";
Date :
2011-08-09 00:53:22
By :
ikikkok
ไม่ได้ยุดีเลยค่าพี่
Date :
2011-08-09 09:39:54
By :
Poster
ยังติดอะไร ตรงไหน? หรอคับ
Date :
2011-08-09 10:15:15
By :
arm8957
Login ไม่ได้คะ มันฟ้องเราใส่ผิดคะ ทั้งๆที่ถูกแล้ว
รบกวนด้วยนะค่า ขอบคุนค่า
Date :
2011-08-09 10:21:36
By :
Poster
ขอดูโค้ดที่เขียนหน่อยได้ไม๊คับ เผื่อจะช่วยแนะนำได้
Date :
2011-08-09 10:31:24
By :
arm8957
ขอบคุนมากเลยคะ โค้ดยุข้างบนเลยคะ รบกวนด้วยน๊าา
มีเปลี่ยนอันนี้คะ
do_login.php
<?php
$host="localhost";
$user="root";
$pw="admin";
$dbname="aboutus";
$link=mysql_connect($host,$user,$pw);
if(!link){
echo"<H3>ERROR : Cann't connet to datababase</H3>";
exit();
}
mysql_db_query($dbname,"SET NAMES UTF8");
if(!$do_login) exit;
// declare post fields
$POST_username = trim($_POST['username']);
$POST_password = trim($_POST['password']);
$POST_autologin = $_POST['autologin'];
// connect to database.
$sql = "select username, password from admin where 'username' = '" . $POST_username . "' and 'password' = '" . $POST_password. "'";
$result = mysql_query($sql);
if(mysql_num_rows($result)>0)
{
$login_ok = true;
$_SESSION['username'] = $config_username;
// Autologin Requested?
if($post_autologin == 1)
{
$password_hash = md5($config_password); // will result in a 32 characters hash
setcookie ($cookie_name, 'usr='.$config_username.'&hash='.$password_hash, time() + $cookie_time);
}
header("Location: private.php");
exit;
}
else
{
$login_error = true;
}
?>
Date :
2011-08-09 10:35:25
By :
Poster
ไม่ฟ้องว่าใส่ผิดแล้วนะคะ เหมือนจะไม่ถูก ละมันไม่ไปหน้านี้ด้วยคะคะ header("Location: private.php");
Date :
2011-08-09 10:50:40
By :
Poster
โอ้วว ได้ๆๆ แล้วคะ ^_^
ขอบคุนทุกๆๆท่านมากเลยนะคร่ะ
Date :
2011-08-09 10:56:01
By :
Poster
if($post_autologin == 1) ตัวแปร $post_autologin
ตัวพิมพ์เล็กพิมพ์ใหญ่ต้องอ้างอิงให้เหมือนที่ประกาศไว้ด้านบนครับ
ด้านบนประกาศตัวแปรไว้แบบนี้ $POST_autologin
Date :
2011-08-09 11:01:12
By :
tomrambo
' กับ ` ไม่เหมือนกันนะครับ อย่าใช้แทนกัน
Date :
2011-08-09 11:02:01
By :
ikikkok
ไม่ทราบจิงๆคะ ขอบคุนมากเลยคะ
Date :
2011-08-09 11:14:29
By :
Poster
Load balance : Server 05