Đào Tạo PHP & Mysql

Học PHP Online - PHP Framework - Tự Học PHP

Lập Trình PHP Căn Bản

Bài 11: Viết ứng dụng đăng nhập bằng PHP và MYSQL

Ở những bài trước chúng ta đã học qua các kiến thức trọng yếu về PHP. Tuy nhiên, để có thể xây dựng một website hoàn chỉnh bằng những kiến thức đó thì quả thật không đơn giản. Bởi vì các kiến thức qua sách vở và tài liệu dù sao cũng chỉ là những kiến thức tổng quát và thiếu tính khách quan thực tiến. Nên khi người học lập trình bước vào giai đoạn viết ứng dụng thì thường rất lúng túng. Đó cũng là lý do tôi viết bài này để hưỡng dẫn các bạn dần làm quen với cách tiếp cận một ứng dụng PHP&MYSQL như thế nào.


Trước hết chúng ta phải thiết kế và xây dựng mô hình cơ sở dữ liệu ứng với từng lệnh bên dưới (xem lại bài ngôn ngữ SQL và MYSQL Căn Bản) sau đó mới tiến hành triển khai lập trình.

Vậy là chúng ta đã có cơ sở dữ liệu như mô hình trên. Tiếp đến chúng ta thiết kế Form HTML để có màn hình đăng nhập khi người dùng truy cập.

Demo Login Example

Tiếp đến chúng ta tiến hành kiểm tra dữ liệu từ form

Đoạn code ở trên sẽ kiểm tra xem người dùng có tiến hành nhấn nút đăng nhập hay không. Và nếu có thì chúng ta sẽ xét tiếp tình trạng người dùng có để trống các ô username và password hay không. Nếu có chúng ta sẽ thông báo lỗi ở bên trên form, để người sử dụng tiến hành nhập liệu.


Kế đến chúng ta kiểm tra xem có tồn tại hai biến $u và $p (chỉ khi người dùng đăng nhập thành công thì mới có thể tạo ra 2 biến đó). Tiếp đến chúng ta tiến hành kết nối cơ sở dữ liệu (xem lại bài kết hợp PHP & MYSQL trong ứng dụng web).

Và tiến hành kiểm tra xem username và password người sử dụng vừa nhập có trùng khớp với thông tin có trong cơ sở dữ liệu hay không ?. Nếu không thì chúng ta sẽ báo lỗi ngay. Ngược lại sẽ tiến hành lấy dữ liệu từ bảng và gán vào session. Để có thể quản lý phiên làm việc một cách hiệu quả trên mọi trang của khu vực admin (xem lại bài khái niệm cơ bản về cookie và session).

Như vậy code hoàn chỉnh cho ứng dụng này là như sau:

Ở bài sau, chúng ta sẽ tiếp tục tìm hiểu ứng dụng kết hợp PHP & MYSQL cho việc thêm một thành viên như thế nào. Mọi sự góp ý, cũng như thắc mắc của các bạn dành cho bài viết vui lòng sử dụng tính năng thảo luận tại diễn đàn. Hoặc thông qua việc liên hệ của hệ thống website. Mong sẽ nhận được nhiều ý kiến đóng góp từ các bạn.



Cập nhật và chỉnh sửa lần cuối bởi TuanVA's Blog

Trân Trọng


(Bùi Quốc Huy)
107348
Bạn vẫn chưa hiểu rõ vấn đề ?. Bạn vẫn còn nhiều điều thắc mắc ?. Bạn gặp lỗi khi thực hành mã lệnh trên ?. Hãy tham gia diễn đàn QHOnline.Info để nhận được sự giúp đỡ từ phía cộng đồng nhanh nhất. Đồng thời tải những tài liệu giá trị tại diễn đàn. Việc đăng ký là hoàn toàn miễn phí, hãy đăng ký ngay để chúng tôi giúp đỡ bạn nhé.

Ghi rõ nguồn từ website QHOnline.Info - Khi bạn phát hành lại thông tin từ website này

Phản hồi của bạn Tiếng Anh Telex VNI VIQR





Nguyễn Văn Kiên (14:29 03/02/2010)

Ở phần này mình nghĩ nên phân tích Sau khi đăng nhập thành công thì tự chuyển trang như thế nào, khi chưa đăng nhập thì như thế nào.

Reply

Kenny (19:51 03/02/2010)

Đúng rồi bạn ạ. Bài ở trên là một mô hình ví dụ cơ bản để những người mới học lập trình có thể tiếp cận một cách dễ dàng.
Sau khi đăng nhập thành công thì thường chúng ta sẽ đưa người dùng tới một trang nào đó. Có thể là admin hay usercp,...Cái này, tuỳ theo ý đồ của người lập trình thực sự muốn như thế nào trong ứng dụng của mình.

