第九章解答
- 1. 第 9 章解答 PHP 6 與 MySQL 基礎學習教室
1.請說明 include( )與 require( )函數有何不同
解答:
include( )會產生警告後忽略錯誤繼續執行網頁其他語法,可是 require( ) 遇
到錯誤時會產生錯誤而停止執行 PHP 程式,所以後續的網頁資料將不會顯示。
2.請設計一個網頁,等待五秒後會轉移到老師指定的網站或 Google 網站
解答:
<? ob_start( ) ;?>
<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>網頁 10 秒後將轉移至 google</title></head>
<body><?
header('refresh:5; url="http://www.google.com"');
echo "5 秒後連結 google";
?></body></html>
3.請設計一個系統:
使用者必須透過表單登入,若帳號為 php,密碼為 mysql,就會轉移到
success.php,若失敗則轉移到 failed.php,若直接開啟 success.php,將直接跳到
表單網頁。
解答:
表單網頁:
<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>帳號密碼的輸入</title></head>
<body>
<form name="form1" method="post" action="loginpass.php">
請輸入帳號密碼:<br>
帳號:
<input type="text" name="username" maxlength="6" size="10"><br>
密碼:
<input type="password" name="passwd" maxlength="6" size="10"><br>
<input type="submit"><input type="reset"></form></body></html>
第1頁
- 2. 第 9 章解答 PHP 6 與 MySQL 基礎學習教室
接收資料及判斷:
<? ob_start() ;?>
<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>驗證帳號與密碼</title></head><body>
<?
if (($_POST['username']=='php') and ($_POST['passwd']=='mysql'))
header("Location: success.php");
else
header("Location: failed.php");
?></body></html>
4.請設計一個系統:
使用者必須透過表單登入,產生 session 後,才能看到圖片。
若直接開啟載入圖片的 PHP 網頁而偵測不到 session,將直接跳到表單網頁。
解答:
表單網頁:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>必須登入</title></head>
<body>
<form name="form1" method="post" action="sessionimg1.php">
登入帳號:<input name="loginname" type="text"><br>
登入密碼:<input name="loginpwd" type="password"><br>
<input type="submit" value="送出"><input type="reset" value="重設">
</form></body></html>
產生 session:
<?ob_start() ;
session_start();?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
第2頁
- 3. 第 9 章解答 PHP 6 與 MySQL 基礎學習教室
<title>sessionimg1</title></head><body>
<?
if (isset($_POST['loginname']) and isset($_POST['loginpwd']))
{
$_SESSION['loginname']=$_POST['loginname'];
$_SESSION['loginpwd']=$_POST['loginpwd'];
header("Location: sessionimg2.php");
}
else
header("Location: sessionimg.htm");
?>
</body></html>
判斷與閱覽圖片:
<?ob_start() ;
session_start();?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>sessionimg2</title></head><body>
<?
if (!isset($_SESSION['loginname']))
{
$_SESSION['loginname']=$_POST['loginname'];
$_SESSION['loginpwd']=$_POST['loginpwd'];
header("Location: sessionimg.htm");
}
?>
<img src="test.jpg" alt="lession 9 ex4" title="lession 9 ex4" />
</body></html>
第3頁
- 4. 第 9 章解答 PHP 6 與 MySQL 基礎學習教室
5.請設計一個系統:
使用者必須透過表單登入,產生 session 後,才能看到 PDF 文件。
若直接開啟載入 PDF 文件的 PHP 網頁而偵測不到 session,將直接跳到表單網
頁。
解答:
表單網頁:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>必須登入</title></head>
<body>
<form name="form1" method="post" action="sessionpdf1.php">
登入帳號:<input name="loginname" type="text"><br>
登入密碼:<input name="loginpwd" type="password"><br>
<input type="submit" value="送出"><input type="reset" value="重設">
</form></body></html>
產生 session:
<?ob_start() ;
session_start();?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>sessionpdf1</title></head><body>
<?
if (isset($_POST['loginname']) and isset($_POST['loginpwd']))
{
$_SESSION['loginname']=$_POST['loginname'];
$_SESSION['loginpwd']=$_POST['loginpwd'];
header("Location: sessionpdf2.php");
}
else
header("Location: sessionpdf.htm");
?>
</body></html>
第4頁
- 5. 第 9 章解答 PHP 6 與 MySQL 基礎學習教室
判斷與連結 PDF:
<?ob_start() ;
session_start();?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>sessionpdf2</title></head><body>
<?
if (!isset($_SESSION['loginname']))
{
$_SESSION['loginname']=$_POST['loginname'];
$_SESSION['loginpwd']=$_POST['loginpwd'];
header("Location: sessionpdf.htm");
}
?>
<a href="lession9.pdf">Download PDF</a>
</body></html>
6. 被PHP 引用的檔案副檔名可命名為其他副檔名(例如inc),但會有什麼風險
呢?
解答:
被PHP引用的檔案副檔名不見得是php,您也可以命名為其他副檔名,例
如.inc,但是如果這些副檔名若未設定可讓Apache Server解析,使用者可以很
輕易地察看檔案內容。
7.請在網頁上加入以下的 meta 標籤:
希望網頁在 2011 年 3 月 12 日從搜尋引擎所建立的索引資料內移除
解答:
<meta name="robots" content="unavailable_after: 12-march-2011 23:59:59 cst">
第5頁
- 6. 第 9 章解答 PHP 6 與 MySQL 基礎學習教室
8.請在網頁上加入以下的 meta 標籤:
不允許 Google 搜索引擎把網頁收錄
解答:
<meta name=" Googlebot" content="noindex, nofollow">
9.請設計以下的 robot.txt 檔:
拒絕所有搜尋引擎抓取 paper 目錄內所有網頁及目錄
解答:
User-Agent: *
Disallow: /paper/
10.請設計以下的 robot.txt 檔:
拒絕所有搜尋引擎抓取所有 doc 及 xls 文件
解答:
User-Agent: *
Disallow:/*.doc$
Disallow:/*.xls$
第6頁