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
--------------------------------------------------------------------------------------------------
开心一刻
第一次杀鱼
姐姐第一次杀鱼,犹豫了半天也不敢下手。 过了一会,再去看时,只见她两手握着鱼,把鱼按在水底,我问她要干嘛? 她说:“等把它淹死了再杀……淹死了再杀!”
--------------------------------------------------------------------------------------------------
formdeal.php
--------------------------------------------------------------------------------------------------
处理页面! "; echo ""; $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 "
"; ?> "; 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"] . ""; else{ echo "Upload: " . $_FILES["myfile"]["name"] . ""; echo "Type: " . $_FILES["myfile"]["type"] . ""; echo "Size: " . ($_FILES["myfile"]["size"] / 1024) . " Kb"; echo "Temp-file: " . $_FILES["myfile"]["tmp_name"] . ""; 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 ""; ?> '; $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 ''; echo "URL路径是:".$urlpath; echo ''; echo "提交表单的页面是:".basename($subpage); echo ''; echo "处理表单的页面是:".$dealpage; echo ''; echo ""; ?>
--------------------------------------------------------------------------------------------------
对于第三种处理页面文件部分,有网上朋友说采用$_SERVER["HTTP_REFERER"]方式获取不太可靠,提出在表单中加入Hidden属性项来获得,对此我表示知识有限无法解答,抱歉…
本文仅是学习笔记,用于自己复习参看,谨记之。