欧美a级片视频-欧美a级片免费看-欧美a级大片-欧美a级成人淫片免费看-99久久网站-99久久视频

 
深圳網站建設設計

將想法與焦點和您一起共享

深圳網站建設設計 深圳網站優化排名 深圳網站設計制作欣賞

如何創建自己的程序(JavaScript、ajax、PHP)

2017-07-26  閱讀: 深圳網站建設設計

如何創建自己的程序(JavaScript、ajax、PHP)
深圳網站建設創建網站時,一個主要目標是吸引訪問者。交通產生是為了金錢目的,炫耀你的工作,或只是表達你的想法。有很多方法可以為你的網站創建流量。搜索引擎,社會化書簽,口碑只是幾個例子。但是你怎么知道這個交通是不是真的呢?你怎么知道你的客人是否會再次回來?

這些問題提出了網絡統計的概念。通常情況下,網站管理員使用某些程序,如谷歌Analytics或軟件,來完成他們的工作。這些程序獲取關于站點訪問者的各種信息。他們發現頁面視圖,訪問,獨特的訪問者,瀏覽器,IP地址,等等。但這究竟是如何實現的呢?請跟隨本教程如何創建你自己的網站統計程序使用PHP,JavaScript,Ajax,和SQLite。

首先,讓我們從一些簡單的HTML標記開始,它將充當我們所跟蹤的頁面:

<!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" dir="ltr" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Web Statistics</title>
</head>
<body>

<h2 id="complete"></h2>

</body>
</html>

H2 #完整的元素將被填充動態JavaScript一旦頁面視圖已成功通過我們的網站統計跟蹤。為了啟動跟蹤,我們可以使用jQuery和Ajax請求:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type='text/javascript'>
$(function() {
    // Set the data text
    var dataText = 'page=<?php echo $_SERVER['REQUEST_URI']; ?>&referrer=<?php echo $_SERVER['HTTP_REFERER']; ?>';

    // Create the AJAX request
    $.ajax({
        type: "POST",                    // Using the POST method
        url: "/process.php",             // The file to call
        data: dataText,                  // Our data to pass
        success: function() {            // What to do on success
            $('#complete').html( 'Your page view has been added to the statistics!' );
        }
    });
});
</script>

一步一步地考慮上面的代碼:

當DOM準備好了,我們首先把我們的數據、文本。本文在查詢字符串的格式,將數據發送到process.php,將跟蹤此頁面視圖。

然后我們創建一個Ajax請求,它使用POST方法發送表單數據。

如何創建自己的程序(JavaScript、ajax、PHP)

我們的表格數據(數據、文本)然后送到process.php在我們服務器的根。

一旦這個請求完成,H2 #完整的元素是充滿成功的通知

我們下一步的工作是寫process.php。它的主要目標是獲取有關Web統計信息的信息,并將其存儲在數據庫中。由于我們的數據庫尚未作出,我們必須創建一個簡單的文件,安裝,這將為我們做這件事:

<?php    
    # Open the database
    $handle = sqlite_open( $_SERVER['DOCUMENT_ROOT'].'stats.db', 0666, $sqliteError ) or die(  $sqliteError  );

    # Set the command to create a table
    $sqlCreateTable = "CREATE TABLE stats(page text UNIQUE, ip text, views UNSIGNED int DEFAULT 0, referrer text DEFAULT '')";

    # Execute it
    sqlite_exec( $handle, $sqlCreateTable );
    
    # Print that we are done
    echo 'Finished!';
?>

這段代碼大部分是直截了當的。它在服務器的根目錄中打開一個數據庫,并為它創建一個數據庫。在sqlcreatetable美元的字符串是一個SQLite命令,使我們的統計表。該表包含四列:頁面、IP地址、意見和推薦:

頁面是一個字符串,其中包含被視為相對鏈接的頁面(即索引PHP)。

IP地址也是一個字符串,其中包含訪問此頁的IP地址列表。它是在numvisits1格式(IP地址1)numvisits2(IP演說2)numvisits3(IP address3)等。例如,如果我們從74.35.286.15來訪10人次和5 86.31.23.78(假想的IP地址),這個字符串將“10(74.25.286.15)5(86.31.23.78)”。

