畫江湖之面試篇 [第二篇] tip:學習是一個過程,不能急躁

Krisji發表於2019-03-21

第一題:防止盜鏈

這道題呢?主要考察的是安全防護

1.伺服器上防止
Apache 和 nginx 做 rewrite 基於源來做判斷阻止盜鏈
2.程式碼防止
$_SERVER[HTTP_REFERER]

第二題:用 PHP 寫出一個安全的使用者登入系統需要注意哪些方面

這道題呢?主要考察的是安全防護

1.伺服器
https://www.baidu.com 443 ssl 安全套接字層 伺服器證照 
2.使用者註冊
註冊驗證儘量交給 php,而不交給 js
3.使用者登入
驗證碼(圖片+語音)
4.以 post 提交給後端 php 程式

第三題:使用過哪些 PHP 框架。試描述其優劣點

這道題呢?主要考察的是你用過的框架的理解把

1)thinkphp  國內使用比較多 文件社群豐富
2)ci  比較輕量 使用便捷
3)yii 
4)laravel 全球使用率極高 但是中文文件比較少 不過有我們laravel china 社群@summer 站長 還是不錯的 狠先進的php7 設計模式

第四題:輸出為 Mozilla/4.0(compatible;MSIE5.01;Window NT 5.0)時,可能的輸出語句 是:

這道題呢?考的是基礎把 B

A. $_SERVER['HTTP_USER_AGENT_TYPE'];
B. $_SERVER['HTTP_USER_AGENT'];
C. $_SERVER['USER_AGENT']; 
D. $_SERVER['AGENT'];

第五題:執行下面的程式碼後,

<?php
echo function_exists('print');
?>

這道題呢?主要看基礎 Echo print array eval list 語言結構 記住 **

echo false 是null echo true 是1

第六題:下面程式碼的輸出正確的是:

<?php
$a = array(1=>5,5=>8,22,2=>'8',81); echo $a[7];
echo $a[6];
echo $a[3];

這道題呢?主要看對陣列的理解 A. 空 2281 B.空 8122 C.8122 空 D.空空空

答案是C php 陣列中 如果有一個人下標沒標註 那麼就是這個陣列中最大的下標+1

第七題:SESSION 與 COOKIE 的區別是什麼,請從協議,產生的原因與作用說明:

這道題呢?主要考察的是會話的理解

1) http 無狀態協議,不能區分使用者是否是從同一個網站上來的,同一個使用者請求不同的頁
面不能看做是同一個使用者
2) SESSION 儲存在伺服器端,COOKIE 儲存在客戶端,SESSION 依賴 COOKIE 進行傳 sessionId
輸,如果 COOKIE 被禁用了,SESSION 將不能繼續使用

第八題:Linux 下建立壓縮包,解壓縮包的命令?

這道題呢?主要考察的是linux的基礎操作

1) tar czf test.tar.gz test.php
2) tar xzf test.tar.gz

第九題:寫出匹配 URL 的正規表示式?

這道題呢?主要考察的是正則的掌握

‘/^(https?|ftps?):\/\/(www)\.([^\.\/]+)\.(com|cn|org)(\/[\w-\.\/\?\%\&\=]*)?/i’

第十題:在資料庫 test 中的一個表 student,欄位是 name,class,score。分別代表姓名、所 在班級,分數

這道題呢?主要考察的是對sql 的掌握

1) 算出每個班級中的學生,按照成績降序排序;
select name,class,score from student order by class,score desc;

2) 查出每個班的及格人數和不及格人數,格式為:class、及格人數、不及格人數;

SELECT class,
SUM(CASE WHEN score>=60 THEN 1 ELSE 0 END),
SUM(CASE WHEN score<60 THEN 1 ELSE 0 END)
FROM tb1 GROUP BY class
這邊主要先分組 在聚合在加入判斷條件

3) 用 PHP 寫入連線資料庫("localhost","msuser","mspass")、執行以上 SQL、顯示結果、 判斷錯誤、關閉資料庫的過程
$conn=mysql_connect(‘localhost’,'msuser ’,’mspass′);//連結資料庫
Mysql_select_db(‘test’);
$sql=" SELECT class,
SUM(CASE WHEN score>=60 THEN 1 ELSE 0 END), SUM(CASE WHEN score<60 THEN 1 ELSE 0 END)
FROM tb1 GROUP BY class";
if($result=Mysql_query($sql)){
     while($row=mysql_fetch_assoc($result)){
     print_r($row);
} }
Mysql_close($conn);
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章