Thứ Tư, 16 tháng 10, 2013

Cách khắc phục một số lỗi LAN, WIFI thường gặp

Posted by Unknown Thứ Tư, tháng 10 16, 2013, under | 1 comment


Bài này mình sẽ hướng dẫn các bạn fix lỗi  không kết nối được internet 


I. Cấu hình IP tĩnh :

Nguyên nhân xảy ra sự cố là do modem không đủ khả năng xử lý , bị tác động của "Heroes Keyboard " làm cho firmware bị lỗi, thằng cha nội admin nó giới hạn hay vô tình nó chỉnh thông số giới hạn số máy kết nối vào modem mà chả không hay biết . Do đó modem chỉ cấp phát động IP Address cho một số máy tính thôi, số còn lại thì tèo( theo lý thuyết thì máy không tự cấp phát IP động thì phải cấp phát tĩnh : ))  ) .  Để khác phục trình trạng này thì ta tiến hành cấu hình IP tĩnh cho máy tính . Các bước thực hiện như sau :
1. Chạy CMD với quyền Admin :
Hình mình minh họa là ở Windows 8.1
2. Tại cửa sổ dòng lệnh gõ lệnh : ipconfig ( hoặc ipconfig /all )
Lệnh này cho biết một số thông tin kết nối, giúp ta tìm " Default Gateway " để cấu hình IP tĩnh cho PC của chúng ta .

3. Cấu hình IP tĩnh :

II. Kiểm tra modem/router , đường truyền :

Modem/router : không qua nóng, không có tiếng kiêu " cách cách" khi hoạt động thì modem/router còn dùng được.
Đường truyền : nếu cấm dây vào 2 đầu rồi mà đèn tín hiệu không cháy, gạch chéo ở biểu tượng kết nối thì dây bị đứt, đầu cấp bị bẩn, không tiếp xúc tốt ( đèn tín hiệu cháy " nhấp nhái " theo nhịp truyền dữ liệu, dữ liệu truyền nhiều thì nhái nhanh, ít thì nhái chậm . Khi đèn tín nhái theo kiểu " 2 nhịp liên tục, cách khoảng một nhịp " thì không có mạng internet ) .
Bạn cũng có thể sử dụng lệnh "ping" để kiểm tra
VD: Hình dưới cho thấy 2 lệnh ping đầu có kết nối internet, lệnh ping thứ 3 không có kết nối internet

Ngoài ra chúng ta cũng có thể sửa dụng lệnh "tracert " để kiểm tra có kết nối internet hay không .Như chúng ta đã biết, để kết nối internet thì máy tính ta phải kết nối được với modem -> mạng internet . Tracert là lệnh tìm đường đi từ máy dùng lệnh đến địa chỉ đích . Lệnh này còn cho biết máy ta dùng để ra ngoài mạng internet thì phải đi qua bao thiết bị, tốc độ truyền dữ liệu .
VD : tracert 192.168.0.1
        tracert www.google.com.vn
        tracert www.google.com


III. Router phát Wifi bị trùng IP, trùng kênh phát:
Trường hợp này hay xảy ra khi :
1. Bạn cấu hình router wifi của bạn có IP trùng IP modem thì wifi tèo: login router wifi -> thay đổi IP 
2. Nơi phát wifi có nhiều thiết bị phát wifi khác dẫn đến trùng kênh phát: login router wifi -> thay đổi kênh phát.
* wifi có màu xám, có dấu sao : đối với windows 8, 8.1 bạn nên nâng tầng bảo mật của modem/router wifi lên .

IV. Driver máy :
Do máy bạn thiếu driver, bị lỗi driver.
Vào "Device Manager" để kiểm tra: 
 1. có dấu than: chưa có driver -> cài driver.
 2. có dấu mũi tên hướng xuống : Disable - > Enable.
* Cách cài driver : tải driver từ homepage của máy, giải nến ra thư mục nào đó trên máy, vào "Device Manager"-> chọn card mạng -> nhấp phải-> update .... -> chọn " Drowes my computer .."  -> chọn thư mục chứa driver giải nén driver .



V. Modem chọn chế độ " MAC" :

Bạn phải có quyền quarn trị Modem/ router mới đăng nhập vào, add MAC cho máy bạn .
* Nhiều người hiện nay không hiểu rõ về điạ chỉ MAC, để rồi dẫn đến lạm dụng. Có người hỏi tui rằng " Sao modem tao quản lý MAC rồi mà vẫn có đứa dùng chùa ? Nó biết hack ah ? " . Trường hợp này không hack gì đâu bạn ah. MAC chỉ hiệu quả khi nó là thiết bị phát cuối cùng, nghĩa là nó và máy tính giao tiếp nhau không có thiết bị trung gian. Trường hợp vượt MAC phổ biến khi mà có thiết bị trung gian khác như router wifi. Khi này bạn Add MAC của router wifi  thì nó không kiểu soát được những thiết bị kết nối thông qua router wifi .

VI. Hiện tượng thoắt cổ chay modem :

