PHP获取HTML文件名表单数据等

只谈情不闲聊 提交于 2019-12-10 14:53:02

1、PHP获取表单各项数据 --- 与表单提交的方式有关
    GET方式,格式:$_GET[“formelement”]
    POST方式,格式:$_POST[“formelement”]
    REQUEST方式,格式:$_REQUEST[“formelement”]

2、表单中上传文件的数据
    数组:$_FILES["file_name"] //其中file_name表示表单file元素对应的名称
    包含error,name,type,size,tmp_name等数据项

3、表单本身所在文件(HTML,PHP等)的数据
    $_SERVER["HTTP_REFERER"]表示请求的文件信息,是URL地址,如http://localhost/login.html
    可以采用如下方式处理:
    $uri=$_SERVER['HTTP_REFERER']; //无法获得默认页面index.html等形式的文件名称
    $arr=explode('/',$uri);//把字符串分割为数组
    也可以将URL地址当做文件路径,使用basename($_SERVER["HTTP_REFERER"])来获得请求文件名

4、表单处理文件(本文件)的信息
    __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语法分析器对单引号串的处理方式比较单纯,而双引号的处理由于串内部也需要解析,因此更复杂,所以处理速度略慢。

示例:

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>

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

formdeal.php

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

<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属性项来获得,对此我表示知识有限无法解答,抱歉…

本文仅是学习笔记,用于自己复习参看,谨记之。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!