本文目錄一覽:
這段PHP代碼是什麼意思呢?
?php
//判斷擴展 mysql 不存在 而 擴展 mysqli 存在的話
if(!function_exists(‘mysql_query’) AND function_exists(‘mysqli_query’))
{
//定義函數 mysql_query,使用 mysqli_query 作替代
function mysql_query($query, $link)
{
return mysqli_query($link, $query);
}
}
這段代碼的意思是,當 mysql 擴展不存在而且 mysqli 擴展存在 的時候, 仍然希望使用 mysql_query 這個函數來代替 mysqli_query 來保持代碼的兼容。
But:
現在來說的話,還是使用 PDO 來操作資料庫吧。
php是什麼意思
PHP(PHP: Hypertext Preprocessor)即「超文本預處理器」,是在伺服器端執行的腳本語言,尤其適用於Web開發並可嵌入HTML中。
PHP語法學習了C語言,吸納Java和Perl多個語言的特色發展出自己的特色語法,並根據它們的長項持續改進提升自己,例如java的面向對象編程,該語言當初創建的主要目標是讓開發人員快速編寫出優質的web網站。 PHP同時支持面向對象和面向過程的開發,使用上非常靈活。
PHP特點:
PHP是一個受眾大並且擁有眾多開發者的開源軟體項目,Linux + Nginx + Mysql + PHP是它的經典安裝部署方式,相關的軟體全部都是開源免費的,所以使用PHP可以節約大量的正版授權費用。
不過PHP作為一個開源軟體,它缺乏大型科技公司的支持背景,網路上對它的唱衰也是經久不衰,不過它的持續迭代和性能持續增強的現實卻是鼓舞人心的,PHP社區用實際行動給予各種質疑強有力的回擊。
這段php代碼是什麼意思?
它是一個發送郵件網頁的後端,它獲取用戶輸入的電子郵箱地址然後發送信息。
這段php是什麼意思?能否詳細解釋每一句。
這個沒辦法解釋,這裡面 除了前面幾行,其他的判斷跟執行都是調用的方法,這個方法是別人寫的,沒辦法知道返回的是什麼
if ( ! defined( ‘ABSPATH’ ) ) {
exit;
}
上面這個的意思是, 如果沒有定義 『ABSPATH』這個常量,則程序不再往下執行,
get_header(); ?這個看字面意思是獲取網頁的頭部的部分
div id=”primary” ?php generate_do_element_classes( ‘content’ ); ?這個看著是要生成一個div 的class屬性,
但是這些都只能是猜測,如果要知道其他的,得有方法函數的代碼
這段php代碼的意思?
整個代碼是用來過濾惡意注入的。
if(isset($_REQUEST[‘GLOBALS’]) || isset($_FILES[‘GLOBALS’])) exit(‘Request Denied’);
這一行是發現有惡意的全局變數提交上來就攔截。
@set_magic_quotes_runtime(0);
$MQG = get_magic_quotes_gpc();
這裡是讀取系統環境變數
foreach(array(‘_POST’, ‘_GET’, ‘_COOKIE’) as $__R) {
這個是新建一個數組,三個值就在上面了。
if(isset($$__R)) {
foreach($$__R as $__k = $__v) {
if(isset($$__k) $$__k == $__v) unset($$__k);
}
估計難的就是這裡吧。。$__R 在第一次循環時,值是 _POST 前面再加一個 $ 即 $_POST
如果 $_POST 已經賦值,這個有點多餘,因為這是內置變數,一定存在的。
之後把 $$__R 分別看成 $_POST $_GET 啥的即可,拆分 $_POST 每個值到 $__V 里,索引存到 $__K 里。如果有 $_POST[‘a’] = ‘b’; 那 $__K 就是 a ,$__V 就是 b。下面是同樣的意思。
如果 $($__K) 即 $a 已經存在,並且這個變數的值和現在 POST 過來的值相同,就把原來的變數註銷掉。只保留 POST 過來的那個變數。
也就是說,如果代碼原來有 $a=’b’ 現在又提交了一個 $_POST[‘a’]=’b’; 現在就刪掉原來的 $a 保留 POST 的那個。這是用於別人已經成功注入的情況下,可以把他們已經注入的變數幹掉。
if(!$MQG)$$__R = daddslashes($$__R);
上面這個是檢查環境變數,魔法引號是否開啟,如果沒有開啟的話,過濾整個 $_POST(GET COOKIE)
$$__R = strip_sql($$__R);
$$__R = dsafe($$__R);
上面這兩個是自定義過濾,看樣子是過濾 SQL 注入啥的。原理同上。
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245340.html