Reply

nghia (18:27 08/03/2010)

em tao trang login.php tai dong session_start bi loi xin chi giup!

Reply

Nguyễn Thành Ngọc (21:22 31/03/2010)

Ai có trang web nào viết php cho mình xin 1 trang có database luôn.Nếu có xin gữi qua mail:jack.ji@yahoo.com.Đang cần gấp lắm ai có thi cho xin cái đơn giãn cũng được ko cần phức tạp.Cám ơn trước

Reply

Ngoc Duc (04:42 21/12/2011)

Aj ranh jup em het lun nha !
Viet jum em mot chuong trinh lun !
Em lam nhu the ma k co duoc ! Guj toj : nguyenvanbp1@yahoo.com

Phan Thanh Nhuần (00:29 06/04/2010)

1). Theo như bài số 7, có nói rằng: "đăng ký session hay cookie, lệnh đăng ký phải nằm trên tất cả mọi lệnh khác".
2). Theo bài số 11 này, lệnh đăng ký lại nằm bên trong lệnh khác.
"1)."

Reply

Phan Thanh Nhuần (00:41 06/04/2010)

Góp ý:
......
www.qhonline.info là nơi tất cả các bạn yêu thích PHP gặp gỡ nhau, trao đổi kinh nghiệm cho nhau.Tuy nhiên, nó vẫn còn một vài hạn chế mình xin góp ý như sau:
1. Mục "Phản hồi của bạn" không được tiện cho lắm, bởi vì nó không cho phép đăng câu hỏi hay "góp ý" một cách trực tiếp mà phải "CHỜ" đợi sự kiểm duyệt. Rõ ràng rất mất thời gian, trong khi đó nội dung của câu hỏi có thể là một bạn nào đó có thể trả lời ngay lập tức. Tất nhiên là vấn đề của mình hỏi, mình cũng phải giải quyết, nếu như tình trạng này, mình cũng chẳng biết đến bao giờ mới có thể nhận được answer, và liệu rằng sau khi có answer thì mình có còn quay lại trang này nữa không?
2. Hiện nay, có rất nhiều website cho phép "người dùng" thảo luận trực tiếp. Chẳng cần phải kiểm duyệt. Rõ ràng, đây là một website "khoa học" cũng chẳng có những "thành viên không mời mà đến". Vì vậy webmaster không phải bận tâm chiện này. ví dụ: website học photoshop, mình nhớ học nó 1 năm trước. Rất tuyệt vời.
Cám ơn webmaster.

Reply

Phan Thanh Nhuần (10:59 06/04/2010)

Mình tìm hiểu từ tối đến giờ vẫn không thể giải quyết được vấn đề: "Không thể đăng ký sesson được". Sau mỗi lần refresh, lại phải nhập lại.
....
Hy vọng, vấn đề của mình sẽ được Kenny quan tâm.
...
Nick Y!M: codeintell

Reply

Kenny (20:55 06/04/2010)

@Phan Thanh Nhuần: Chào bạn.

Trong bài 11 này lệnh đăng ký không nằm ở trên cùng, nhưng trên nó thì không hề có khoảng trắng, HTML hay lệnh echo nào cả. Session chỉ thực bị lỗi khi và chỉ khi trên session_start() vi phạm những ràng buộc ở trên. Bạn bị lỗi, theo tôi thấy. Có thể là trên lệnh session_start() của bạn có những lỗi như trên.

Nếu bạn vẫn gặp khó khăn khi sài làm ví dụ này. Vui lòng truy cập vào diễn đàn: http://www.qhonline.info/forum
Để nhận được sự hỗ trợ tốt hơn.

Về ý kiến của bạn: Trước hết rất cám ơn về góp ý của bạn. Nhưng đây chỉ là 1 website cá nhân và hơn nữa đây là những bài tutorial nên tôi phải kiểm duyệt thông tin trước khi cho chúng xuất hiện trên website. Điều này mặc dù là bất tiện nhưng như thế sẽ tốt hơn trong việc sàng lọc những phản hồi thực sự muốn giao lưu và học hỏi.

Và bạn cũng yên tâm là tôi luôn check những ý kiến của mọi người hằng ngày và public chúng trong 24h kể từ khi các bạn gửi ý kiến.

Cám ơn vì đã chia sẻ ý kiến của bạn trên QHOnline.

Trân trọng.

Reply