視圖是一個包含頁面被瀏覽次數的整數。

引用在同一格式的字符串作為IP地址。它包含所有引用到這個網頁有多少下線了。

現在到process.php:

# Connect to the database
$handle = sqlite_open( $_SERVER['DOCUMENT_ROOT'].'/stats.db', 0666, $sqliteError ) or die( $sqliteError );

# Use the same-origin policy to prevent cross-site scripting (XSS) attacks
# Remember to replace http://yourdomain.com/ with your actual domain
if( strpos( $_SERVER['HTTP_REFERER'], 'http://yourdomain.com/' ) !== 0 ) {
     die( "Do not call this script manually or from an external source." );
}

# Obtain the necessary information, strip HTML tags, and escape the string for backup proetection
$page = sqlite_escape_string( strip_tags( $_POST['page'] ) );
$referrer = sqlite_escape_string( strip_tags( $_POST['referrer'] ) );
$ip = sqlite_escape_string( strip_tags( $_SERVER['REMOTE_ADDR'] ) );


# Query the database so we can update old information
$sqlGet = 'SELECT * FROM stats WHERE page = ''.$page.''';
$result = sqlite_query( $handle, $sqlGet );

這第一段代碼連接到我們的統計數據庫,并獲取當前訪問所需的信息。它還查詢數據庫并獲取以前存儲的任何信息。我們使用此信息創建更新表。

下一個工作是查找舊信息:
# Set up a few variables to hold old information
$views = 0;
$ips = '';
$referrers = '';
    
# Check if old information exists
if( $result && ( $info = sqlite_fetch_array( $result ) ) ) {
    # Get this information
    $views = $info['views'];
    $ips = $info['ip'].' ';
    if( $info['referrer'] )
        $referrers = $info['referrer'].' ';

    # Set a flag to state that old information was found
    $flag = true;
}


上面的代碼查找表中的所有以前的信息。這是至關重要的,我們需要更新視圖的數量(增加了一個),IP地址,和引薦。
# Create arrays for all referrers and ip addresses
$ref_num = array();
$ip_num = array();

# Find each referrer
$values = split( ' ', $referrers );

# Set a regular expression string to parse the referrer
$regex = '%(d+)((.*?))%';

# Loop through each referrer
foreach( $values as $value ) {
    # Find the number of referrals and the URL of the referrer
    preg_match( $regex, $value, $matches );
        
    # If the two exist
    if( $matches[1] && $matches[2] )
        # Set the corresponding value in the array ( referrer link -> number of referrals )
        $ref_num[$matches[2]] = intval( $matches[1] );
}
    
# If there is a referrer on this visit
if( $referrer )
    # Add it to the array
    $ref_num[$referrer]++;
    
# Get the IPs
$values = split( ' ', $ips );

# Repeat the same process as above
foreach( $values as $value ) {
    # Find the information
    preg_match( $regex, $value, $matches );
        
    # Make sure it exists
    if( $matches[1] && $matches[2] )
        # Add it to the array
        $ip_num[$matches[2]] = intval( $matches[1] );
}

# Update the array with the current IP.
$ip_num[$ip]++;

上面的兩個循環非常相似。他們從數據庫中獲取信息并用正則表達式解析它。一旦解析了這個信息,它就存儲在一個數組中。然后使用當前訪問的信息更新每個數組。然后,可以使用此信息創建最終字符串:
# Reset the $ips string
$ips = '';

# Loop through all the information
foreach( $ip_num as $key => $val ) {
    # Append it to the string (separated by a space)
    $ips .= $val.'('.$key.') ';
}

# Trim the String
$ips = trim( $ips );

# Reset the $referrers string
$referrers = '';

# Loop through all the information
foreach( $ref_num as $key => $val ) {
    # Append it
    $referrers .= $val.'('.$key.') ';
}

# Trim the string
$referrers = trim( $referrers );

