刷步php
1. php中如何實現防刷新機制
最常見的防刷新肯定是在處理表單的時候,防止重復提交。我們有很多種方式來處理:1、提交表單之後,進行跳轉,這是很常用的方式。如果你的表單是從index.php提交到post.php頁面處理的,那麼提交完之後可以跳轉再回到index.php頁面,這樣再刷新就不會重復提交了。如果你是提交給當前頁面處理,可以在提交之後再重新跳轉到當前頁面。2、使用驗證碼,也很常用。在提交表單數據之前先判斷驗證碼,由於每提交一次,驗證碼就會變,所以這樣是可以避免重復提交的。3、使用Ajax方式,毫無疑問可以避免刷新重復提交。以上討論的是針對表單提交的防刷新,那麼其他的防刷新呢?比如,我要統計一篇文章的點擊數,我希望當用戶刷新頁面的時候,不進行統計,該怎麼辦呢?在此,站長只提供一種不完美的解決方案:即在當前的會話中,不統計重復載入。請看下面的代碼:<?php session_start();if(!$_SESSION['sid']){ $_SESSION['sid']=session_id(); echo 『您在此次會話中第一次瀏覽該頁面,進行統計』;}else{echo 『您已經在此次會話中瀏覽過該頁面,不統計』; }?>當用戶在第一次會話中訪問頁面時,進行統計,並把當前的會話id存在session,如果用戶刷新或者從瀏覽器重新載入,由於在當前會話中已經訪問過了,所以不會再次統計。但是,如果當用戶關閉瀏覽器後再瀏覽,是會統計的。在此,站長也就文章統計是否有必要做得這么精確,說一些個人看法吧。用戶瀏覽你網站的文章有這么幾種方式:1、通過點擊站內鏈接2、直接輸入網址3、通過第三方的鏈接或者跳轉這三種都構成正常的訪問,是應該統計的。刷新,嚴格來說確實不應該算進統計中去,而且在多進程的瀏覽器中,用戶打開新窗口重復輸入網址也跟刷新差不多,而文章的真實訪問量和重復刷新量之間的差距肯定是非常大的,所以即便是將刷新的次數算進統計中去,也不會產生太大的影響。上面的代碼,實現了不完美的防刷新,但是卻多出了額外的判斷,而且使用session也是要消耗資源的。
2. html頁面按鈕,執行PHP文件,並2秒後刷新本頁一次.
用js里的ajex配合setTimeOut函數,可以實現定時刷新網頁的部分內容,也可以全部刷新
3. php長期定時刷新一個頁面
如果是Linux系統可以用Crontab,如果是window系統可用計劃任務.
看你的伺服器壓力大不大嘍,不大的話可以這么干。
還有一種就是JS方法
<script language="javaScript">
function myrefresh(){
window.location.reload();
}
setTimeout('myrefresh()',3000);
</script>
把頁面打開放那吧。
4. PHP頁面怎麼完成局部刷新
使用情況是:我點擊本頁面,要使本頁面的某塊局部刷新;本頁面通過這種方式包含局部頁面: <div id="allvideo"><?php require_once("./relation.php");?></div><script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function localRef(){
var url = "relation.php"; //局部包含的頁面var pars = "param=" + param + "&type=" + type + "&channelid=" + channelid + "&Page_Num=" + Page_Num + "&Country=" + Country + "&Order_By=" + Order_By; //要傳遞的參數
var myAjax = new Ajax.Updater(
'allvideo', //把取得的HTML結果更新到的層
url,
{
method : 'get',
parameters : pars,
evalScripts : true
}
);
5. 我想通過PHP非同步操作執行一些代碼應該怎麼做
好的程序應該盡可能少的去讀取資料庫,而不是像你說的還100毫秒讀取一次。這樣的需求本身就很有問題哦
6. php無法實現非同步刷新
第一步,引入jquery,各樣的版本都有,搜一下,下載下來<script type="text/javascript" src="images/jquery-1.4.4.min.js"></script> 第二步 局部非同步刷新的HTML添加ID,比如<div id="shuaxin"></div>//需要刷新的內容<a href="#" onclick="Refresh()">刷新</a>//點擊刷新第三步 設置路徑,參數等<script>function Refresh(){$.ajax({ async: false, url: "a.php",//PHP文件的地址 type: "post",//get和post發送方式 data: { id:"1",cid:"2"},//參數,沒有參數可以不要,現在是這樣(a.php?a=1$cid=2) success: function (data) { $("#shuaxin").html(data);//data是返回的數據,根據ID添加到shuaxin的div里 } }); } </script>第四步,這是PHP返回數據 a.php <?php$id=$_REQUEST['id'];//接收id參數,沒有參數就不用寫$cid=$_REQUEST['cid'];//接收cid參數,沒有參數就不用寫 //做一些你想做的操作, echo ?? //返回給html?> 大概就是這個樣子,沒測試。
7. php 延遲非同步執行執行怎麼做
用js,給b方法加個setTimeout()定時器,設定20秒後執行b方法即可,其他方法正常運行。
setTimeout() :在指定的毫秒數後調用函數或計算表達式。
8. php如何實現腳本非同步執行的方法具體分析
php語言得用fsockopen()函數,實現腳本非同步運行,代碼如下
非同步請求函數(用debug參數若為true則為用為調試,開啟調試可以看到非同步的執行情況,但是失去非同步的效果)
main.php
<?php
/**
*非同步請求
*@rightCopyright(c)HangzhouTechnologyCo.,Ltd.(https://www.5wx.org)
*@author$Author:juny$
*@version$Id:main.php3322018-09-2309:15:08Zjuny$
*/
functionrequest_by_fsockopen($url,$post_data=array(),$debug=false){
$url_array=parse_url($url);
$hostname=$url_array['host'];
$port=isset($url_array['port'])?$url_array['port']:80;
@$requestPath=$url_array['path']."?".$url_array['query'];
$fp=fsockopen($hostname,$port,$errno,$errstr,10);
if(!$fp){
echo"$errstr($errno)";
returnfalse;
}
$method="GET";
if(!empty($post_data)){
$method="POST";
}
$header="$method$requestPathHTTP/1.1 ";
$header.="Host:$hostname ";
if(!empty($post_data)){
$_post=strval(NULL);
foreach($post_dataas$k=>$v){
$_post[]=$k."=".urlencode($v);//必須做url轉碼以防模擬post提交的數據中有&符而導致post參數鍵值對紊亂
}
$_post=implode('&',$_post);
$header.="Content-Type:application/x-www-form-urlencoded ";//POST數據
$header.="Content-Length:".strlen($_post)." ";//POST數據的長度
$header.="Connection:Close ";//長連接關閉
$header.=$_post;//傳遞POST數據
}else{
$header.="Connection:Close ";//長連接關閉
}
fwrite($fp,$header);
//-----------------調試代碼區間-----------------
//注如果開啟下面的注釋,非同步將不生效可是方便調試
if($debug){
$html='';
while(!feof($fp)){
$html.=fgets($fp);
}
echo$html;
}
//-----------------調試代碼區間-----------------
fclose($fp);
}
$data=array('name'=>'guoyu','pwd'=>'123456');
$url='http://localhost/test/other.php';
request_by_fsockopen($url,$data,true);//
other.php
<?php
header("content-type:text/html;charset=utf-8");
//error_reporting(0);
//ini_set('html_errors',false);
//ini_set('display_errors',false);
$name=isset($_POST['name'])?$_POST['name']:'';
$pwd=isset($_POST['pwd'])?$_POST['pwd']:'';
echo$name.$pwd;
echo'successok';
die;
?>
使用實例:
[運行的main.php主腳本文件]$data=array('name'=>'guoyu','pwd'=>'123456');
$url='http://localhost/test/other.php';
request_by_fsockopen($url,$data,true);//把應用B的用戶表非同步-同步數據
[導步執行文件other.php]
在other.php中便可以用$_POST接收main.php提交過來的參數,從而進行下一步操作
以上就是php如何實現腳本非同步執行的方法具體分析的詳細內容.
9. 寫一個php不斷訪問刷新一個網頁
你要做甚?如果是提高訪問量,勸你省省了。
10. php怎麼才能實時輸出所操作的動作到屏幕上來
使用websocket建立連接 ,伺服器實時給客戶端推送消息,客戶端收到消息即可做出響應