10/10/2018, 13:25

Mỗi ngày 1 module PHP

Nguồn: http://itphanthiet.net/diendan/showthread.php?t=167
.
Mở màn cho bài viết thì em xin post đoạn code đếm số người truy cập trước nhé:

//Trong database tạo:
Trích:
CREATE TABLE `user_online` (
`session` char(100) NOT NULL default ',
`time` int(11) NOT NULL default '0'
) TYPE=MyISAM;
//user_online.php
Trích:
############### Code
<?php
session_start();
$session=session_id();
$time=time();
$time_check=$time-600; //SET TIME 10 Minute
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="user_online"; // Table name
// Connect to server and select databse
mysql_connect("$host", "$username", "$password")or die("cannot connect to server");
mysql_select_db("$db_name")or die("cannot select DB");$sql="SELECT * FROM $tbl_name WHERE session='$session'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count=="0"){
$sql1="INSERT INTO $tbl_name(session, time)VALUES('$session', '$time')";
$result1=mysql_query($sql1);
}
else {
"$sql2=UPDATE $tbl_name SET time='$time' WHERE session = '$session'";
$result2=mysql_query($sql2);
}
$sql3="SELECT * FROM $tbl_name";
$result3=mysql_query($sql3);
$count_user_online=mysql_num_rows($result3);
echo "User online : $count_user_online ";
// nếu truy cập hơn 10 phút thì delete session
$sql4="DELETE FROM $tbl_name WHERE time<$time_check";
$result4=mysql_query($sql4);mysql_close();

// xuất kết quả ra nếu mở nhiều trình duyệt và loại trừ

?>
Chú ý: session_start(); // nên đặt vào đầu của code, thường thì Fantashi đặt sau <?php. lúc trước có nhiều bạn mắc lỗi này, tất nhiên có thể đặt nơi khác nhưng sẽ phát sinh nhiều cái Problem lắm, thôi đặt phía trên cho chắc ăn nhé.[/INDENT]
linhtinh0901 viết 15:30 ngày 10/10/2018
cái này rất thích hợp với những người mới tìm hiểu PHP. bạn quả là người nhiệt tình
Mr.Triết viết 15:25 ngày 10/10/2018
Nếu không để link quảng cáo mà ngày nào cũng post thì thực sự là người thiệt tình
ITPHANTHIET.NET viết 15:32 ngày 10/10/2018
PHP Code:
<?
//online counter
$tim = 120+time(); $time = time(); $f = "counters/online.txt"; $nusk = file($f); $sk = count($nusk); $in = $HTTP_USER_AGENT.$REMOTE_ADDR; $fp = fopen($f, "w+"); for($i=0; $i<$sk; $i++) { list($nix, $timf) = explode("|", $nusk***91;$i***93;); if($nix !== $in && $timf>$time) { fwrite($fp,$nusk***91;$i***93;); }} fwrite($fp, "$in|$tim|\n"); fclose($fp); $xfile=file('counters/online.txt');
$onlinecount=count($xfile);

//day hits counter
$fn = "counters/dayhits.txt";
    $fp = fopen($fn, "a+");
    $fs = filesize($fn);
    $tdy = date("d/m/y");
    if ($fs==0)
    {
        $co = 1;
        fwrite($fp, $tdy."-".$co);
    }else{
        $info = fread($fp, $fs);
        $cdata = explode("-", $info);
        ftruncate($fp, 0);
        if($tdy==$cdata***91;0***93;)
        {
            $co = $cdata***91;1***93;+1;
            fwrite($fp, $tdy."-".$co);
        }else{
            $co = 1;
            fwrite($fp, $tdy."-".$co);
        }
    }
    fclose($fp);

//total hits counter
$fp=fopen("counters/hits.txt","a+");
fputs($fp,"1");
fclose($fp);
$totalhits=filesize("counters/hits.txt");
?>
Để code chạy các bạn tạo 1 thư mục counters nằm ngan hàng với tập tin chứa đoạn code trên và trong thư mục các bạn tạo thêm 2 tập tin txt
hits.txt
online.txt
CHMOD thư mục counters và 2 tập tin đó thành 777 nha...