Hiện tượng này gây ra trình trạng : vẫn kết nối được internet nhưng tốc độ cực kỳ chậm, hầu như không thể truy cập được internet . Hiện nay theo mình biết thì ít xảy ra, và nếu xảy ra thì nhà mạng cũng bó tay vì không hiểu nguyên nhân -> kiểm tra từa lưa hột vịt -> vứt modem  : )) . 
Nguyên nhân phần lớn do có sự can thiệp phần mềm , hay cao nhân nào am hiểu về firmware thiết bị  .... làm cho " Firmware " đều khiển modem bị lỗi .
Cách khắc phục :
a. Nếu trước khi xảy ra sự cố, bạn có sao lưu cấu hình modem thì khôi phục lại
b. Nâng cấp firmware cho router. Nâng cấp lên phiên bản firmware mới nhất từ nhà sản xuất. Cách làm như sau: Truy cập trang cấu hình router, thường có địa chỉ: http://192.168.0.1,http://192.168.1.1, http://192.168.11.1, ...  . Lưu ý rằng có thể một số nhà sản xuất sử dụng các địa chỉ khác cho trang cấu hình, như Buffalo sử dụng dãy, 192.168.11.1, hay với router Linksys là http://192.168.2.1. Tại đây, bạn kiểm tra phiên bản firmware hiện tại, ghi lại tên firmware đó ra giấy hoặc để mở tab trang cấu hình sau đó truy cập vào website của nhà sản xuất router. Ví dụ như router của Linksys cung cấp sẽ có địa chỉ website là www.linksys.com (việc tìm kiếm đơn giản chỉ bằng cách Google tên nhà sản xuất). Bạn mở trang hỗ trợ trên website, tìm model router mình đang sử dụng sau đó tìm sang trang download. Nếu phiên bản firmware của router cũ hơn phiên bản firmware trên trang download này, bạn hãy tải về bản firmware từ website nhà sản xuất và tiến hành nâng cấp theo hướng dẫn.
* Lưu ý rằng việc nâng cấp firmware cần phải cẩn thận bởi nếu không thực hiện thành công thì router có nguy cơ bị brick.

VII. Sửa lỗi Windows :
Đôi lúc windows bị lỗi cũng gây ra trường hợp không kết nối được mang internet, bạn thử sửa lỗi windows bằng 2 cách sau :
- Chạy "Troubleshooting " để sửa lỗi .


- Mở CMD với quyền Admin, chạy lệnh sau : sfc /scannow , để sữa lỗi ,xong reset lại máy .

VIII. Chế độ tắt máy:
Đối với Windows 8.1 thì có các phương hướng tắt máy:
1. Dành cho màn hình cảm ứng , tắt nhanh bằng cách vuốt mép phài màn hình -> setting -> Power ->Shut down ( khuyên bạn nên hạn chế dùng cách tắt này , cách này thường gây ra lỗi không kết nối mạng mỗi lần mở máy mà phải reset lại máy mới có )
2. Nhấp phải nút "Start " ở thanh Task bar, chọn " Shut down or sign out" -> Shut down.( bạn nên dùng )
3. Metro (Start ) -> Shut down ( cách này mình không dùng nên chưa test ) : ))
4. Alt + F4 .

XI. Wifi limitted :
1. Khi dùng wifi tầm 10 ,15 , .. ,30 phút thì bị "limiitted " ,reset máy thì có wifi , nguyên nhân do máy tính của chúng ta để chế độ tiết kiệm năng lượng , cách khắc phục : : nhấp chuôt phải vào biểu tượng wifi ->Properties->configure...-> xuất hiện hộp thoại -> nhấp tab Power Manegement -> click bỏ dấu check trước dòng " Allow the ... " như hình 1 bên dưới, sao đó reset máy.


2. Lâu lâu bị limitted 1 lần khi dùng windows 8, 8.1 : Vào "Network and Sharing Center"-> bấm vào mạng mình đang sử dụng (bên phải chữ Connection) vào "Properties" kéo xuống bỏ dấu tích ở dòng "Internet Protocol Version 6 (TCP/IPv6)"-> bấm OK .
3. Dùng tầm 5 phút là đứt kết nối, tắt rồi bật lại wifi mới có : do virus làm lỗi driver wifi, dùng pm diệt virus quét, xong gỡ driver wifi, cài lại driver mới ( tỉ lệ thành công rất thấp, chỉ có cài lại windows ).
4. Mở nhiều tab truy cập internet thì bị đứt mạng, do card mạng, đi bảo hành, sửa .

X. Chỉnh "proxy" :
Lỗi này xảy ra khi ta vô tình "check " vào mục "proxy" của trình duyệt . Dấu hiệu dễ nhận biết là khi ta dùng trình duyệt này không truy cập được internet, mởi trình duyệt khác lại truy cập được internet. Cách khac18c phục :
1. Firefox / Internet Explorer ->Tools-> Internet Options ->Connections ->LAN Settings ->"check" vào mục " Automatically detect settings -> ok->ok .
2. Google Chrome ->Settings ->Show advanced settings... ->Change proxy settings  ->LAN Settings ->"check" vào mục " Automatically detect settings -> ok->ok .

XI. Lỗi " SSL" :
Khi bạn truy cập vào Google, Facebook, .. , hiện một số dòng thông báo như sau :
SSL connection error
Unable to make a secure connection to the server. This may be a problem with the server, or it may be requiring a client authentication certificate that you don't have.
Error code: ERR_SSL_PROTOCOL_ERROR
Khắc phục lỗi :
1. Do trình duyệt chưa check kiểm định an toàn SSL , ta phải check các mục đó như sau :
 a. Firefox / Internet Explorer ->Tools-> Internet Options -> Avanced -> check các mục như hình dưới
 b. Google Chrome ->Settings ->Show advanced settings... ->Change proxy settings ->Avanced ->check các mục như hình dưới
2. Do file hosts trên máy tính bị đổi khi ta tiếp hành cấu hình server , crack một số chương trình như IDM chẳn hạn . Cách khắc phụ : chép lại file gốc cho hệ thống.

3. Do chương trình diệt virus : Kaspersky -> tắt chế độ quản lý người dùng .

XII . D-Com ( 3G) :
Lỗi này ít xảy ra , khi bạn gặp lỗi này thì bạn
1.  Kiểm tra xem cổng USB có kết nối được thiết bị D -Com không .Các kiểm tra : nhấp vào mũi tên phái dưới bên phải thanh Taskbar hoặc trong cửa sổ Explorer xem có tên thiết bị hay không.



