ホームページ >バックエンド開発 >PHPチュートリアル >PHP 擬似静的テクノロジの原理と画期的な原理の実装の紹介_PHP チュートリアル

PHP 擬似静的テクノロジの原理と画期的な原理の実装の紹介_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:00:53898ブラウズ

まず実装方法について話しましょう:
inj.php:

コードをコピーします コードは次のとおりです:

set_time_limit(10); "id"];
$ id=str_replace(" ","%20",$id);
$url="http:/ /www.xxx.com/index.php/library/more/id/$id.html";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,"$url");
curl_setopt($ch ,CURLOPT_RETURTRANSFER,1);/ /有効にすると、curl_init() で取得した情報が直接出力されるのではなく、ファイル ストリームの形式で返されます
curl_setopt($ch,CURLOPT_HEADER,0); //有効にすると、ヘッダー ファイルからの情報はデータ ストリームとして出力されます
$output=curl_close($ch);
?>
を使用してサーバーを構築します。上記の inj.php を wamp/www/ に置き、Havij で http://127.0.0.1/inj.php?id=1 を実行します
================== ==============

PHPの擬似静的実装方法1(Apacheサーバーの機能を利用)
1. Apacheがmod_rewriteをサポートしているか確認する
2. Apacheに.htaccessをサポートさせる
3. .htaccess ファイルを作成します
4. ルール:
RewriteRule ([a-zA -Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id で RewriteEngine =$2 ([a-zA-Z]{1,})-([ 0-9]{1,}) は URL の内容です
$1 は ([a-zA-Z]{1,}) です) 一致
$2 は、[0-9]{1,} と一致するものです
例: www.xx.com/page-18.html
実際の URL は次のとおりです:
action = page
id = 18
= ======================= ======

PHP擬似静的実装方法その2(コーディング実装)

$Php2Html_FileUrl = $_SERVER[ "request_uri"]
エコー$ php2html_fileurl ("?","",str_replace("/","",strrchr(strrchr($Php2Html_FileUrl,"/") ,"?")) ))
/*
内部の strrchr が出てきます: /test.php ?id|1@action|2
外側の strrchr が表示されます: id|1@action|2 内側の str_replace が表示されます: / 記号を削除します。この例では、外側 str_replace:Put? はありません。この例では
*/ がありませんので、数字を削除してください
$Php2Html_UrlQueryStrList =explode("@",$Php2Html_UrlString);
/*str を @: id|1 と action|2*/ で割った配列に変換します。 ($Php2Html_UrlQueryStrList として $Php2Html_UrlQueryStr)
{
$Php2Html_TmpArray =explode("|",$Php2Html_UrlQueryStr); /* id => 1 および action => 2*/ $_GET[$Php2Html_TmpAr]レイ[0]] = $ Php2Html_TmpArray[1]; }
=============================

PHP 擬似静的実装方法 3 (コーディング実装)

例: localhost/php100/test.php/1/2



コードをコピー

コードは次のとおりです。
echo $_SERVER["SCRIPT_NAME" "];
echo $filename;
if(strto lower($filename) == 'test.php'){
if(!empty($_GET[id])){
$id =intval($_GET[id]);
$action = intval($_GET[action]);
$nav=$_SERVER["REQUEST_URI"]; $script=$_SERVER["SRCIPT_NAME "];
//この文は URL の前の段落を削除する必要があります。 。すると「1/2」のようなものが残ります。 。
$nav=ereg_replace("$script","",urldecode($nav)); echo $nav; print_r($vars); =intval($vars[1]);
$action=intval($vars[2]);
}
echo $id.'&'.$action ======== ==================== PHP擬似静的実装方法4(エンコード実装)


コードをコピー

コードは以下の通りです:


関数 mod_rewrite( ){
グローバル $_GET;
$nav = $_SERVER["REQUEST_URI"];
$script_name = $_SERVER["SCRIPT_NAME"]
$nav=substr(ereg_replace("$script_name")," ,urldecode($ nav)),1);
$nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//削除末尾の htm または html
$vars=explode("/",$nav);
print_r($vars);
for($i=0;$i{
$_GET[ $vars[$i]] = $vars[$i+1]
}
return $_GET
}


===============; ===== =======

PHP擬似静的実装方法5(コーディング実装)
例:/1,100,8630.html
コードをコピー コードは以下の通りです:
if(preg_match(“// (d+),(d+),(d+).html/si”,$path_info,$arr_path)){
$gid =intval($arr_path[1]); value 1
$sid =intval($ arr_path[2]); //値 100 を取得します
$softid =intval($arr_path[3]) //値 8630 を取得します
}
else
echo "Path:Error !";


要約すると:
(1) 擬似静的技術は突破が容易であり、転送注入ページを自分で構築する必要があります。
(2) 擬似静的テクノロジーの原理は非常にシンプルで、index.php?id=1 の形式の元の URL を他の形式に置き換えることです。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/328045.html技術記事まず実装方法について説明します: inj.php: 次のようにコードをコピーします: ?php set_time_limit(10); $id=str_replace(" ","%20",$ id); $ id=str_replace("=","%3D",$id); $url="http://www...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。