Trang 8 / 22 FirstFirst ... 356789101113 ... LastLast
Hiển thị kết quả từ 71 đến 80 / 216
  1. #71
    Tham gia
    06-08-2005
    Bài viết
    828
    Like
    2
    Thanked 4 Times in 3 Posts
    Quote Được gửi bởi libraciter View Post
    Đọc hết các bài thì thấy phần đếm số lượt truy cập đã được mọi người cải tiến rất nhiều. Mình cũng học hỏi được nhiều.
    Nhưng để đếm số thành viên online của trang web hay số lượng khách của trang web trong 1 thời điểm thì làm sao? Tại vì khi tắt browser thì session sẽ bị mất nhưng làm sao để bắt được sự kiện đó để cập nhật lại số thành viên/khách online?
    Trả lời từng câu hỏi của bạn:
    1. Đếm số thành viên online: tương đối ... không khó: bạn gán thêm một field status vào table user để ám chỉ trạng thái thành viên(boolean ấy). Khi cần lấy số thành viên online thì SELECT các thành viên có status='true' rồi đếm COUNT của nó. Khi cần lấy tên thành viên đang online thì cũng như trên nhưng thay vì đếm COUNT ta lấy username.
    2. Đếm số khách đang truy cập: Bạn cần có 1 table mới (giả sử mình đặt tên là useronline) trong đó gồm các fields chính như: timestamp, ip ngoài ra còn có thể thêm 1 fields file để xác định user đó đang xem file hoặc thư mục nào trong website cũng được.

    Sau một khoản thời gian mặc định (5" chẳng hạn) bạn cập nhật table bằng cách delete các dòng rồi insert các dòng mới phân biệt nhau bằng IP(khóa chính), cập nhật thêm các thông số kia nữa là xong.

    Bạn có thể xem ví dụ dưới đây:
    Tạo bảng :
    PHP Code:
    CREATE TABLE `usersonline` (
      `
    timestampint(15NOT NULL default '0',
      `
    ipvarchar(40NOT NULL default '',
      `
    filevarchar(100NOT NULL default '',
      
    KEY `timestamp` (`timestamp`),
      
    KEY `ip` (`ip`),
      
    KEY `file` (`file`)
    ) ; 
    Tạo một file online.php với code sau:
    PHP Code:
    <?php
    class UsersOnline {
        var 
    $timeoutSeconds 300;//Đây là thời gian refresh tính bằng giây
        
    var $numberOfUsers 1;//mặc định số người truy cập(ít nhất là 1 người đang xem - chính là bạn đó ^_^)
     
       
    function UsersOnline() {
            
    $this->refresh();                                                                            
        }
     
       function 
    getnumberOfUsers() {
            return 
    $this->numberOfUsers;
        }
     
        function 
    printNumber() {
            if(
    $this->numberOfUsers == 1) {
                echo 
    "1 người đang truy cập.";
            } else {
                echo 
    "$this->numberOfUsers người đang trực tuyến";
            }
        }
     
        function 
    refresh() {
            global 
    $data;
            
    $currentTime time();
            
    $timeout $currentTime $this->timeoutSeconds;
            
    $allow=true;
            
    $query=$data->query("SELECT ip FROM usersonline");
             while(
    $row=$data->fetch_array($query))
                {
                    if(
    $_SERVER***91;'REMOTE_ADDR'***93;==$row***91;"ip"***93;)
                        
    $allow false;
                }
            if(
    $allow)
            {
                
    $query=$data->query("INSERT INTO usersonline VALUES ('$currentTime','".$_SERVER***91;'REMOTE_ADDR'***93;."','$PHP_SELF')");
            }
            
    $query=$data->query("DELETE FROM usersonline WHERE timestamp < $timeout");
            
    $query=$data->query("SELECT ip FROM usersonline");                       
            
    $this->numberOfUsers $data->num_row($query);
          }
        
     
    }

    $ol = new UsersOnline();
    $ol->printNumber();

    ?>
    Như vậy, tại nơi cần hiển thị bạn gọi file online.php là xong.
    Phần kết nối cơ sở dữ liệu bạn tự thực hiện nhé
    Diễn đàn SEO Việt Nam

  2. #72
    Tham gia
    12-03-2007
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts
    mình viết code để kiểm cho người khác đăng ký, không biết sai chỗ nào mà chạy không được, cao thủ chỉnh sửa giúp:
    Đây là đoạn script kiểm soát lỗi đăng ký:

    <?php
    if (session_is_registered("errmsg"))
    echo "<b>".$HTTP_SESSION_VAR["errmsg"]."</b>";
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Language" content="en-us">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Website Ho Tro Doi Song Sinh Vien </title>
    </head>
    <body>
    <script language="javascript">
    function ktusername()
    {
    var s = new String();
    s=document.dangkythanhvien.username.value;
    var len; var s1=" "; var s2="";
    len=s.length;
    var co=s.indexOf(s1);
    if ((len>=30)||(len<5)||(co!=-1)||(s==s2))
    {
    document.dangkythanhvien.username.focus();
    return false;
    }
    return true;
    }

    function ktpass()
    {
    var s= new String();
    s= document.dangkythanhvien.pass.value;
    var len; var s1=" "; var s2="";
    len=s.length;
    var co;
    co=s.indexOf(s1);
    if ((len>15)||(len<3)||(co!=-1)||(s==s2))
    {
    document.dangkythanhvien.pass.focus();
    return false;
    }
    return true;
    }

    function checkpass()
    {
    var s1= document.dangkythanhvien.pass.value;
    var s2= document.dangkythanhvien.repass.value;
    if(s1!=s2)
    {
    document.dangkythanhvien.repass.focus();
    return false;
    }
    return true;
    }

    function ktmail()
    {
    var s = new String();
    s = document.dangkythanhvien.email.value;
    var s1="@";
    var a=s.indexOf(s1);
    var s2=" ";
    var b= s.indexOf(s2);
    var s3=".";
    var c=s.indexOf(s3);
    var d=s.length;
    if ((a==-1)||(a==0)||(a==d)||(c==a-1)||(c==d)||(c==-1)||(b!=-1))
    {
    document.dangkythanhvien.email.focus();
    return false;
    }
    return true;
    }

    function checkmail()
    {
    s1= document.dangkythanhvien.email.value;
    s2= document.dangkythanhvien.reemail.value;
    if(s1!=s2)
    {
    document.dangkythanhvien.reemail.focus();
    return false;
    }
    return true;
    }

    function kttele()
    {
    var s= document.dangkythanhvien.tele.value;
    var len= s.length;
    if((len >10)||(len<7))
    {
    document.dangkythanhvien.tele.focus();
    return false;
    }
    return true;
    }

    function ktname()
    {
    var s = new String();
    s=document.dangkythanhvien.hoten.value;
    var len=s.length;
    if ((len<4)||(len>50))
    {
    document.dangkythanhvien.hoten.focus();
    return false;
    }
    return true;
    }

    function ktlocation()
    {
    var s = new String();
    s = document.dangkythanhvien.location.value;
    var len=s.length;
    if ((len<10)||(len>50))
    {
    document.dangkythanhvien.location.focus();
    return false;
    }
    return true;
    }

    function goi()
    {
    if (!ktusername())
    return;
    if (!ktpass())
    return;
    if (!checkpass())
    return;
    if (!ktmail())
    return;
    if(!checkmail())
    return;
    if (!kttele())
    return;
    if (!ktname())
    return;
    if (!ktlocation())
    return;
    document.dangkythanhvien.action="kt_register.php";
    document.dangkythanhvien.submit();
    }
    </script>

    <form method="POST" name="dangkythanhvien">
    <table border="1" width="100%">
    <tr>
    <td colspan="2" align="center">BANNER I</td>
    </tr>
    <tr>
    <td colspan="2" bgcolor ="#339999" height="30"></td></tr>
    <tr>
    <td colspan="2" align="center">BANNER 2</td>
    </tr>
    <tr>
    <td colspan="2" bgcolor="#33999" align="left">
    <font size="4" color="#FFFFFF">***272;***259;ng ký làm thành viên di***7877;n ***273;àn h***7895; tr***7907;
    sinh viên</font></td>
    </tr>
    <tr>
    <td colspan="2">
    <div>***272;***7875; g***7917;i ***273;***432;***7907;c bài vi***7871;t, h***7891; s***417; xin vi***7879;c, h***7891; s***417; tìm nhà tr***7885;, tìm
    vi***7879;c hay post bài. Xin vui lòng nh***7853;p Username và các thông tin
    bên d***432;***7899;i:</div>

    </td>
    </tr>
    <tr>
    <td colspan="2">
    <b><font size="2" color="#33999">User Name:</font></b><br>
    <input type="text" name ="username" size="40">
    </td>
    </tr>
    <tr>
    <td colspan="2">
    <b><font size="2" color="#33999">M***7853;t Kh***7849;u:</font></b><br>
    Xin vui lòng nh***7853;p password, l***432;u ý phân bi***7879;t ch***7919;<b>Hoa</b> và ch***7919; <b>th***432;***7901;ng</b>
    </td>
    </tr>
    <tr>
    <td width="23%">
    M***7853;t Kh***7849;u:<br>
    <input type="password" name="pass" size="25">
    </td>
    <td width="75%">
    Nh***7853;p l***7841;i password:<br>
    <input type="password" name="repass" size="25">
    </td>
    </tr>
    <tr>
    <td width="23%">
    Email:<br>
    <input type="text" name="email" size="25">
    </td>
    <td width="75%">
    Nh***7853;p l***7841;i email:<br>
    <input type="text" name="reemail" size="25">
    </td>
    </tr>
    <tr>
    <td>
    H***7885; tên:<br>
    <input type="text" name="hoten" size="25">
    </td>
    <td>***272;i***7879;n tho***7841;i:<br>
    <input type="text" name="tele" size="25">
    </td>
    </tr>
    <tr>
    <td colspan="2">***272;***7883;a ch***7881;:<br>
    <input type="text" name="location" size=60>
    </td>
    </tr>
    <tr align="center">
    <td colspan="2">
    <input type="button" value="Registy" name="submit" onclick="goi();">
    <input type="reset" value ="Reset Fields">
    </td>
    </tr>
    <tr>
    <td width="99%" colspan="2">
    copyright ®</td>
    </tr>
    </table>
    </form>

    </body>
    </html>

    Mình đựa vào index của tinhoc.vn đó, bị lỗi chỗ script nên không kiểm tra tiếp bên trang kt_register.php được ai coi giúp

  3. #73
    Tham gia
    12-03-2007
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts
    Và đây là đoạn code kt_register.php của mình
    <?
    session_start();
    include ("include/conn.inc");
    $username =$HTTP_POST_VARS["username"];
    session_register("dlusername");
    $HTTP_SESSION_VARS["dlusername"]=$username;

    $email=$HTTP_POST_VARS["email"];
    session_register("dlemail");
    $HTTP_SESSION_VARS["dlemail"]=$email;

    //Kiem tra du lieu hop le ko;
    $queryusername="select * from thanh_vien where id = '$username'";
    $resultusername=mysql_query($queryusername,$conn);
    $queryemail="select * from thanh_vien wher email='$email'"
    $resultemail=mysql_query($queryemail,$conn);
    if(mysql_num_rows($resultusername)>0)
    {
    session_register["errmsg"]="<font color=red> username da duoc dang ky </font>";
    Header("Location: register.php");
    }
    elseif(mysql_num_rows($resultemail)>0)
    {
    session_register["errmsg"]="<font color=red> email da duoc dang ky </font>";
    Header("Location: register.php");
    }
    else
    {
    $username=$HTTP_POST_VARS["username"];
    $pass=$HTTP_POST_VARS["pass"];
    $email=$HTTP_POST_VARS["email"];
    $hoten=$HTTP_POST_VARS["hoten"];
    $tele=$HTTP_POST_VARS["tele"];
    $location=$HTTP_POST_VARS["location"];
    $query="insert into thanh_vien(id,pass,hoten,email,diachi,dienthoai) values('$username','$pass','$hoten','$email','$loc ation','$tele')";
    mysql_query($query,$conn);
    $_session["username"]=$username;
    session_register["msg"]="<font color=red> chuc mung ban dang ky thanh cong </font>";
    header("location:home.php");
    mysql_close ($conn);
    }
    ?>

    Nhưng nó báo lỗi chỗ đoạn script ko hiểu nổi

  4. #74
    Tham gia
    12-03-2007
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts
    code script kiểm tra mà (kiểm tra nhiều thứ nằm trong nhiều hàm) mà thôi mình tìm ra lỗi rồi. cái lổi là do mình xài 1 cái function có câu lệnh document.dangkythanhvien.action="kt_register.php";
    document.dangkythanhvien.submit();
    thì ở chỗ
    <input type="button"value="Registy"name="submit"onclick=" goi();">
    thì ko được phép dùng name nữa, vì nó sẽ không hiểu cái submit trong câu document.dangkythanhvien.submit là: .submit hay . biến name của form ấy mà

  5. #75
    Tham gia
    11-01-2007
    Location
    Vinh city
    Bài viết
    181
    Like
    0
    Thanked 0 Times in 0 Posts

    Tệ thật ! Đính chính tý nhỉ!

    Quote Được gửi bởi germini View Post
    Sao test trên local với IIS php5 thì okie sao lên host Apache php4 thì lại ko được vậy bác, mổi lần F5 là lại tăng 1 ...
    Giải quyết sao đây
    Code này không phụ thuộc vào Server & PHP ver bao nhiêu cả, đơn giản là nó chỉ đọc và ghi số người truy cập vào 1 file *.txt mà thôi.
    Điểm yếu của nó là nếu lên 1 con số khá lơn, ví dụ: 15000 chẳng hạn thì đảm bảo con số đó sẽ quay trở về Zero ngay lập tức.
    Xin khuyến cáo các bạn như vậy!

  6. #76
    Tham gia
    06-08-2005
    Bài viết
    828
    Like
    2
    Thanked 4 Times in 3 Posts
    Thông tin đó ở đâu ra vậy 12gio !!!
    Mình counter của mình vừa test là 100000000001 vẫn chạy ổn. Bó tay ! "Không biết gì về điện lại thích sờ vào công tơ", bạn làm người khác nản lòng rồi đó thấy không )
    Diễn đàn SEO Việt Nam

  7. #77
    Tham gia
    11-01-2007
    Location
    Vinh city
    Bài viết
    181
    Like
    0
    Thanked 0 Times in 0 Posts

    Chỉnh sửa chút coi!

    PHP Code:
    <? 
    $browser = "$HTTP_USER_AGENT"; 
    print("Bạn đang sử dụng: $browser")
    ?>
    PHP Code:
    <?
    //Browser user agent
    $browser = $_SERVER***91;'HTTP_USER_AGENT'***93;; 
    echo $browser;
    ?>

  8. #78
    Tham gia
    11-01-2007
    Location
    Vinh city
    Bài viết
    181
    Like
    0
    Thanked 0 Times in 0 Posts

    He he he!

    Quote Được gửi bởi babyinternet View Post
    Thông tin đó ở đâu ra vậy 12gio !!!
    Mình counter của mình vừa test là 100000000001 vẫn chạy ổn. Bó tay ! "Không biết gì về điện lại thích sờ vào công tơ", bạn làm người khác nản lòng rồi đó thấy không )
    Không tin thì cứ làm mà coi!
    Tui chiến nó mấy lần rồi, đặc biệt là trên Linux bị hoài. Ông bạn chắc toàn sửa công tơ hỏng thôi, cần gì phải có điện mới sửa được?

  9. #79
    Tham gia
    02-07-2007
    Bài viết
    12
    Like
    0
    Thanked 0 Times in 0 Posts
    counterlog.txt tạo như thế nào, bạn chỉ giúp với

  10. #80
    Tham gia
    19-10-2006
    Location
    JavaScriptB@nk.com - Vô địch JavaScript Việt Nam 4 năm liền | 2.000+ JavaScripts
    Bài viết
    1,912
    Like
    0
    Thanked 13 Times in 12 Posts
    Quote Được gửi bởi Siêu Xayda View Post
    counterlog.txt tạo như thế nào, bạn chỉ giúp với
    thật ra, đối với những ai mới học PHP thì việc tạo file cũng khá rất rối, bạn phải làm đầy đủ các bước sau:
    1. Bạn phải tìm(hoặc mua) 1 bản Windows bất kì, cài nó vào PC của mình.
    2. Khởi động Windows, quan sát thật kĩ và vào menu Start -> All Programs -> Accessories -> Notepad.
    3. Nhấn tổ hợp phím Ctrl + S để mở hộp thoại lưu tài liệu của Notepad lên
    4. Tìm nơi lưu tập tin, sau đó gõ thật chính xác counterlog.txt tại ô File name
    ---
    tất cả là bạn phải làm như thế đấy, nếu chịu khó thì chắc chắn bạn sẽ làm đươc, chúc bạn thành công

Trang 8 / 22 FirstFirst ... 356789101113 ... LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •