Nhập môn PHP
Đề tài thiếtkế Web giúp tìm hiểu và thực hiện trang Web độngvới ngôn
ngữkịchbản PHP, cáckếtnốivớihệ quản trịcơsởdữ liệu MySQL,lấydữ
liệu đểhiểnthịtrên trang Web và cập nhậtdữliệu trởlại.
Đềtài của chúng em là website giới thiệusản phẩmbánhkẹo nênchức năng
chính của website sẽgồm những nộidung cơbản sau:
- Giới thiệu vềcửa hàng
- Giới thiệu vềcácsản phẩm mà cửa hàng kinh doanh
- Cho phépnhân viên của cửa hàng có thểcập nhật thông tin vềsản phẩm
một cách nhanh chóng.
lý Đơn vị tính 10) Trang quản lý người dùng 24 11) Trang thống kê sản phẩm 12) Trang thông báo lỗi khi người dùng không có quyền thao tác 25 Chương V: Viết Code 1) Đoạn mã kiểm tra đăng nhập <?php @session_start(); require("../include/csdl.inc"); //Nhúng tập tin kết nối CSDL $sql="select * from tblnsd where TenTruyNhap='".$_POST['txtUsername']."' and MatKhau ='".md5($_POST['txtPassword'])."'"; $result=mysql_query($sql,$link); $totalRows=mysql_num_rows($result); //Nếu tìm thấy NSD có tên truy nhập & mật khẩu trùng với tên & mật khẩu nhập vào if($totalRows>0) { session_unset('login'); //Hủy session có tên login while($row=mysql_fetch_array($result)) { //Đăng ký các biến Session $_SESSION['username']=$row['TenTruyNhap']; $_SESSION['Quyen']=$row['Quyen']; $_SESSION['login']="Y"; echo '<meta http-equiv=refresh content="2;URL=index.php">'; echo 'Đăng nhập thành công!!!'; echo ''; echo 'Nhấp vào đây nếu trình duyệt không tự động chuyển'; } } else //Nếu ko tìm thấy => Thông báo lỗi { echo 'alert("Sai Tên truy cập hoặc Mật khẩu!\nVui lòng kiểm tra lại"); history.go(-1)'; } ?> 2) Đoạn mã trang kết quả tìm kiếm switch($_POST['cboTimTheo']) { case "all": //Tim theo ten hang & don gia (chon mac dinh) $sql="select * from tblmathangxuat where TenHang like '%".$_POST['txtTukhoa']."%' or DonGia='".$_POST['txtTukhoa']."'"; break; case "tensp": //Tim theo ten san pham $sql="select * from tblmathangxuat where TenHang like '%".$_POST['txtTukhoa']."%'"; break; case "gia": //Tim theo gia $sql="select * from tblmathangxuat where DonGia between '".$_POST['txtGiaBegin']."' and '".$_POST['txtGiaEnd']."'"; break; } $result=mysql_query($sql,$link); //Thực thi câu lệnh SQL 26 $totalRows=mysql_num_rows($result); //Đếm tổng số bản ghi tìm thấy ........ //Trình bày kết quả tìm kiếm If($totalRows<0) //Nếu ko tìm thấy { echo "Không tìm thấy sản phẩm nào giống với từ khóa bạn nhập!"; } Else { ...... Echo ‘ STT Tên sản phẩm Đơn giá Tình trạng ’; #vòng lặp đọc từng bản ghi while ($row = mysql_fetch_array ($result)) { <a href="index.php?open=item_detail&MatHangID= "> đ/ <? # câu lệnh SQL lấy ra đơn vị tính tương ứng với từng sản phẩm $result1=mysql_query("select * from tbldonvitinh where MaDVT='".$row['MaDVT']."'",$link); while($row1=mysql_fetch_array($result1)) { echo $row1['TenDVT']; } ?> <?php if($row['TinhTrang']==0) echo 'Hết hàng'; else echo 'Còn hàng'; ?> ....... 3) Đoạn mã trang Cập nhật thông tin sản phẩm <?php @session_start(); //Khởi động session #Kiểm tra xem đã đăng nhập & có quyền truy cập trang này ko? if($_SESSION['login']!="Y" || $_SESSION['Quyen']==0) 27 echo 'Bạn không được phép truy cập trang này!'; else { require("../include/csdl.inc"); //chèn tập tin kết nối CSDL $edit=$_POST['SubFormItem']; //xử lý hành động switch($edit) { case "Thêm": //Trường hợp thêm sản phẩm $uploaddir = '..\\images\\uploads\\'; $uploadfile = $uploaddir.basename($_FILES['imgAnhMatHang']['name']); #Copy file ảnh lên thư mục uploads move_uploaded_file($_FILES['imgAnhMatHang']['tmp_name'], $uploadfile); #Thực hiện câu lệnh SQL thêm thông tin vào CSDL $sql="insert into tblmathangxuat(TenHang,MaNhomMatHang,MaDVT, Anh, GhiChu, DonGia,NgayNhap)"; $sql.=" values('".$_POST['txtTenMatHang']."','".$_POST['cboNhomMatHang']."',' ".$_POST['cboDonViTinh']."','".basename($_FILES['imgAnhMatHang']['nam e'])."','".$_POST['txtGhiChuMatHang']."','".$_POST['txtDonGiaMatHang' ]."','".date("Y-m-d")."')"; break; case "Cập nhật": //Trường hợp cập nhật sản phẩm $uploaddir = '..\\images\\uploads\\'; $uploadfile = $uploaddir.basename($_FILES['imgAnhMatHang']['name']); if($_FILES['imgAnhMatHang']['name']=="") { $sql_img=""; } else { $sql_img="Anh='".basename($_FILES['imgAnhMatHang']['name'])."'," ; move_uploaded_file($_FILES['imgAnhMatHang']['tmp_name'], $uploadfile); } #Câu lệnh SQL cập nhật thông tin sản phẩm $sql="Update tblmathangxuat set TenHang='".$_POST['txtTenMatHang']."', MaNhomMatHang='".$_POST['cboNhomMatHang']."',"; $sql.=" MaDVT='".$_POST['cboDonViTinh']."',".$sql_img."TinhTrang='".$_POST['c boTinhTrangMatHang']."', GhiChu='".$_POST['txtGhiChuMatHang']."',"; $sql.=" DonGia='".$_POST['txtDonGiaMatHang']."', NgayNhap='".$_POST['txtNgayNhap']."' where MaMatHangXuat='".$_POST['txtMaMatHangXuat']."'"; break; case "Xóa": //Trường hợp xóa sản phẩm #Nếu chưa chọn mặt hàng nào để xóa thì thông báo lỗi if(empty($_POST['MatHangID'])) { echo 'alert("Bạn chưa chọn Mặt Hàng nào!\nVui lòng kiểm tra lại"); 28 history.go(-1)'; } # Nếu ko thì else { if(is_array($_POST['MatHangID'])) { $id=""; #dùng vòng lặp để lấy mã sản phẩm (trong trường hợp xóa nhiều sản phẩm) while(list($key,$value) = each($_POST['MatHangID'])) { $id.=$value.','; } } #Định dạng các mã sp vừa lấy được cho phù hợp với câu lệnh SQL $id=str_replace(",","','", $id); #Câu lệnh SQL để xóa thông tin sản phẩm $sql="delete from tblmathangxuat where MaMatHangXuat IN ('".$id."')"; $del="select Anh from tblmathangxuat where MaMatHangXuat In ('".$id."')"; $del_result=mysql_query($del,$link); while($dodel=mysql_fetch_array($del_result)) { #Hàm xóa file ảnh trong thư mục uploads unlink("..\\images\\uploads\\".$dodel['Anh']); } } break; } #Thực thi phát biểu SQL $result=mysql_query($sql,$link); mysql_close(); //đóng kết nối csdl echo 'window.setTimeout("window.location=\'index.php?do=list_edit_ item\'",100);'; } ?> 4) Đoạn mã cập nhật thông tin người dùng ...... require("../include/csdl.inc"); //chèn tập tin kết nối csdl $act=$_POST['SubFormUser']; // switch($act) //lựa chọn hành động { case "Thêm": //trường hợp thêm người dùng #kiểm tra xem đã tồn tại tên truy nhập chưa? $check="select * from tblnsd where TenTruyNhap='".$_POST['txtTenTruyNhap']."'"; #nếu có rồi thì thông báo lỗi if(mysql_num_rows(mysql_query($check,$link))>0) echo 'alert("Tên truy nhập này đã tồn tại trong CSDL\nVui lòng kiểm tra lại!");window.location="index.php?do=add_user";'; #nếu chưa thì else #câu lệnh sql thêm người dùng 29 $sql="insert into tblnsd(TenTruyNhap,MatKhau,Quyen) values('".$_POST['txtTenTruyNhap']."','".md5($_POST['txtMatkhau'])."' ,'".$_POST['cboQuyen']."')"; break; case "Cập nhật": //trường hợp cập nhật #nếu người dùng ko thay đổi mật khẩu if(empty($_POST['txtMatkhau'])) { #câu lệnh sql cập nhật quyền truy cập $sql="update tblnsd set Quyen='".$_POST['cboQuyen']."' where MaNSD='".$_POST['lstUser']."'"; } #nếu người dùng đổi mật khẩu else { #câu lệnh sql cập nhật quyền & mật khẩu $sql="update tblnsd set MatKhau = '".md5($_POST['txtMatkhau'])."', Quyen='".$_POST['cboQuyen']."' where MaNSD='".$_POST['lstUser']."'"; } break; case "Xóa": //trường hợp xóa người dùng $sql="delete from tblnsd where MaNSD='".$_POST['lstUser']."'"; break; } $result=mysql_query($sql,$link); //thực thi câu lệnh sql mysql_close(); //đóng kết nối csdl .... Các trang cập nhật Đơn vị tính, cập nhật Nhóm mặt hàng cũng tương tự trang này. 5) Đoạn mã trang thống kê sản phẩm #câu lệnh sql lấy thông tin mặt hàng & nhóm mặt hàng, sắp xếp theo tên nhóm mặt hàng $sql="select *,DATE_FORMAT(NgayNhap,'%d/%m/%Y') as Nhap from tblmathangxuat,tblnhommathang"; $sql.=" where tblmathangxuat.MaNhomMatHang=tblnhommathang.MaNhomMatHang"; $sql.=" order by TenNhomMatHang DESC"; #thực thi câu lệnh sql $truyvan=mysql_query($sql,$link); #đếm tổng số bản ghi $num=mysql_num_rows($truyvan); if($num==0) //nếu ko có bản ghi nào { echo 'Không có sản phẩm nào trong cơ sở dữ liệu!'; } Else //nếu có { $i=0; 30 #đọc từng bản ghi = vòng lặp while while($row_truyvan=mysql_fetch_object($truyvan)) { $i++; ?> TenHang?> DonGia?> đ Nhap?> TenNhomMatHang?> <?php } ?>......... 6) Đoạn mã trang Đăng xuất #nếu đã đăng ký biến session thì if(session_is_registered('login')) { #hủy sessionn session_unregister('login'); session_unregister('Quyen'); session_destroy(); $_SESSION['login']="N"; //gán trạng thái chưa đăng nhập $_SESSION['Quyen']=0; //gán quyền = 0 } Hướng phát triển chương trình · Cung cấp khả năng mua hàng & thanh toán trực tuyến · Phát triển thêm một vài chức năng để website “động” hơn nữa 31 Kết luận: Thời gian thực tập vừa qua đã giúp chúng em tiến bộ rất nhiều trong việc học hỏi, nghiên cứu về công nghệ thông tin cũng như việc thiết kế Website. Không những thế, đợt thực tập này cũng giúp chúng em tìm ra được cách làm việc hiệu quả nhất đối với phương pháp làm việc theo nhóm. Việc thiết kế Web này được dựa trên ngôn ngôn ngữ lập trình PHP, HTML, và cơ sở dữ liệu MySQL. Website được dùng để giới thiệu sản phẩm trên mạng. Do còn nhiều hạn chế về mặt thời gian, kiến thức và kinh nghiệm làm việc nên bài thực tập không thể tránh khỏi những khiếm khuyết và sai sót. Vì vậy, chúng em rất mong được sự đóng góp ý kiến của thầy cô để chúng em có thể hoàn thiện đề tài hơn nữa. Cuối cùng, chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy Đào Trần Minh đã tận tình hướng dẫn chúng em trong thời gian hoàn thành bài thực tập chuyên ngành này. Hà Nội, ngày 1/3/2006 Sinh viên Đỗ Nam Khánh Vũ Mạnh Linh 32 Tài liệu tham khảo Các website: 1. 2. 3. 4. Tài liệu 1. MySQL /PHP Database Applications 2. MySQL Manual 3. Xây dựng ứng dụng web bằng PHP & MySQL (Phạm Hữu Khang) 4. Hướng dẫn thiết kế trang web tương tác bằng Javascript (Nguyễn Trường Sinh)
File đính kèm:
- Nhập môn PHP.pdf