2. Khi bạn kiểm tra cổng USB xong - kết nối được thiết bị D-com ( không được thì cấm D-com vào cổng USB khác ... ) thì bạn kiểm tra xem SIM của bạn đã đăng  ký dịch vụ 3G chưa (gọi nhà cung cấp dịch vụ hỏi ). Nếu khi bạn nhấp vào nút " kết nối " mà xuất hiện thông báo lỗi + " số " thì SIM bạn chưa đăng ký dịch vụ .
3. Cấu hình hệ thống cho SIM -3G : khi bạn đã chắc rằng máy tính nhận được thiết bị D-com, SIM đã đăng ký thì bạn xem lại phần cấu hình hệ thống cho SIM đúng chưa ( mỗi SIM nên có tên cấu hình khác nhau ). VD: nhà mạng Viettel : công cụ->cài đặt -> quản lý cấu hình .


XIII.  Facebook :
Khi máy tính bạn có kết nối được internet mà lại không vào được Facebook thì bạn thử cấu hình DNS của Google xem : 8.8.8.8 , 8.8.4.4 hoặc chỉnh lại file host ( google xem cách chỉnh ).

XIV. Lỗi phát không được wifi :
 Đây là lỗi cũng thường xảy ra, mà khi mình cm trên các diễn đàn, chủ topic im lặng  hoặc nói làm thế này thế nọ , bực quá ngồi trắng đêm để tìm ra nguyên nha , mai quá cuối cùng cũng tìm ra . Quá trình phát wifi tên laptop cũng giống như quá trình cho mượn xe chẳn hạn : để cho mượn xe thì bạn phải có xe , để người mượn được thì bạn phải đồng ý cho mượn . => Laptop phát wifi : máy bạn phải có tính năng phát , để nhận được wifi thì bạn phải bật tính năng share wifi . Vậy làm sao để biết máy mình có phát được hay không ? Đơn giản thôi : những mẫu máy nào sản suất từ thời windows 7 trở về sau thì hầu như có tính năng phát wifi ( tính năng phát wifi từ khi windows 7 ra lò mà ), còn những mẫu trước đó thì không phát được . Còn cách nữa là kiểm tra trong phần "Device Manager", khi mở cửa sổ này lên, bạn vào menu " view " chọn " Show hiden devices " . Nếu nhìn không thấy dòng " Microsoft Hosted Network Virtual Adapter " thì không phát được, ngược lại có thì phát được .
Hình không phát được wifi :

 Hình phát được wifi : 

Thứ Sáu, 4 tháng 10, 2013

Phân trang cho trang add to cart bằng php và mysql

Posted by Unknown Thứ Sáu, tháng 10 04, 2013, under | No comments

      Phân trang web không là vấn đề khó, nhưng chúng ta thường thấy dạng phân trang tương đối đơn giản , phức tạp nhất mình thấy là phân trang cho forums tự viết , add to cart .
Hôm này mình sẽ trình bày cái phân trang cho trang " Add to cart ", trang "Add to cart " như phần hướng dẫn trước , bây giời mình phân trang cho nó bởi vì nếu như số lương sản phẩm nhiều chúng ta không thể để nó ở một trang được mà phải chia ra nhiều trang.
    Các bước thực hiện :

A. PHẦN "Add to cart ":

1. Tạo database : shopping

2. Tạo các table :

--
-- Table structure for table `customers`
--