Phan Thanh Nhuần (21:08 07/04/2010)

[Re]
Mình đã nhận được phản hồi.
Và xin cám ơn bạn !

Reply

nguyen son (19:49 28/04/2010)

Cảm ơn rất nhiều mình đang học môn lập trình ứng dụng mạng rất cần những bài viết bằng PHP như thế này.

Reply

Vu Thi Lan (09:48 29/04/2010)

minh thay bai viet nay cua ban rat hay va rat thiet thuc doi voi nhung nguoi moi hoc nhung ban co the cho minh hoi mot chut ve van de ngai le : bay gio minh muon tao mot trang user voi 2 quyen la admin va normal (admin duoc phep them sua xoa ... con normal thi ko) thi minh phai viet nhu the nao ha ban ban co the chi cho minh duoc ko???? ma minh dang dung cakephp de viet ban a va ko duoc dung ACL dau ban a! Mong som nhan duoc cau tra loi cua ban

Reply

NDT (09:54 29/04/2010)

phần session của em bị lỗi...mong được sự giúp đỡ!

Reply

lei nguyen (00:05 03/05/2010)

cho e hỏi :
$_SESSION['userid'] = $row[id];
userid là mình lấy từ cột nào ra vậy

Reply

Minh NT (10:40 03/05/2010)

@lei nguyen : 'userid' la tên của SESSION.

Reply

Quang (13:54 06/05/2010)

Mình làm đủ các bước ! Nhưng có 1 vấn đề , đó chính là code không hoạt động !

Mình test dựa trên Null username và password---nhưng nó vấn action tới link đối tượng mà không báo lổi " Please enter your username"

Từ dòng đầu tiên nó đả không thực hiện lệnh của chuổi code!

Vấn đề là do đâu ( PHP mình dùng PHP/5.3.0 )
Xin cám ơn về bài viết , và hi vọng bạn hồi đáp cho mình

Reply

Kenny (19:31 06/05/2010)