最后的字符串現在創建。IPS和引薦的形式是:“numvisits1(IP / referrer1)numvisits2(IP / referrer2)等。例如,以下是引用字符串:

5(https://www.noupe.com) 10(http://css-tricks.com)

# Update the number of views
$views++;
    
# If we did obtain information from the database
# (the database already contains some information about this page)
if( $flag )
    # Update it
    $sqlCmd = 'UPDATE stats SET ip=''.$ips.'', views=''.$views.'', referrer=''.$referrers.'' WHERE page=''.$page.''';

# Otherwise
else
    # Insert a new value into it
    $sqlCmd = 'INSERT INTO stats(page, ip, views, referrer) VALUES (''.$page.'', ''.$ips.'',''.$views.'',''.$referrers.'')';
        
# Execute the commands
sqlite_exec( $handle, $sqlCmd );

這就是它的process.php。作為一個回顧,發現訪客的IP地址和引用,使用的值來創建兩個字符串,增加一個頁面瀏覽數,和地方的所有這些值到數據庫。

如何創建自己的程序(JavaScript、ajax、PHP)

現在只剩下一個任務了。我們必須顯示網絡統計信息。讓我們把以下文件display.php:
<!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" dir="ltr" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Web Statistics Display</title>
</head>
<body>

<?php
    # Open up the database
    $handle = sqlite_open( $_SERVER['DOCUMENT_ROOT'].'/stats.db', 0666, $sqliteError ) or die( $sqliteError );
    
    # Get all the statistics
    $sqlGet = 'SELECT * FROM stats';
    $result = sqlite_query( $handle, $sqlGet );
    
    # Create an unordered list
    echo "<ul>n";
    
    # If there are results
    if( $result ) {
        $page_views = 0;
        $unique_visitors = 0;
        
        # Fetch them
        while( ($info = sqlite_fetch_array( $result ) ) ) {
            # Get the page, views, IPs, and referrers
            $page = $info['page'];
            $views = $info['views'];
            $ips = $info['ip'];
            $referrers = $info['referrer'];
            
            # Print out a list element with the $page/$views information
            if( $views == 1 )
                echo "t<li>ntt<p>$page was viewed $views time:</p>n";
            else
                echo "t<li>ntt<p>$page was viewed $views times:</p>n";
            
            # Update the number of page views
            $page_views += $views;
            
            # Parse the data of IPs and Referrers using process.php's code
            preg_match_all( '%(d+)((.*?))%', $ips, $matches );
            
            # Find the size of the data
            $size = count( $matches[1] );
            
            # Create a sub list
            echo "tt<ul>n";
            
            # Loop through all the IPs
            for( $i = 0; $i < $size; $i++ ) {
                # Find the number of visits
                $num = $matches[1][$i];

                # Find the IP address
                $ip = $matches[2][$i];
                
                # Print the info in a list element
                if( $num == 1 )
                    echo "ttt<li>$num time by $ip</li>n";
                else
                    echo "ttt<li>$num times by $ip</li>n";
                
                # Update the number of unique visitors
                $unique_visitors++;
            }
            
            # Repeat the whole process for referrers
            preg_match_all( '%(d+)((.*?))%', $referrers, $matches );
            $size = count( $matches[1] );
            
            # Loop through each one
            for( $i = 0; $i < $size; $i++ ) {
                $num = $matches[1][$i];
                $referrer = $matches[2][$i];
                
                # Print out the info
                if( $num == 1 )
                    echo "ttt<li>$num referral by $referrer</li>n";
                else
                    echo "ttt<li>$num referrals by $referrer</li>n";
            }
            
            # End the sub-list
            echo "tt</ul>n";
            
            # End the list element
            echo "t</li>n";
        }
        
        echo "t<li>Total unique visitors: $unique_visitors</li>n";
        echo "t<li>Total page views: $page_views</li>n";
    }
    
    # End the unordered list
    echo "</ul>n";
    
    # Close the database
    sqlite_close($handle);
?>

</body>
</html>

它似乎令人生畏,但它是process.php非常相似。它解析頁面視圖,IP地址,并從數據庫引用。然后,它繼續以無序列表格式輸出它們。

將文章分享到..
在教室伦流澡到高潮H强圩电影 | 国产精品无码永久免费888| 无码中文人妻在线三区| 精人妻无码一区二区三区| 最新国产精品拍自在线播放| 日本适合十八岁以上的护肤品男 | 人人玩人人添人人澡东莞| 国产精品久久久久AV| 亚洲色偷偷偷综合网 | 蜜臀AV一区二区三区四区| 扒开腿挺进湿润的花苞| 无码少妇精品一区二区免费动态| 精品伊人久久大线蕉色首页| ALEXANDERWANG妈妈| 天堂BT种子资源在线WWW| 精品人妻无码一区二区色欲产成人 | 国产精品久久这里只有精品| 亚洲色成人www在线观看| 欧美日韩国产精品| 国产精品久久久久蜜芽| 影音先锋亚洲AV少妇熟女| 日本精产国品一二三产品| 国产亚洲欧美精品久久久| 久久人人爽人人爽人人片AV高请| .一区二区三区在线 | 欧洲| 日日碰日日摸夜夜爽无码| 哈昂~哈昂够了太多了男男| 中文字幕亚洲情99在线| 天堂SV在线最新版在线| 久久九九精品国产综合喷水| 别揉我奶头~嗯~啊~视频| 亚洲AV无码一区东京热不卡| 女人来高潮水多视频| 国产精品久久久久精品A级| 尤物娇妻被NP高H| 少妇人妻精品一区二区| 久久久久久国产精品MV| 成熟丰满熟妇偷拍XXXXX| 亚洲精品无码专区| 日本WWW一道久久久免费| 护士奶头又白又大又好摸| www啪啪小白浆内射无码| 性色AV无码一区二区三区人妻| 免费看B站直播APP下载| 国产精品毛片A∨一区二区三区| 在线精品国产成人综合| 婷婷久久综合九色综合 | 国产男男Gay视频在线看| 中文字幕人妻色偷偷久久| 玩丰满少妇ⅩXX性人妖| 美女裸体无遮挡永久免费观看网站| 公共厕所POOPING| 又色又爽的无遮挡免费网址| 他的舌头探入蜜源毛毛虫说说| 久久久久人妻一区精品色| 丰满爆乳一区二区三区| 一本大道香蕉在线资源| 天美传媒MV免费观看| 蜜桃av噜噜噜一区二区三区| 国产精品无码翘臀在线看| 337P日本欧洲亚洲大胆| 亚洲 欧美 叧类人妖| 欧美最猛黑人AAAAAXXX片| 精品国产午夜肉伦伦影院| 成人免费无码不卡毛片| 野花日本中文版免费观看| 熟交XXXXⅩ欧美老妇妇牲| 老熟女高潮一区二区三区| 国产激情无码一区二区APP| 91人妻人人澡人人爽人人精品| 亚洲AV成本人无码网站| 人人爽人人模人人人爽人人爱| 久久99精品久久久久久噜噜 | 50岁丰满女人裸体毛茸茸| 亚洲AV成人无码影视网| 日本护士毛茸茸XX| 久久天天躁狠狠躁夜夜AVAPP| 国产成人午夜精品影院| 999WWW成人免费视频| 亚洲VA无码手机在线电影| 日本午夜精品一区二区三区电影| 久久久久亚洲AV无码专区网站| 国产精品成熟老妇女| A级黑粗大硬长爽 猛视频,| 亚洲区激情区无码区| 天天澡夜夜澡狠狠久久| 欧美XXXXX高潮喷水| 精品久久久久久狼人社区| 国产YEEZY451| AV影音先锋天堂网| 亚洲视频在线观看| 无码专区AAAAAA免费视频| 欧美亚洲另类 丝袜综合网| 久久精品麻豆日日躁夜夜躁| 国产精品久线在线观看| 把插八插露脸对白内射| 又大又大粗又长又硬又爽| 亚洲AV婷婷五月产AV中文| 色视频综合无码一区二区三区| 免费观看高清大片的播放器| 精产国品一二三产品99| 国产JJIZZ女人多水| OM老熟女DHXⅩXXX69| 一本久道中文无码字幕AV| 亚洲AV无码1区2区久久| 少妇高潮流白浆在线观看| 欧美极品少妇XXXXⅩ喷水| 久久久久久精品人妻免费网站| 国产品无码一区二区三区在线| 成人AV在线播放| 51精产国品一二三产区区| 亚洲色欲久久久久综合网| 小宝贝下面的小嘴流水了| 色五月五月丁香亚洲综合网| 欧美粗大猛烈老熟妇| 久久夜色精品国产噜噜| 黑人大雞巴XXOO视频| 国产福利精品一区二区| 成年女人天堂香蕉网| 99精品国产一区二区三区2| 野花香视频免费观看| 亚洲成成熟女人专区| 无码熟妇人妻AV影片在线| 日韩AV无码中文无码不卡电影| 女人高潮喷水毛片免费 | 含紧一点H边做边走动| 国产成人剧情AV麻豆映画| 成年AV免费网址大全超清| 99热成人精品热久久6网站| 欲求不满邻居的爆乳在线播放| 亚洲精品无码AV专区最新| 新妺妺窝人体色7777太粗| 天堂M和天堂2M区别| 三级无码在钱AV无码在钱| 欧美性色欧美A在线播放| 免费无码黄网站在线观看| 久久人与动人物A级毛片| 精品毛片高清一区二区三区| 国产日韩综合一区二区性色AV| 高清国产亚洲精品自在久久 | 樱桃空空人妻无码内射| 亚洲人成人网站色WWW| 亚洲AV永久纯肉无码精品wwt| 午夜不卡久久精品无码免费| 天天躁日日躁狠狠躁| 少妇被粗大的猛烈的进出69影院 | 老头发狂的吸住她的乳尖| 久久精品饰品有限公司网站| 寂寞夜晚看的MV字幕高清网站| 国产一区二三区好的精华液| 国产精品美女久久久久网站浪潮 | 欧美性猛交XXXXXⅩXX| 哦┅┅快┅┅用力啊┅┅动态图 | 成年美女黄网站色大片免费看| 性欧美乱妇COME| 亚洲综合色婷婷七月丁香| 亚洲日本乱码在线观看| 亚洲国产综合无码一区| 亚洲成A人一区二区三区| 亚洲AV无码专区里番在线观看| 亚洲AV高潮黄色毛片| 性FREE毛茸茸VIDEOS| 性XXXXX欧美极品少妇| 午夜理论片福利在线观看| 午夜精品久久久久久99热| 午夜精品久久久久成人| 西西大胆无码视频免费| 小妖精好爽H快穿共妻| 性色AV.网站免费| 亚洲AV蜜桃少妇秘 大胸| 亚洲AV无码天堂一区二区三区| 亚洲AV成人一区二区三区天堂| 亚洲AV成人无码网站在线| 亚洲AV无码乱码精品国产按摩| 亚洲AV无码乱码国产精品| 亚洲插肏熟女人妇的屄网址| 国产精品视频YJIZZ| 国产精品美女一区二区三区| 国产精品无码久久久久久久久久| 国产品无码一区二区三区在线| 国产婷婷内射精品1区| 国模无码视频一区| 激情综合一区二区三区| 九九99久久精品国产| 久久久精品无码中文天美 | 无人区乱码一区二区三区| 香蕉久久人人97超碰CAOPR| 亚洲AV无码一区二区三区在线播| 亚洲AV永久无码精品主页丝瓜| 亚洲精品高清国产一线久久| 亚洲午夜久久久影院伊人| 永久免费AV无码网站在线| 337P人体粉嫩胞高清大图AV| EEUSS影院在线观看| 波多野结衣AV黑人在线播放| 黑人人妻AV一区二区三| 一个添下面两个吃奶把腿扒开| 欧美成人综合久久精品| AV无码爆乳护士在线播放| 欧美男男作爱GAYWWW|