Chúc thành công !
snoob_clo4 viết 15:35 ngày 10/10/2018
Được gửi bởi Mr.Triết
Nếu không để link quảng cáo mà ngày nào cũng post thì thực sự là người thiệt tình
Bác này kì thiệt, công sức người ta viết ra không cho người ta quảng cáo tí à, dù sao vẫn là thiện chí của người ta
ITPHANTHIET.NET viết 15:28 ngày 10/10/2018
Đây là đoạn script rất hữu ích mà mọi người có thể sử dung để tìm kiếm trong CSDL MySQL và trả về kết quả như bạn muốn . Để làm được việc này , bạn tạo một File HTML và cho vào đó đoạn code sau :
Code:
<form method=”post” action=”search.php”>
<input  type=”text” name=”search” size=25 maxlength=25>
<input type=”Submit”  name=”Submit” value=”Submit”>
</form>
Đoạn code viết trên thật đơn giản . Và bây giờ đến phần khó hơn đây , viết mã xử lý cho Form này , nhưng cũng không phải thật sự khó như bạn tưởng đâu :
Tạo một File Search.php và đặt cùng thư mục với file HTML vừa tạo
Công việc chính mà file search.php cần làm là
Kết nối với Server và lựa chọn đúng CSDL , chộp lấy kết quả và hiển thị rõ ràng
Sử dụng vòng lặp While để liên tục tìm những kết quả chúng ta có
Định nghĩa mỗi kết quả một viết và trả kết quả ra ngoài .
Nếu không tìm thấy sẽ báo lỗi “ Nothing Found”
Sau đây là Đoạn Code PHP :
PHP Code:
 <?
//connect to  server
mysql_pconnect(“server”,”server”,”password”);
//select the  db
mysql_select_db(“database”);
//get the results and store them in  $result
$result = mysql_query (“SELECT * FROM whatevertable  WHERE
whatevercolumn LIKE ‘%$search%’”);
//run the while  loop
while($r=mysql_fetch_array($result))
{
//grab the  result
$whatevercolumn=$r***91;"whatevercolumn"***93;;
//print it out
echo  $whatevercolumn;
echo “<br>”;
}
//else nothing is  found
else
{
echo “Nothing found”;
}
?>
Lưu ý một vài điều : bạn cần phải sửa tên , mật khẩu kết nối Database MySQL trong
//connect to server
mysql_pconnect(“server”,”server”,”passwo rd”);
Thay đổi tên CSDL trong :
//select the db
mysql_select_db(“database”);
Đồng thời thay đổi “whatevertable” và “whatevercolumn” thành tên bảng và cột mà bạn muốn tìm từ trong đó .
Chúc thành công!
thuyduongcd viết 15:34 ngày 10/10/2018
Tôi thấy chẳng khác nào xả một đống rác lên diễn đàn.

Đạo văn đạo nhạc đã quá chán nản rồi bây giờ thêm nạn đạo code nữa. Copy của người khác đến không sai cả một dấu chấm phẩy, thậm chí copy cả cái chỗ sai trong code nguồn luôn cũng không nhận ra. Thật là không còn gì để mà nói.
http://www.vietweblink.net/?cmd=news...MYSQL+bang+PHP
ITPHANTHIET.NET viết 15:36 ngày 10/10/2018
Trước tiên, chúng ta tiến hành tạo form HTML đơn giản để thực thi thao tác nhập liệu như sau:

<form action="form.php" method=post>
<table>
<tr>
<td align="left">
<label for="captcha">Captcha</label>
</td>
<td>
<input type="text" name="txtCaptcha" maxlength="10" size="32" />
</td>
<td>
<img src="random_image.php" />
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<input type=submit name=ok value="Check" />
</td>
</tr>
</table>
</form>

Chúng ta chú ý phần hình ảnh, tại đây tôi truyền đường dẫn chính là liên kết tới trang random_image.php. Trang này sẽ thực thi công việc tạo ra những bức hình có dãy số ngẫu nhiên để phần nhập liệu của người sử dụng tham chiếu tới.





Tiếp theo, chúng ta khởi tạo file random_image.php để lấy ra dãy số ngẫu nhiên và phát sinh chúng ngay trên tấm hình cho người truy cập nhập liệu.

Để làm được điều đó. Chúng ta sẽ khởi tạo session và lưu dãy số nhập liệu đó vào session của mình, sau đó so khớp với trang form bên kia.


Đầu tiên chúng ta sử dụng hàm md5 và ran để mã hóa các ký tự bao gồm số và chữ cái. Khi sử dụng hàm md5() ký tự phát sinh sẽ lên tới 32 ký tự. Và chúng ta chỉ lấy duy nhất 5 ký tự từ chuỗi mã hóa đó bằng hàm substr. Tiếp tục ta lưu đoạn mã hóa này trong session cụ thể $_SESSION['security_code'], để tại trang form ta sẽ sử dụng so sánh với phần nhập liệu của người sử dụng.

Vậy nên đoạn code dưới sẽ giải quyết các tình huống này.