@Quang: Rất vui vì bạn đã quan tâm các bài viết trên website.
Xin được trả lời cùng bạn như sau:
Khi bạn nhấn action mà nó chỉ đẩy sang 1 trang khác có nghĩa là bạn đã làm 2 trang riêng biệt.
Yêu cầu của bài này là các bạn cần làm trên 1 trang. Và đặt tên của chúng là login.php.
Bởi đoạn code if(isset($_POST['ok'])) được dùng để kiểm tra ngay trên trang login.php. (Vì khi mới mở ra và bạn chưa nhấn nút submit thì rõ ràng sẽ không tồn tại biến $_POST['ok']. Và chúng ta sẽ chỉ xử lý đúng sai khi và chỉ khi người dùng tiến hành nhập liệu.
Tôi cũng có gửi file login.php copy nguyên trên website cho bạn qua email luôn đó. Tuy nhiên để tương tác với CSDL thì bạn cần phải tạo CSDL và kết nối với chúng thành công nữa nhé.

Nếu có vấn đề gì, bạn có thể gửi mail hoặc comment ngay bên dưới bài viết của tôi trên QHOnline.Info.

Trân trọng.

Reply

Nhị Loan (08:53 07/05/2010)

Cảm ơn bạn vì những bài viết này.
Thật sự học php mà thầy giáo dạy ít quá.
Vậy là phải tự tìm hiểu ah. Chẳng biết làm gì cả. Chỉ biết tham khỏa ở ngoài thôi. Cảm ơn bạn nhé!

Reply

ngô thị mai (07:42 10/05/2010)

anh chị giúp về php với phần xử lý chuỗi. em viết bài chuyển giá trị tháng năm yyyy/mm/dd sang dd/mm/yyyy mà không chạy nổi. thaks anh chị trước

Reply

vu thi lan (06:57 18/05/2010)

chao cac ban ! minh cung da lam bai dang ky nay roi nhung dung that la no ko kiem tra phan minh nhap username va password chua va no cung ko kiem tra xem trong csdl da co username nay chua ma no submit luon toi mot trang khac luon ban co the giai thich giup minh dc ko Minh xin post bai ma minh copy cua ban ve va minh da sua cho hop voi co so du lieu cua minh ma van kho chay duoc ???
Code :
<html>
<body>
<?php
if(isset($_POST(OK)){
if(empty($_POST['username'])){
$message['username'] = ' Vui long dien ten dang nhap </br>';
}else {
$u = $_POST['username'];
}
if(empty($_POST['password'])){
$message['password'] = 'Vui long dien password </br>';
}else{
$p = $_POST['password'];
}
}
$con = mysql_connect("localhost","root","");
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("sinhvien");
$sql = "SELECT * FROM member WHERE username = '".$u."' AND password = '".$p."' ";
$result = mysql_query($sql);
mysql_close($con);
if(!empty($result)){
echo '<b>user name va password khong dung</b>';
} else {
echo 'OK';
}

echo '<br/>';
?>
<div align="center">
<form action="danhsach.php" method="post">
<tr>
<td>Username:</td>
<input type="text" name="username" size=25 /><br />
</tr>
<tr><td></td><td><?php echo $message['username']; ?></td></tr>
<tr>
<td>Password:</td>
<input type="password" name="masv" size=25 /><br />
</tr>
<tr><td></td><td><?php echo $message['password']; ?></td></tr>
<input type="submit" name="ok" value="Dang Nhap" />
</table>
</form>
</div>
</body>
</html>

Reply

thep nguyen (10:49 19/05/2010)

ban co tinh den van de kiem tra du lieu khi nguoi dung nhap vao form chua, nhung ky hieu dac biet nhu *

Reply

zEn (23:29 19/05/2010)

hay lam ! cam on nhieu nhieu luon. mjnh dang can doan code nay

Reply

lechinh8x (16:28 20/05/2010)

Thầy Huy cho em hỏi là, khi mình muốn tạo db mysql thì thường người ta dùng chương trình hỗ trợ nào để tạo. Em thấy trong Apache có tạo db mysql bằng dos nhưng thấy ko tiện lợi cho lắm

Reply

trần bảo trung (09:04 21/05/2010)

cho mình hỏi sao khi đăng nhập minh muốn hiên tten ủa ngươi đăng nhập trên trang web nhưng làm hoai vẫn không được
<?php
if (isset($_COOKIE['ten'])){
echo " Chào $_COOKIE['ten']! .";}
else{
echo "<a href=index.php?nav=dangnhap>Đăng Nhập</a> ";}
?>
mong ban giup cho minh

Reply

zoothank (14:58 01/06/2010)

tôi có làm theo các bước hướng dẫn trên và tôi không rõ sai ở đâu khi nhấn "đăng nhập" thì lại báo "liên kết bị đứt gãy"
tức là không kết nối được

Reply

dư thanh (00:05 02/06/2010)

tôi thấy bạn cho code hoàn chỉnh trên nếu:
-tạo 1 file php mà ko có đoạn code máy tính tự sinh cho ta(chỉ trống trơn)--> thì copy -> chạy lỗi
-tạo file mới (php) có đoạn code máy tính tự sinh:
......
<html>
<body>
</body>
</html>
thì chương trình chạy tốt
nhưng 1 số chỗ khi đánh user name mật khẩu,máy vẫn báo lỗi chỗ :
"Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in C:wampwwwlogin_qhonline_infologin.php on line 30
can't connect this database"

Reply

newbie (08:58 15/06/2010)

Làm xong báo lỗi này :
Fatal error: Call to undefined function session_register() in C:AppServwwwvdvdlogin.php on line 34

Reply

kien (10:27 23/06/2010)

anh cho em hoi khi cai dat dream 2004 co can cau' hinh ji hok hay cai dat xong la viet code ha anh

Reply

kien (16:02 23/06/2010)

thay cho em hoi sao khi cai dat xong va cau hinh rui,sao khi em chay doan code cua thay` thi lai bi loi~ nay` hoai the' thay`:----Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:AppServwww hietkexulydangnhap.php on line 26

Reply

hiep (17:07 02/07/2010)

Mình mình chép nguyên đoạn code đó về rồi nhưng vẫn ko như ý của bài nó. Nó ko phát hiện được người dùng có gõ vào trước khi nhấn nút đăng nhập ko.

Reply

NamND (14:07 05/07/2010)

Mình thấy có 1 điều đáng để nói là code đăng nhập này chưa có phòng lỗ hổng sql injection. Không biết các bạn có ý kiến sao... Điều này khá là nguy hiểm mà :(

Reply

Khanh (21:10 05/07/2010)

Làm thế nào để sau khi login xong thì cái form biến mất ạ (nhưng vẫn link tới trang đó mà ko phải 1 trang khác).
Ai biết chỉ dụm
Thanks

Reply

Quach Phu Thanh (16:26 07/08/2010)

minh co lam vi du o tren nhung van ko chay dc khi nhap user va pass thi hien ra dong nay Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:wampwww ao_trang_dang_nhaplogin.php:9) in C:wampwww ao_trang_dang_nhaplogin.php on line 41 .A/e co ai lam dc ko giup do minh voi mail cua minh la thanhlve124@yahoo.com ,minh moi hoc php nen ko hieu nhiu.Cam on

Reply

giang (16:06 19/08/2010)

Sao em sử dụng hàm mysql_fetch_array cứ báo lỗi nhỉ. Ai biết giúp em với

Reply

giang (22:21 19/08/2010)

Giúp em với. em làm theo trang web khi đăng nhập thì được nhưng khi login vào rồi không hiện lên được tên thành viên, hoặc là gõ sai user và pass cũng không hiện được dòng "Username or password is not correct....."
Đây là đoạn code của em
<?php
require('conn.php');
if(isset($_POST['user'])){
if($_POST['user'] == null){
echo "<p class='text_sign'> Please enter your Username</p>";
}else{
$user = $_POST['user'];
}
if($_POST['pass'] == null){
echo "<p class='text_sign'> Please enter your Password</p>";
}else{
$pass= $_POST['pass'];
}
$sql = "select * form Member where UseName = '".$user."' and Password = '".$pass."'";
$query = mysql_query($sql);
if(mysql_num_rows($query) == 0){
echo "<p class='text_sign'> Username or password is not correct, please try again</p>";
}else{
$row = mysql_fetch_array($query);
session_star();
session_register("UserID");
$_SESSION['UserID'] = $row['ID'];
}
echo "<p class='text_sign'> Hello, " . $_POST['user'];
}
?>
<form id="form" method="post" action="#">
<span>Username</span><input type="text" id="form" name="user" value="" />
<span>Password</span><input type="password" id="form" name="pass" value="" />
<input type="submit" id="f" name="sign in" value="Sign in" />
</form>
Còn đây là Database
CREATE TABLE IF NOT EXISTS `member` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`UserName` varchar(15) NOT NULL,
`Password` varchar(30) NOT NULL,
`Email` varchar(30) NOT NULL,
`Address` varchar(15) NOT NULL,
`NgaySinh` date NOT NULL,
PRIMARY KEY (`ID`)
)

Reply

giang (22:23 19/08/2010)

Hi em quên mất cái lỗi nó báo:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:wampwwwclearincludesignin_form.php on line 17

Reply

nguyễn xuân (17:40 20/08/2010)

cho e hỏi?? nếu trang web của e mỗi khi đăng nhập vào thì nó lại hiên ra 1 bảng thông báo bắt đăng nhập user name và pass. nhưng mình ko cần phải đang nhập user và pass chỉ cần ấn hủy bỏ là có thể đăng nhập vào bình thường. bây giờ e muốn xóa bỏ cái lỗ đó khi đăng nhập vào trang web thì phải làm thế nào??? chỉ cho e cách khắc phục nỗi đó với... thank you.....

Reply

Nguyen Long (10:28 01/09/2010)

Chào bạn Huy, Kendy!
Hai anh cho tôi hỏi, khi chạy các trang PHP do mình tự viết, nếu câu lệnh đúng thì OK, nhưng nếu ko sai về cú pháp nhưng thiếu dữ liệu thì nó cũng báo lỗi. Ví dụ khi tôi viết lệnh kết nối đên CSDL trên Server theo mấu:
$conn=mysql_connect("localhost","root","root") or die("can't connect this database");
nếu tôi chọn sai Pass thì nó báo lôi về cú pháp:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in C:wampwww est.php on line 3
can't connect database
mà ko báo là "ko kết nối đc"
các bạn giải thich dùm nha.

Reply

Minh Tiến (15:34 14/09/2010)

cho mình hỏi : isset($_POST['ok']) ý nghĩa là gì vậy."ok" lấy ở đâu vậy

Reply

Lê Hoàng Thịnh (15:01 16/09/2010)

Anh ơi em đang làm web quản lý sách. em bị vướng ở phần dùng biến session. với phần code trên thì máy báo lỗi ở phần session_start();
làm thế nào khắc phục hở anh. anh chỉ hộ em với.Thứ 7(18/09/2010) là em phải test với thầy hướng dẫn rồi!
em thanks anh trước!!!

Reply

Nguyen Thanh Luan (08:35 20/09/2010)

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:wampwwwweb rangwebdn.php:10) in C:wampwwwweb rangwebdn.php on line 41