CREATE TABLE IF NOT EXISTS `customers` (
  `serial` int(11) NOT NULL auto_increment,
  `name` varchar(20) collate latin1_general_ci NOT NULL,
  `email` varchar(80) collate latin1_general_ci NOT NULL,
  `address` varchar(80) collate latin1_general_ci NOT NULL,
  `phone` varchar(20) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`serial`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;


--
-- Dumping data for table `customers`
--

-- --------------------------------------------------------

--
-- Table structure for table `orders`
--


CREATE TABLE IF NOT EXISTS `orders` (
  `serial` int(11) NOT NULL auto_increment,
  `date` date NOT NULL,
  `customerid` int(11) NOT NULL,
  PRIMARY KEY  (`serial`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;


--
-- Dumping data for table `orders`
--

-- --------------------------------------------------------

--
-- Table structure for table `order_detail`
--

CREATE TABLE IF NOT EXISTS `order_detail` (
  `orderid` int(11) NOT NULL,
  `productid` int(11) NOT NULL,
  `quantity` int(11) NOT NULL,
  `price` float NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


--
-- Dumping data for table `order_detail`
--

-- --------------------------------------------------------

--
-- Table structure for table `products`
--

CREATE TABLE IF NOT EXISTS `products` (
  `serial` int(11) NOT NULL auto_increment,
  `name` varchar(50) collate latin1_general_ci NOT NULL,
  `description` varchar(500) collate latin1_general_ci NOT NULL,
  `price` float NOT NULL,
  `picture` varchar(500) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`serial`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;

3. Tạo file "connect.php" :

<?php

$doman = 'localhost';
$username = 'root';
$password = 'huy';
$databasename = 'shopping';
$connect = mysql_connect($doman, $username, $password);
mysql_query("SET character_set_results=utf8", $connect);
mb_language('uni');
mb_internal_encoding('UTF-8');
mysql_select_db($databasename, $connect);
mysql_query("set names 'utf8'",$connect);
  session_start();

?>

4. Tạo file "function.php" :

<?php
 function get_product_name($pid){
  $result=mysql_query("select name from products where serial=$pid");
  $row=mysql_fetch_array($result);
  return $row['name'];
 }
 function get_price($pid){
  $result=mysql_query("select price from products where serial=$pid");
  $row=mysql_fetch_array($result);
  return $row['price'];
 }
 function remove_product($pid){
  $pid=intval($pid);
  $max=count($_SESSION['cart']);
  for($i=0;$i<$max;$i++){
   if($pid==$_SESSION['cart'][$i]['productid']){
    unset($_SESSION['cart'][$i]);
    break;
   }
  }
  $_SESSION['cart']=array_values($_SESSION['cart']);
 }
 function get_order_total(){
  $max=count($_SESSION['cart']);
  $sum=0;
  for($i=0;$i<$max;$i++){
   $pid=$_SESSION['cart'][$i]['productid'];
   $q=$_SESSION['cart'][$i]['qty'];
   $price=get_price($pid);
   $sum+=$price*$q;
  }
  return $sum;
 }
 function addtocart($pid,$q){
  if($pid<1 or $q<1) return;
  
  if(is_array($_SESSION['cart'])){
   if(product_exists($pid)) return;
   $max=count($_SESSION['cart']);
   $_SESSION['cart'][$max]['productid']=$pid;
   $_SESSION['cart'][$max]['qty']=$q;
  }
  else{
   $_SESSION['cart']=array();
   $_SESSION['cart'][0]['productid']=$pid;
   $_SESSION['cart'][0]['qty']=$q;
  }
 }
 function product_exists($pid){
  $pid=intval($pid);
  $max=count($_SESSION['cart']);
  $flag=0;
  for($i=0;$i<$max;$i++){
   if($pid==$_SESSION['cart'][$i]['productid']){
    $flag=1;
    break;
   }
  }
  return $flag;
 }


?>

5. Tạo file "products.php" :

<?php


 include("/var/www/shopping/connect/connect.php");
 include("/var/www/shopping/products/sony/functions.php");
 if(isset($_REQUEST['command']))
 {
  if($_REQUEST['command']=='add' && $_REQUEST['productid']>0){
   $pid=$_REQUEST['productid'];
   $q = 1;
   if(is_array($_SESSION['cart'])){ 
    $pid=intval($pid); 
    $max=count($_SESSION['cart']); 
    for($i=0;$i<$max;$i++){ 
     if($pid==$_SESSION['cart'][$i]['productid']){ 
      $flag = 1;
      break;
     } else {
      $flag = 0;
     }
    }
    if($flag == 1)
    {
     $quan = $_SESSION['cart'][$i]['qty'];
     $quan = $quan + 1;
     $_SESSION['cart'][$i]['qty'] = $quan;
     $i = $max;
    } else { 
     $max=count($_SESSION['cart']); 
     $_SESSION['cart'][$max]['productid']=$pid; 
     $_SESSION['cart'][$max]['qty']=$q; 
     $i = $max;
    }
   }else{ 
   $_SESSION['cart']=array(); 
   $_SESSION['cart'][0]['productid']=$pid; 
   $_SESSION['cart'][0]['qty']=$q; 
   } 
  }
  
   //addtocart($pid,1);
   header("location: shoppingcart.php");
   exit();
 }
?>

<html >
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


<style type="text/css">
table, td, th
{
border:1px solid blue;
background-color:green;
}
</style>


<script language="javascript">
 function addtocart(pid){
  document.form1.productid.value=pid;
  document.form1.command.value='add';
  document.form1.submit();
 }
</script>

</head>




<body>
<form name="form1">
 <input type="hidden" name="productid" />
    <input type="hidden" name="command" />
</form>
<div align="center">
 <table cellpadding="2px" width="550px">
  <?php
   mysql_query("SET character_set_results=utf8", $connect);
   $result="select * from products";
   $result = mysql_query( $result, $connect);
   while($row=mysql_fetch_array($result)){
  ?>
     <tr>
         <td><img src="<?php echo $row['picture'];?>" /></td>
            <td>  Name:  <b><?php echo $row['name'];?></b><br/>
 Description: <?php echo $row['description'];?><br/>
                    Price: $<?php echo $row['price'];?>
<br/><br/>
                    <input type="button" value="Add to Cart" onclick="addtocart(<?php echo $row['serial'];?>)" />
   </td>
  </tr>
        
        <?php } ?>
    </table>
</div>
</body>
</html>

6. Tạo file "shoppingcart.php"

<?php
 include("/var/www/shopping/connect/connect.php");
 include("/var/www/shopping/products/sony/functions.php");
 if(isset($_REQUEST['command']))
 {
  if($_REQUEST['command']=='delete' && $_REQUEST['pid']>0){
   remove_product($_REQUEST['pid']);
  }
  else if($_REQUEST['command']=='clear'){
   unset($_SESSION['cart']);
  }
  else if($_REQUEST['command']=='update'){
   $max=count($_SESSION['cart']);
   for($i=0;$i<$max;$i++){
    $pid=$_SESSION['cart'][$i]['productid'];
    $q=intval($_REQUEST['product'.$pid]);
    if($q>0 && $q<=999){
     $_SESSION['cart'][$i]['qty']=$q;
    }
    else{
     $msg='Some proudcts not updated!, quantity must be a number between 1 and 999';
    }
   }
  }
 }
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Shopping Cart</title>
<script language="javascript">
 function del(pid){
  if(confirm('Do you really mean to delete this item')){
   document.form1.pid.value=pid;
   document.form1.command.value='delete';
   document.form1.submit();
  }
 }
 function clear_cart(){
  if(confirm('This will empty your shopping cart, continue?')){
   document.form1.command.value='clear';
   document.form1.submit();
  }
 }
 function update_cart(){
  document.form1.command.value='update';
  document.form1.submit();
 }




</script>
</head>


<body>
<form name="form1" method="post">
<input type="hidden" name="pid" />
<input type="hidden" name="command" />
 <div style="margin:0px auto; width:600px;" >
    <div style="padding-bottom:10px">
     <h1 align="center">Giỏ Hàng Của Bạn </h1>
    
    </div>
     <div style="color:#F00"><?php if(isset($msg)) {echo $msg;}?></div>
     <table border="3" cellpadding="5px" cellspacing="1px" style="font-family:Verdana, Geneva, sans-serif; font-size:11px; background-color:#E1E1E1" width="100%">
     <?php
   if(isset($_SESSION['cart']))
   {
    if(is_array($_SESSION['cart'])){
     echo '<tr border="4" bgcolor=blue style="font-weight:bold"><td>Serial</td><td>Name</td><td>Price</td><td>Qty</td><td>Amount</td><td>Options</td></tr>';
     $max=count($_SESSION['cart']);
     for($i=0;$i<$max;$i++){
      $pid=$_SESSION['cart'][$i]['productid'];
      $q=$_SESSION['cart'][$i]['qty'];
      $pname=get_product_name($pid);
      if($q==0) continue;
    ?>
      <tr bgcolor="#FFFFFF"><td><?php echo $i+1;?></td><td><?php echo $pname;?></td>
      <td>$ <?php echo get_price($pid);?></td>
      <td><input type="text" name="product<?php echo $pid;?>" value="<?php echo $q;?>" maxlength="3" size="2" /></td>                    
      <td>$ <?php echo get_price($pid)*$q;?></td>
      <td><a href="javascript:del(<?php echo $pid?>)">Remove</a></td></tr>
    <?php    
     }
    ?>
     <tr border="3"  bgcolor=green ><td><b>Order Total: $<?php echo get_order_total();?></b></td><td colspan="5" align="right"> <input type="button" value="Continue Shopping" onclick="window.location='products.php'" /> <input type="button" value="Clear Cart" onclick="clear_cart()"> <input type="button" value="Update Cart" onclick="update_cart()"><input type="button" value="Place Order" onclick="window.location='billing.php'"></td></tr>
    <?php
    }
    else{
     echo "<tr bgColor='#FFFFFF'><td>There are no items in your shopping cart!</td>";
    }
   } else{
     echo "<tr bgColor='#FFFFFF'><td>There are no items in your shopping cart!</td>";
    }
  ?>
        </table>
    </div>
</form>
</body>
</html>

7. Tạo file "billing.php" :

<?php
 include("/var/www/shopping/connect/connect.php");
 include("/var/www/shopping/products/sony/functions.php");
 if(isset($_REQUEST['command'])) {
  if($_REQUEST['command']=='update'){
   $name=$_REQUEST['name'];
   $email=$_REQUEST['email'];
   $address=$_REQUEST['address'];
   $phone=$_REQUEST['phone'];
   
   $result=mysql_query("insert into customers values('','$name','$email','$address','$phone')");
   $customerid=mysql_insert_id();
   $date=date('Y-m-d');
   $result=mysql_query("insert into orders values('','$date','$customerid')");
   $orderid=mysql_insert_id();
   
   $max=count($_SESSION['cart']);
   for($i=0;$i<$max;$i++){
    $pid=$_SESSION['cart'][$i]['productid'];
    $q=$_SESSION['cart'][$i]['qty'];
    $price=get_price($pid);
    mysql_query("insert into order_detail values ($orderid,$pid,$q,$price)");
   }
   die('Thank You! your order has been placed!');
  }
 }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Billing Info</title>
<script language="javascript">
 function validate(){
  var f=document.form1;
  if(f.name.value==''){
   alert('Your name is required');
   f.name.focus();
   return false;
  }
  f.command.value='update';
  f.submit();
 }
</script>
<style type="text/css">
table, td
{
border:1px solid blue;
background-color:green;
}
</style
</head>


<body>
<div align="center">
        <h1 align="center"> Mat Hang</h1>
        <table border="2" cellpadding="2px">
         <tr  style="font-weight:bold">
                <td> Mat Hang:</td>
                <td> So Luong:</td>
                 <td>Don Gia:</td>            
            </tr>
   
   <?php if(isset($_SESSION['cart'])){
    if(is_array($_SESSION['cart'])){     
     $max=count($_SESSION['cart']);
     for($i=0;$i<$max;$i++){
      $pid=$_SESSION['cart'][$i]['productid'];
      $q=$_SESSION['cart'][$i]['qty'];
      $pname=get_product_name($pid);
   ?>   
    <tr><td> <?php echo $pname;?></td> <td> <?php echo $q;?> </td><td> <?php echo get_price($pid);?></td>
     </tr>   
   <?php }?>
  <?php }?>
  <?php } ?>
  
        </table>
 </div>
<form name="form1" onsubmit="return validate()">
    <input type="hidden" name="command" />
 <div align="center">
        <h1 align="center"> Thong Tin Khach Hang</h1>
        <table border="1" cellpadding="2px">
         <tr><td>Order Total:</td><td><?php echo get_order_total();?></td></tr>
            <tr><td>Your Name:</td><td><input type="text" name="name" /></td></tr>
            <tr><td>Address:</td><td><input type="text" name="address" /></td></tr>
            <tr><td>Email:</td><td><input type="text" name="email" /></td></tr>
            <tr><td>Phone:</td><td><input type="text" name="phone" /></td></tr>
            <tr><td><input type=button onclick="window.print()" value='Print this page'></td><td><input type="submit" value="Place Order" /></td></tr>
        </table>
 </div>
</form>
</body>
</html>


 =>Để chạy thử phần " Add to cart " các bạn nên sửa lại đường dẫn các file nha, insert dữ liệu vào table "products " :  serial ,name, ..... . 


B. PHẦN PHÂN TRANG :

1. Tạo file " pagination.css" :

@charset "utf-8";
/* CSS Document */

table {
    *border-collapse: collapse; /* IE7 and lower */
    border-spacing: 0;
    width: 450px; 
text-transform:capitalize;   
}
 tr{
    background: #FFFFD9;
}    
    
 td,th {
    border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
    border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
    padding: 10px;
    text-align:center    
}

th {
    background-color: #dce9f9;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#ebf3fc), to(#dce9f9));
    background-image: -webkit-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:    -moz-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:     -ms-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:      -o-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:         linear-gradient(top, #ebf3fc, #dce9f9);
    -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.8) inset; 
    -moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;  
    box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;        
    border-top: none;
    text-shadow: 0 1px 0 rgba(255,255,255,.5); 
}


.paginate {
font-family:Arial, Helvetica, sans-serif;
padding: 3px;
margin: 3px;
}

.paginate a {
padding:2px 5px 2px 5px;
margin:2px;
border:1px solid #999;
text-decoration:none;
color: #666;
}
.paginate a:hover, .paginate a:active {
border: 1px solid #999;
color: #000;
}
.paginate span.current {
    margin: 2px;
padding: 2px 5px 2px 5px;
border: 1px solid #999;
font-weight: bold;
background-color: #999;
color: #FFF;
}
.paginate span.disabled {
padding:2px 5px 2px 5px;
margin:2px;
border:1px solid #eee;
color:#DDD;
}
li{
padding:4px;
margin-bottom:3px;
background-color:#FCC;
list-style:none;}
ul{margin:6px;
padding:0px;}

2. Sửa nội dung file "products.php" ở phía trên như sau :

<?php


 include("/var/www/shopping/connect/connect.php");
 include("/var/www/shopping/products/sony/functions.php");
 if(isset($_REQUEST['command']))
 {
  if($_REQUEST['command']=='add' && $_REQUEST['productid']>0){
   $pid=$_REQUEST['productid'];
   $q = 1;
   if(is_array($_SESSION['cart'])){ 
    $pid=intval($pid); 
    $max=count($_SESSION['cart']); 
    for($i=0;$i<$max;$i++){ 
     if($pid==$_SESSION['cart'][$i]['productid']){ 
      $flag = 1;
      break;
     } else {
      $flag = 0;
     }
    }
    if($flag == 1)
    {
     $quan = $_SESSION['cart'][$i]['qty'];
     $quan = $quan + 1;
     $_SESSION['cart'][$i]['qty'] = $quan;
     $i = $max;
    } else { 
     $max=count($_SESSION['cart']); 
     $_SESSION['cart'][$max]['productid']=$pid; 
     $_SESSION['cart'][$max]['qty']=$q; 
     $i = $max;
    }
   }else{ 
   $_SESSION['cart']=array(); 
   $_SESSION['cart'][0]['productid']=$pid; 
   $_SESSION['cart'][0]['qty']=$q; 
   } 
  }
  
   //addtocart($pid,1);
   header("location: shoppingcart.php");
   exit();
 }
?>

<html >
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="pagination.css" rel="stylesheet" type="text/css" />


<script language="javascript">
 function addtocart(pid){
  document.form1.productid.value=pid;
  document.form1.command.value='add';
  document.form1.submit();
 }
</script>

</head>


<body>
<form name="form1">
 <input type="hidden" name="productid" />
    <input type="hidden" name="command" />
</form>


<table width="450"  border="1" align="center" cellspacing="0">
  <tr>
    <th width="25"  scope="col">Sản Phẩm</th>  
    <th scope="col">Mô Tả sản Phẩm</th>    
   
  </tr>
    
    <?php  
$connect=mysql_connect("localhost","root","huy");
$sdb=mysql_select_db("shopping",$connect);

$tableName="products"; //page name
$targetpage = "products.php";  
$limit =1;     //limit of dispaly
$query = "SELECT COUNT(*) as num FROM $tableName";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];
$stages = 1;
$page = mysql_escape_string($_GET['page']);
if($page){
$start = ($page - 1) * $limit; 
}else{
$start = 0;
}
    // Get page data
$sel = mysql_query("select * FROM $tableName LIMIT $start, $limit");
while($row1=mysql_fetch_array($sel))
  {
  $id=$id=$row1['serial'];;
?>
<tr align="left"  >
    <td align="left" >
    <img src="<?php echo $row1['picture'];?>" />
<?php echo $row1['name'];?>
<?php echo "<br/>";?>
<?php echo "<br/>";?>
 Giá Bán:$<?php echo $row1['price'];?>
<?php echo "<br/>";?>
<?php echo "<br/>";?>
    <input type="button" value=" Mua " onclick="addtocart(<?php echo $row1['serial'];?>)" />
<?php echo "<br/>";?>
    </td>
   
    <td> <?php echo $row1['description'];?>
</td>
  
   
    
  </tr>
  <?php  } ?>
<tr><td colspan="2" >
<?php
// Initial page num setup
if ($page == 0){$page = 1;}
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total_pages/$limit);
$LastPagem1 = $lastpage - 1;
$paginate = '';
if($lastpage > 1)
{

$paginate .= "<div class='paginate'>";
// Previous
if ($page > 1){
$paginate.= "<a href='$targetpage?page=$prev'>previous</a>";
}else{
$paginate.= "<span class='disabled'>previous</span>"; }

// Pages
if ($lastpage < 7 + ($stages * 2)) // Not enough pages to breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
}
elseif($lastpage > 5 + ($stages * 2)) // Enough pages to hide a few?
{
// Beginning only hide later pages
if($page < 1 + ($stages * 2))
{
for ($counter = 1; $counter < 4 + ($stages * 2); $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
$paginate.= "...";
$paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
$paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";
}
// Middle hide some front and some back
elseif($lastpage - ($stages * 2) > $page && $page > ($stages * 2))
{
$paginate.= "<a href='$targetpage?page=1'>1</a>";
$paginate.= "<a href='$targetpage?page=2'>2</a>";
$paginate.= "...";
for ($counter = $page - $stages; $counter <= $page + $stages; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
$paginate.= "...";
$paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
$paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";
}
// End only hide early pages
else
{
$paginate.= "<a href='$targetpage?page=1'>1</a>";
$paginate.= "<a href='$targetpage?page=2'>2</a>";
$paginate.= "...";
for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page){
$paginate.= "<span class='current'>$counter</span>";
}else{
$paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}
}
}
}
// Next
if ($page < $counter - 1){ 
$paginate.= "<a href='$targetpage?page=$next'>next</a>";
}else{
$paginate.= "<span class='disabled'>next</span>";
}
$paginate.= "</div>";
}
 echo $total_pages.' Trang';
 // pagination
 echo $paginate;
?>
</td>

</tr>
</table>


</body>
</html>


C.  VIDEO DEMO :




Tạo trang đăng nhập, đăng ký sử dụng cookie, session viết bằng php, mysql

Posted by Unknown Thứ Sáu, tháng 10 04, 2013, under |

Vấn đề là chúng ta muốn tạo trang đăng ký account, đăng nhập, có nút ghi nhớ tên đăng nhập , viết bằng PHP và MySQL ( bài này trước đây có viết rồi nhưng thấy có nhiều lỗi quá nay viết lại hoàn chỉnh hơn )
 Các bước thực hiện :

1. Tạo cơ sở dữ liệu (database ) : shopping

2. Tạo bảng (table) dữ liệu trong cơ sở dữ liệu trên : user

CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(100)  NOT NULL,
  `password` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY  (`id`)
) ;

3. Tạo file "check_login.php", file này phần php dùng để kiểm tra dữ liệu nhập vào từ form html, nội file như sau :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
session_start();
$_SESSION['db_is_logged_in'] = false;
$remember=false;
if(isset($_POST['ok'])){
    if(($_POST['username'] == NULL)&&($_POST['password'] == NULL)) {      
    //echo "Ban khong nhap vao Username va Password " ."<br>";
      header("location:check_login.php");
      } else if($_POST['username'] == NULL){          
       // echo " Ban chua nhap Usernam " ."<br>";
         header("location:check_login.php");
      } else if($_POST['password'] == NULL){        
              //echo " Ban chua nhap Password" ."<br>";
         header("location:check_login.php");
                         

               } else {
        $u=$_POST['username'];
        $p=md5( addslashes($_POST['password']));  
        $connect=mysql_connect("localhost","root","huy") or die("can't connect this database");
        mysql_select_db("shopping",$connect);
        $sql="select * from user where username='".$u."' and password='".$p."'";
        $query=mysql_query($sql);
        if(mysql_num_rows($query)==0) {
            //echo " Ban nhap username va password khong dung " ."<br>";
        header("location:check_login.php");    
        } else {      
                $row=mysql_fetch_array($query);      
                $_SESSION['db_is_logged_in'] = true;    
                $_SESSION['username'] = $row["username"];
                $_SESSION['id'] = $row["ID"];
                $_SESSION['password'] = $row["password"];
              if (isset($_POST['remember'])) {
            $_SESSION['remember']=true;
            setcookie("remember", $_SESSION['remember'],time()+60*60*24*100);
            $_COOKIE["remember"];
            setcookie("NhapTen", $_SESSION['username'], time()+60*60*24*100, "/");
            $_COOKIE["NhapTen"];
            setcookie("NhapMK", $_SESSION['password'], time()+60*60*24*100, "/");
            $_COOKIE["NhapMK"];                
          }        
          header("location:management.php"); // kiem tra dung, khong check
          exit;      
        }
    }
} else if($_COOKIE["remember"]==true) {
 $_SESSION['db_is_logged_in'] = true;
  header("location:management.php");
  }

?>

<html>
<head>
</head>

<body>


<form action='' method='POST'>

<table>
<tr>
<td>Tên đăng nhập:</td> <td> <input type='text' name='username' value='NhapTen' /> </td>
</tr>
<tr>
<td>Mật khẩu:</td> <td> <input type='password' name='password' value ='NhapMK'  /> </td>
</tr>

<tr>
<td align="left" colspan="2" >
<input type="checkbox" name="remember" /> 
Ghi nhớ 
</td>
</tr>

<tr>
<td align="center" colspan="2">
<input type='submit' name='ok' value='Đăng nhập'
<input type="reset" name = 'cancel' value = 'Cancel' />  
</td>
</tr>

</table>

</form>
</body>

</html>

4. Tạo file "management.php", file này điều phối  quá trình logout, vì có 2 quá trình logout khác nhau, nội dung file như sau :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<?php
session_start();
if(isset($_COOKIE['NhapMK']))
{
 echo "Tên đăng nhập :<b>".$_COOKIE["NhapTen"]."</br>";
 
 echo " Bạn đã  vào Check Remember " . "</br>" ;

 print " <a href='remove.php'>Nhấp vào đây để thoát</a>";
}
if(($_SESSION['db_is_logged_in'] == true)&&((isset($_COOKIE['NhapMK']))==false)) 
{
   echo "Tên đăng nhập :<b>".$_SESSION['username']."</br>";

 
  
   print "<a href='logout.php'>Nhấp vào đây để thoát</a>";
}
?>

5. Tạo file "logout.php", file này dùng để logout trường hợp không có check vào mục " Ghi nhớ", nội dung file :

<?php
session_start();
if (isset($_SESSION['db_is_logged_in'])) {
unset($_SESSION['db_is_logged_in']);
}
// trở về trang login
header('Location: check_login.php');
?>

6. Tạo file "logout_remember.php", file này dùng logout trường hợp có check "Ghi nhớ ", nội dung file như sau :


<?php
session_start();
setcookie("remember", $_SESSION['remember'],time()-60*60*24*100);
$_COOKIE["remember"];
setcookie("NhapTen", $_SESSION['username'], time()-60*60*24*100, "/");
$_COOKIE["NhapTen"];
setcookie("NhapMK", $_SESSION['password'], time()-60*60*24*100, "/");
$_COOKIE["NhapMK"];    
     
header("location:check_login.php");
exit;

?>

7. Tạo file "register.php", file này dung kiểm tra quá trình nhập liệu tạo account, kiểm tra thỏa diều kiện thì  insert vào table "user", nội dung file :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<?php
// Tải file mysql.php lên
require_once("mysql.php");
if ( isset($_POST['ok']) )
{
// Dùng hàm addslashes() để tránh SQL injection, dùng hàm md5() để mã hóa password
$username = addslashes( $_POST['username'] );
$password = md5( addslashes( $_POST['password'] ) );
$verify_password = md5( addslashes( $_POST['verify_password'] ) );
$email = addslashes( $_POST['email'] );
// Kiểm tra 4 thông tin, nếu có bất kỳ thông tin chưa điền thì sẽ báo lỗi
if ( ! $username || ! $password || ! $verify_password || ! $email )
{
print "Xin vui lòng nhập đầy đủ các thông tin. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";
exit;
}
// Kiểm tra mật khẩu, bắt buộc mật khẩu nhập lúc đầu và mật khẩu lúc sau phải trùng nhau
if ( $password != $verify_password )
{
print "Mật khẩu không giống nhau, bạn hãy nhập lại mật khẩu. <a href='javascript:history.go(-1)'>Nhấp vào đây để quay trở lại</a>";
exit;
}
// Tiến hành tạo tài khoản
@mysql_query("INSERT INTO user (username, password, email) VALUES ('{$username}', '{$password}', '{$email}')");
// Thông báo hoàn tất việc tạo tài khoản
print "Tài khoản {$username} đã được tạo. <a href='check_login.php'>Nhấp vào đây để đăng nhập</a>";
}
?>

<html>
<head>
</head>

<body>
<form action="register.php" method="POST">
<table   align="left" >
<tr>
<td>Tên truy nhập:  </td><td> <input type="text" name="username" value=""></td> 
</tr>
<tr>
<td>Mật khẩu: </td><td> <input type="password" name="password" value=""> </td>
</tr>
<tr>
<td>Xác nhận mật khẩu:</td><td> <input type="password" name="verify_password" value=""> </td>
</tr>
<tr>
<td>Địa chỉ E-mail: </td><td><input type="text" name="email" value=""></td>
</tr>
<tr>
   <td align="center" colspan="2">      <input type="submit" name="ok" value="Đăng ký tài khoản"> </td>
</tr>
</table>     
</form>
</body>
</html>


8. Tạo file "user.php" , file này làm nhiệm vụ, xem có đăng nhập không, có thì được quyền là việc  A-Z gì đó , không thì đưa về trang đăng nhập "check_login.php", nội dung file:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<?php
session_start();

 if( $_SESSION['db_is_logged_in'] ==false)
  header("location:check_login.php");
?>

9. Tạo file "admin.php", file này kiểm tra tên đăng nhập phải là admin không, có thì được  làm viêc, không thì đưa về trang "check_login.php", nội dung file:

<?php
session_start();

// đặt một biến cho password admin
// passoword này có trong bảng cơ sở dữ liệu
// password dẫ được mã hóa MD5
// hoặc bạn tạo table chứa username và pass admin, sau đó dung hàm select để lấy ra rồi so sánh
$pass_admin=="chuỗi_ đã_ mã_ hóa _MD5";


// nếu không đăng nhập thì đưa về trang đăng nhập
 if( $_SESSION['db_is_logged_in'] ==false)
{
  header("location:check_login.php");
}

// Nếu có đăng nhập, không check "ghi nhớ", password không phải pass admin
 if( ($_SESSION['db_is_logged_in'] ==true)&&( $_SESSION['password']!=$pass_admin))
{
  header("location:check_login.php");
}

// Nếu có đăng nhập, có check "ghi nhớ", password không phải pass admin
// Trường hợp này khố tí là khi đóng trình duyêt, rồi mở lên, giá trị của pass giờ là lấy từ cookie
 if( ($_SESSION['db_is_logged_in'] ==true)&&( $_COOKIE["NhapMK"]!=$pass_admin))
{
  header("location:check_login.php");
}



?>

10. Video demo:


11. The End






Thứ Năm, 3 tháng 10, 2013

INSTALL CONKY2-GOLD ON LINUX MINT

Posted by Unknown Thứ Năm, tháng 10 03, 2013, under | No comments

1. Download: google->search->  "conky2-gold"

2.Open terminal and import:

$ sudo add-apt-repository ppa:vincent-c/conky
$ sudo apt-get update
$sudo apt-get install conky-all
Or:
$ sudo add-apt-repository ppa:vincent-c/conky
$ sudo apt-get update
$apt-get install git
$git clone git://github.com/brndnmtthws/conky.git
$sudo apt-get install conky-all

3. Right-click file "conk2-gold" download, seclect "Extract Here "

4. Rename folder "conky" and "fonts" to ".conky" ".fonts" and file "conkyrc" to ".conkyrc"

Copy in /home/<youruser> folder ".conky" ,".fonts" and file ".conkyrc"


5. To start conky in the begining of sesion you have select in applications:
 -Select "Startup Program" select "add" and write:
-Name: Conky
-Command:conky -p 10
-Comment: see~/.conkyrc

6. Reset computer

7. Setting :
- File ".conkyrc" in path to "/home/youruser/" :  goto : horizontal coordinates- Ox, voffset -Oy of screen , change color : default_color , color0 , color1, color2, color3 .
- File "rings.lua" in path to "/home/youruser/.conky" : arg="eth1" -> arg="eth0"(default card enthernet is ethe0 ), or arg="wlan0"(default card wifi wlan0 )

8. Video demo :
P1:http://www.youtube.com/watch?v=3CvInFIBQBU
P2:http://www.youtube.com/watch?v=A81r4ks8--Q&feature=youtu.be

9.The End !


Xem Nhiều

Bài đăng phổ biến

Lưu trữ blog

Blog Archive