$md5_hash = md5(rand(0,999));
$security_code = substr($md5_hash, 15, 5);
$_SESSION["security_code"] = $security_code;


Kế đến ta khởi tạo tấm hình với chiều rộng và chiều cao mà ta thiết lập thông qua hàm ImageCreate() . Và tiếp tục khai báo 2 màu chính là trắng và đen bằng hàm ImageColorAllocate($image, red, green, blue ). Hàm này sẽ tạo ra một màu sắc từ hệ màu RGB trên tấm hình mà chúng ta vừa khởi tạo.

Tiếp tục ta đổ background của tấm hình sẽ là màu đen và chữ xuất hiện trên tấm hình sẽ là màu trắng bằng hàm ImageFill() và hàm ImageString(). Hàm ImageString có một số đối số cơ bản như sau: ImageString($image, 5, 30, 6, $security_code, $white); Trong đó:

+ $image là hình mà chúng ta khởi tạo.

+ 5: là font-size mà chúng ta quy ước cho ký tự xuất hiện trên hình.

+ 30: là khoảng cách bên trái của tấm hình.

+ 6 : là khoảng cách từ trên của tấm hình.

+ $security_code: là đoạn code sau khi chúng ta cắt ra ở trên.

+ $white: là màu sắc mà chúng ta đã sử dụng hàm ImageColorAllocate() ở trên để khởi tạo ra màu trắng.
$width = 100;
$height = 30;
$image = ImageCreate($width, $height);
$white = ImageColorAllocate($image, 255, 255, 255);
$black = ImageColorAllocate($image, 0, 0, 0);
ImageFill($image, 0, 0, $black);
ImageString($image, 5, 30, 6, $security_code, $white);


Kế tới chúng ta sẽ sử dụng lệnh header để trả nội dung này trở về dữ liệu dạng hình. Và tiến hành khởi tạo định dạng cho file hình mà chúng ta vừa tạo là JPG đồng thời giải phóng hình tạm được sử dụng để khợi tạo ra tấm hình này bằng đoạn code sau:

header("Content-Type: image/jpeg");
ImageJpeg($image);
ImageDestroy($image);
Để dễ quản lý chúng ta sẽ đặt tất cả đoạn code trên vào trong 1 hàm để dễ sử dụng và quản lý chúng tốt hơn. Vậy toàn bộ đoạn code trong trang random_image.php này như sau.

<?php
session_start();
function create_image()
{
$md5_hash = md5(rand(0,999));
$security_code = substr($md5_hash, 15, 5);
$_SESSION["security_code"] = $security_code;
$width = 100;
$height = 30;
$image = ImageCreate($width, $height);
$white = ImageColorAllocate($image, 255, 255, 255);
$black = ImageColorAllocate($image, 0, 0, 0);
ImageFill($image, 0, 0, $black);
ImageString($image, 5, 30, 6, $security_code, $white);
header("Content-Type: image/jpeg");
ImageJpeg($image);
ImageDestroy($image);
}
create_image() ;
exit();
?>
Tiếp tục, trong trang form chúng ta phải khởi tạo session để chúng nhận được các giá trị mà ta đã khởi tạo và sử dụng ở trang random_image, kế tới ta kiểm tra xem người dùng có nhấn submit chưa. Nếu có ta sẽ tiếp tục kiểm tra xem người dùng nhập vào textbox có đúng là dãy số hiển thị trên hình ảnh hay không. Và xuất ra thông báo tương ứng với nội dung của người nhập liệu.


Sau đây là toàn bộ code của trang form.php.

<?php
session_start();
if(isset($_POST['ok']))
{
if($_POST['txtCaptcha'] == NULL)
{
echo "Please enter your code";
}
else
{
if($_POST['txtCaptcha'] == $_SESSION['security_code'])
{
echo "ma lenh hop le";
}
else
{
echo "Ma lenh khong hop le";
}
}
}
?>
<form action="form.php" method=post>
<table>
<tr>
<td align="left">
<label for="captcha">Captcha</label>
</td>
<td>
<input type="text" name="txtCaptcha" maxlength="10" size="32" />
</td>
<td>
<img src="random_image.php" />
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<input type=submit name=ok value="Check" />
</td>
</tr>
</table>
</form>
ST có bổ xung
Adam viết 15:34 ngày 10/10/2018
Mỗi ngày 1 module à? Sao mấy hôm nay ko thấy đâu? Đúng là nói 1 đằng làm 1 nẻo
duyanhgamer viết 15:36 ngày 10/10/2018
tiếp đi bác ơi,có mỗi 1 module vậy trời
Bài liên quan
0