Reply

lề kỳ tuân (21:52 15/10/2010)

$u="php" or 1="1" -> luon luôn true
pass: "php" or 1=1-> true

- dùng hàm thay thế tất cả ký tự trắng trong biến $u bằng ký tự nào đó, pass thì thêm cái này

$p=md5($_POST['pass']);

hoặc có thể nghỉ ra một thuật toán mã hóa pass
nhưng là: nếu bằng a thì thay bằng z, sau đó mã hóa nó ra

Reply

kiki (11:55 24/10/2010)

Bài viết hay lắm, phát huy nha bạn ^^

Reply

hữu quyền (12:33 24/10/2010)

minh dag hoc mai sql và php rất mong các bạn cho mình 1 cái account để vào diễn đàn của các bạn nha!

Reply

huu quyen (12:51 24/10/2010)

minh lam y nhu ban chi,nhung o phan danh pass và user sai thi chag co cai thog bao nao ca,dag ly phai thong bao user va pass sai chu???

Reply

huynh thi thuy (14:46 01/11/2010)

em chua hoc php va nhung ngon nhu lap trinh thiet ke web khac em rat muon hoc co the giup em duoc khong a?

Reply

Nguyễn Đặng Ngọc Nghĩa (19:36 08/11/2010)

thầy ơi, cho em hỏi em viết code như trên mà em chẳng hiểu quy tắc session vì cái tiết học session em nghĩ :((
giờ em chẳng biết làm sao để làm trang đăng nhập cả :((
code của em đây mong thầy giúp em với :((
<?php
if(isset($_POST['ok']))
{
if($_POST['manguoidung'] == NULL)
{
echo "Please enter your username<br />";
}
else
{
$u=$_POST['manguoidung'];
}
if($_POST['matkhau'] == NULL)
{
echo "Please enter your password<br />";
}
else
{
$p=$_POST['matkhau'];
}
if($u

Reply

loi (21:23 10/11/2010)

bai viet cua addmin rathay

Reply

mickey (14:11 12/11/2010)

hi tác giả,
có đoạn tác giả viết "Đoạn code ở trên sẽ kiểm tra xem người dùng có tiến hành nhấn nút đăng nhập hay không."
vậy nếu người dùng truyền thẳng vào URL có biến của nút submit thì sao?
ví dụ: http://qhonline.info/login.php?name=abc

Reply

zendy (13:32 16/11/2010)


<?php
session_start();
if(isset($_POST['ok']))
{
if(empty($_POST['username']))
{
$message['username']='vui lòng điền tên đăng nhập<br>';
}
else
{
$u=$_POST['username'];
}
if(empty($_POST['password']))
{
$message['password']='vui lòng điền pasword<br>';
}
else
{
$p=$_POST['password'];
}
$khi=mysql_connect("localhost","root","");
if(!$khi){ die("không kết nối được CSDL".mysql_error());}
mysql_select_db("shopbanhangttv",$khi);
$sql="select * from nguoidung where username='".$u."' and password='".$p."'";
$query=mysql_query($sql);
if(!empty($query)){
echo "<p class=canhbaotext>username và pasword không đúng</p>";
}
else{

header("Location: index.php");
}break;
?>


</head>
<body bgproperties="fixed">
<form action="dangNhap.php" method="post" name="frmLogin" >
<table width="32%" height="169" border="1" align="center" bordercolor="#FF0000">
<tr>
<td height="163">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="21" colspan="3" class="titlestandard">Đang Nhập Quảng Trị </td>
</tr>
<tr>
<td width="46%" height="24">T

Reply

Nguyễn Đăng Tài (05:29 22/11/2010)

Thưa các thầy . Em đang học php . Nhưng mà trong bài này em không hiểu là tại sao khi mà em thử copy cai bài này để em thử chạy , vậy mà khi em đăng nhập bằng 2 tên như ở csdl mà không được à . Mong các thầy có thế gởi mail cho em 1 cách viết hoàn chỉnh và bây giờ em phải nhập username ,password gì thì nó mới chạy . Xin cảm ơn các thầy

Reply

Truong Hong Linh (09:09 24/11/2010)

Minh muon biết đoạn core thêm thành viên và kiểm tra thành viên có tồn tại trong wedsite hay chưa,ai giúp với. Cám ơn

Reply

trần thanh dũng (21:54 12/12/2010)

hay, dễ hiểu, cho đệ thêm cái đăng ký luôn nha huynh

Reply

Do Vinh (11:50 20/12/2010)

Cho mình hỏi tại sao mình ko connect tới mysql được.Cách tạo mysql như thế nào? Mình đã nhập cách tạo dữ liệu như trong hướng dẫn bài tập.Mình làm sao biết là database đã đươc tạo và database khi tạo được sẽ nằm ở đâu? Thanks!

Reply

Cao Chí Nguyện (00:09 24/12/2010)

E cũng tạo CSDL rồi tạo tạo form cho người dùng đăng nhập và cuối cùng là tạo file login.php giống y như trên nhưng tại các dòng:
34 session_register("userid");
35 session_register("level");
36 $_SESSION['userid'] = $row[id];
37 $_SESSION['level'] = $row[level];
hình như có vấn đề gì trình duyệt cứ báo lỗi liên tục. E chưa rành php lắm mong được giúp đỡ!!

Reply

maicon (11:43 27/12/2010)

Kendy cho mình hỏi! Mình có làm giống ở trên chỉ là khi nhập đúng user và pass thì nó hiện ra lỗi này
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at E:SystenXAmmxampphtdocsDOANlogin.php:8) in E:SystenXAmmxampphtdocsDOANlogin.php on line 31
Mặc dù trước nó không hề có lệnh echo hay khoảng trắng gì hết!

Reply

Rocket (14:30 01/01/2011)

Bạn nào có trang viết đăng kí tín chỉ đơn giản viết bằng php và mSQL ko nhỉ.
Ví dụ: 1 trang login như trên rùi nếu đăng nhập thành công thì hiên ra bảng SINHVIEN để dăng kí. Đặc biệt sau khi đăng kí phải có nút Gửi đi.

Reply

nbn (22:50 19/01/2011)

cho đăng nhập và chọn quyền admin hoặc member nếu là admin thì được phép sửa xóa thêm update , cái đó code ntn vậy các bạn. tui mới học nên chưa rõ cho lắm! mong được giúp đỡ

Reply

Trong (09:01 03/03/2011)

Các bạn cho mình hỏi chút. Mình làm Cakephp viết admin thì ko có vấn đề. nhưng viết ngoài client thì khi minh submit form và gọi method="post" thì không chạy. Nhưng mình đổi thành get thì chạy.

Reply

ffsfs (21:14 06/03/2011)

thầy cho em hỏi là khi đăng nhập thành công và chuyển hướng đến trang khác ví dụ là admin.php chẳng hạn, chứ cái này đăng nhập thành công mà nó không hề báo là đăng nhập thành công hay chưa mà cũng chả chuyển đến trang khác là sao vậy ạ ?

Reply

Đỗ Minh Hoàng (02:55 19/03/2011)

Tập dần thôi

Reply

hoangvantuyen (21:28 29/03/2011)

Cảm ơn em đã làm dc.Cho em hỏi khi mình ấn nút đăng nhập nếu đúng id và pass rồi sẽ load luôn sang 1 trang chủ hiện các giá trị session thì làm thế nào?thanks

Reply

Đỗ Tiến Hậu (14:13 02/04/2011)

cho em hoi cach tao trang để viết văn bản rùi đăng lên làm sao?

Reply

Nguyen Hiep (17:22 09/04/2011)

Thay oi.e co dang ki lam cai trang web tren he thong XtGEm.Nhung khong bit tao trang dang ky thanh vien ra sao,mong thay giup them a.e cam on!

Reply

Đặng Thị Mùi (11:31 12/04/2011)

Mình thấy bạn nên mo tả giao diện như vậy sẽ dễ hình dung hơn.hihi. Bài này nói chung là cũng khá bổ ích, mình sẽ thử làm xem sao.

Reply

haninh (16:06 13/04/2011)

Để biết Session đầu trang PHP như code bên dưới sẽ chạy được
<?php
session_start();
session_register("userid");
session_register("level");

$u=$_POST['user'];
$p=$_POST['pass'];
if(isset($_POST['ok']))
{
if($_POST['user']=="")
{
echo"please input Username";
}
else
{
$u=$_POST['user'];
}
if($_POST['pass']=="")
{
echo"please input Password";
}
else
{
$p=$_POST['pass'];
}
if($u

Reply

nhat trung (18:13 19/05/2011)

Bạn ơi, cho kình hỏi tí !
Như bài trên của bạn thì tạo trang đăng nhập chung với trang xử lí đăng nhập hay sao?
Mình không thấy bạn tạo trang login.php .
Không biết trang login.php nó như thế nào bạn có thể chỉ giúp được ko bạn.thankyou

Reply

ha toan (11:31 08/06/2011)

cho mình hỏi nếu mình mún kiểm tra số lần đăng nhập sai quá 3 lần thì báo lỗi không cho đăng nhập nữa thì làm sao?

Reply

webkho (00:56 10/06/2011)

toi lam mai ma ko bit tai sao phan dang nhap van bi loi sua hoai ma van ko dc

Reply

luongminhkhoa (22:39 26/06/2011)

trang web rất hữu ích
nếu dùng $_SESSION (hoặc $HTTP_SESSION_VARS), thì đừng dùng session_register(), session_is_registered(), and session_unregister().

Reply

Kenny (17:16 30/06/2011)

Các bạn thân mến !.

Nếu các bạn thực hành theo các đoạn code ở trên mà bị lỗi, vui lòng lập chủ đề tại diễn đàn qhonline.info/forum để được giúp đỡ tốt nhất bạn nhé.

Vì hưỡng dẫn tại đây sẽ khó khăn hơn so với việc hỗ trợ các bạn tại forum.

Cám ơn vì sự quan tâm của các bạn.

Reply

Ngọc Nhân (08:37 19/10/2011)

Em có 1 trang index.php chứa code html để đăng nhập và checklogin.php để xử lý thông tin nhập vào. Thông tin lấy từ CSDL, tạo session như thế nào (viết theo PHP5) và đọc session thế nào để saukhi đăng nhập hiện một câu chào trên trang index

Phạm Bình Liêm (10:17 14/07/2011)

Cũng Khá hay cho những ai mới học PHP như em.

Reply

Ngô xuân thanh (09:12 24/08/2011)

33 session_start();
34 session_register("userid");
35 session_register("level");
36 $_SESSION['userid'] = $row[id];
37 $_SESSION['level'] = $row[level];

---->>> Đoạn code trên các bạn lỗi thì bỏ

34 session_register("userid");
35 session_register("level");

là ok

Reply

Kenny (14:39 09/10/2011)

Chào bạn,

Bắt đầu từ phiên bản PHP 5.2.x trở lên thì hàm session_register() đã bị loại bỏ. Lúc này khi khởi tạo session, bạn chỉ cần dùng $_SESSION['tên'] = "giá trị" là được. Tự biến môi trường sẽ hiểu là bạn đã đăng ký một giá trị mới với tên mà bạn muốn.

Do code tôi demo ở trên là của phiên bản PHP 4.x cho nên mới phải cần có session_register(). Tôi sẽ bổ sung và update lại sau. Cám ơn về chia sẻ của bạn.

dinhkieutrang (15:47 12/10/2011)

ming dang hoc ve ngon ngu php. va thiet ke no bang phan mem dreamwe va wamp. Hien nay minh dang phai viet mot trang web ban hang nhung ko biet phai lam nhu the nao ca. cac ban co the giup minh voi duoc khong

Reply

dang van cuong (19:54 24/10/2011)

minh co the ap dung doan code tren vao word duoc khong
neu duoc thi em mong cac anh chi chi? em voi

Reply

nguyên hữu an (13:35 30/10/2011)

khi mình dán code đăng nhập vào thì nó đã ra dăng nhập đăng kí nhưng khi dăng kí hay dăng nhập thì nó cứ ra bên xtgem.com mình phải làm như thế nào để đăng kí được như là :(bạn đã đăng kí thành công) ai biết giúp mình với minh xin cảm ơn.!

Reply

le thanh cong (14:41 21/11/2011)

web ho tro qua nhiu kien thuc ve php va tat ca nhung dieu minh can cam on nguoi dieu hanh da lap ra web nay thank!

Reply

Phuong Anh (14:56 26/11/2011)

làm sao để tạo điều kiện bắt buộc tên đăng nhập chi có chữ, số và dấu_ mà ko được có các ký tự khác nhỉ

Reply

thanh (22:26 04/12/2011)

bat dau hoc nao cac ban

Reply

nguyễn văn ý (11:47 10/12/2011)

cái này mình chưa hiểu lắm thường thì

session_start(); nó phải nằm ở đầu hok có ai nằm trên nó cả

sao anh lại để nó ở dưới thể nhỉ vậy nó có chạy dc hok ta

Reply

Nguyễn văn Thiện (16:10 17/12/2011)

$_SESSION['userid'] = $row[id];
$_SESSION['level'] = $row[level];

2 dòng này chắc chắn có lỗi vì sai cú pháp.
Pải sửa lại như thế này:
$_SESSION['userid'] = $row["id"];
$_SESSION['level'] = $row["level"];
Bạn nào gặp lỗi thì sửa nhé

Reply

PHP MYSQL Online - Hoc PHP - Dao Tao PHP - Học PHP - CakePHP Framework - Lap Trinh PHP Can Ban - Lap Trinh PHP Nang Cao - PHP Framework - Tài liệu,Thư viện
Copyright 2007-2010 © QHOnline.Info | Powered By QHOnline Version 2.0 - XHTML Valid