PHP獲取HTML文件名錶單數據等

一、PHP獲取表單各項數據 --- 與表單提交的方式有關
    GET方式,格式:$_GET[「formelement」]
    POST方式,格式:$_POST[「formelement」]
    REQUEST方式,格式:$_REQUEST[「formelement」]php

二、表單中上傳文件的數據
    數組:$_FILES["file_name"] //其中file_name表示表單file元素對應的名稱
    包含error,name,type,size,tmp_name等數據項html

三、表單自己所在文件(HTML,PHP等)的數據
    $_SERVER["HTTP_REFERER"]表示請求的文件信息,是URL地址,如http://localhost/login.html
    能夠採用以下方式處理:
    $uri=$_SERVER['HTTP_REFERER']; //沒法得到默認頁面index.html等形式的文件名稱
    $arr=explode('/',$uri);//把字符串分割爲數組
    也能夠將URL地址當作文件路徑,使用basename($_SERVER["HTTP_REFERER"])來得到請求文件名數組

四、表單處理文件(本文件)的信息
    __FILE__得到文件的完整路徑;
    $_SERVER['REQUEST_URI']和$_SERVER['PHP_SELF']得到文件名;服務器

注:單引號串和雙引號串在PHP中的處理是不相同的。
雙引號串中的內容(如變量,特殊字符)能夠被解釋並且替換,而單引號串中的內容總被認爲是普通字符。
    $foo = 2;
    echo "foo is $foo"; // 打印結果: foo is 2
    echo 'foo is $foo'; // 打印結果: foo is $foo
    echo "foo is $foo\n"; // 打印結果: foo is 2 (同時換行)
    echo 'foo is $foo\n'; // 打印結果: foo is $foo\n
須要說明的是,在腳本中使用單引號串處理速度會更快,PHP語法分析器對單引號串的處理方式比較單純,而雙引號的處理因爲串內部也須要解析,所以更復雜,因此處理速度略慢。函數

示例:post

file1.html學習

--------------------------------------------------------------------------------------------------測試

<html><head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
</head> 
<body bgcolor=#FFFFFF> 
<div id="bigbox" align="center" class="top"> 
<br /><h2>開心一刻<h2><br /> 
<hr> 
    <b><h2 align="LEFT">第一次殺魚</h2></b> 
    <div id="content" align="left"> 
    姐姐第一次殺魚,猶豫了半天也不敢下手。 
    過了一會,再去看時,只見她兩手握着魚,把魚按在水底,我問她要幹嗎?<br /> 
    她說:「等把它淹死了再殺……淹死了再殺!」 
    <br /></div> 
<hr> 
    <form  id="usercomments" method="post" action="./formdeal.php" align="left"> 
    簡評:<input id="mycomment" name="mycomment" type="text" size=100 ></input><br> 
    文件:<input id="myfile" name="myfile" type="file"></input> 
    <input type="submit" id="submit" name="submit" value="提交" ></input> 
    </form> 
</div> 
</body> 
</html>

--------------------------------------------------------------------------------------------------ui

formdeal.phpurl

--------------------------------------------------------------------------------------------------

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>處理頁面!</title> 
</head> 
<body> 
<?php 
/* 
* 
* Created on 2014-04-11 
* 
* author:wenqing 
*/ 
?> 
<?php 
/******************** 
* 處理表單數據 
********************/ 
echo "<font size=5px>"; 
echo "<p>"; 
$comment=$_POST['mycomment']; //獲取表單數據

/** 
* empty()函數是用來測試變量是否已經配置: 
* 若變量不存在,則返回 TRUE; 
* 若變量存在且其值爲""、0、"0"、NULL、FALSE、array()以及無屬性對象,則返回 TURE;  
實例: 
$value="0"; 
if(empty($value)){ 
echo "我是空值!"; 
} 
**/ 
//if(empty($comment)){ 
if($comment==""){ 
    print("您沒有評論!"); 
}else{ 
print("您的評論是:".$comment); 
} 
echo "<br /></p>"; 
?>

<?php 
/******************** 
* 處理上傳文件 
********************/ 
echo "<p>"; 
if(empty($_FILES["myfile"])) 
    print("您沒有上傳文件!"); 
else if(($_FILES["myfile"]["type"] == "text/plain") 
        && ($_FILES["myfile"]["size"] < 20000)) 
{ 
  if ($_FILES["myfile"]["error"] > 0) 
    echo "Return Code: " . $_FILES["myfile"]["error"] . "<br />"; 
  else{ 
    echo "Upload: " . $_FILES["myfile"]["name"] . "<br />"; 
    echo "Type: " . $_FILES["myfile"]["type"] . "<br />"; 
    echo "Size: " . ($_FILES["myfile"]["size"] / 1024) . " Kb<br />"; 
    echo "Temp-file: " . $_FILES["myfile"]["tmp_name"] . "<br />"; 
    if(file_exists("upload/" . $_FILES["myfile"]["name"])) 
      echo $_FILES["myfile"]["name"] . " already exists. "; 
    else{ 
      move_uploaded_file($_FILES["myfile"]["tmp_name"], 
      "upload/" . $_FILES["myfile"]["name"]); 
      echo "Stored in: " . "upload/" . $_FILES["myfile"]["name"]; 
    } 
  } 
} 
echo "</p>"; 
?>

<?php 
/******************** 
* 處理頁面文件 
********************/ 
echo '<p>'; 
$servername=$_SERVER['SERVER_NAME']; 
$subpage=$_SERVER["HTTP_REFERER"]; 
// __FILE__ and $_SERVER['PHP_SELF'] achive same feature! 
$dealpage=$_SERVER["REQUEST_URI"]; 
$urlpath=substr($subpage,(7+strlen($servername))); 
echo "服務器名稱是:".$servername; 
echo '<br />'; 
echo "URL路徑是:".$urlpath; 
echo '<br />'; 
echo "提交表單的頁面是:".basename($subpage); 
echo '<br />'; 
echo "處理表單的頁面是:".$dealpage; 
echo '</p>'; 
echo "</font>"; 
?> 
</body>

--------------------------------------------------------------------------------------------------

對於第三種處理頁面文件部分,有網上朋友說採用$_SERVER["HTTP_REFERER"]方式獲取不太可靠,提出在表單中加入Hidden屬性項來得到,對此我表示知識有限沒法解答,抱歉…

本文僅是學習筆記,用於本身複習參看,謹記之。

相關文章
相關標籤/搜索