获取输入变量有以下几种方式:
1、$_GET/$_POST/$_SERVER(不安全)
2、ThinkPHP框架提供了I函数(Input单词的大写首字母I),方便地实现输入变量读取,并自动进行数据安全过滤;
3、Input函数:I(''变量类型.变量名',['默认值'],['过滤方法'],['额外数据源']);
实例分析:
使用I函数将server变量的数据读取出来。
~~~
namespace Home\Controller;
use Think\Controller;
class UserController extends Controller{
public function index(){
//$this->redirect('..\index',2,'redirect纯跳转');
//$this->success('成功跳转!!',U('Index/index'),2);
//$this->error('跳转失败!!',U('Index/index'),3);
//$this->ajaxReturn(getTestData(),'json');
$server=I('server.');
dump($server);
}
public function edit()
{
echo "User.edit.";
}
public function login(){
echo "User.login.";
}
}
?>
~~~
页面显示:
~~~
array(38) {
["REDIRECT_STATUS"] => string(3) "200"
["HTTP_HOST"] => string(11) "studytp.com"
["HTTP_CONNECTION"] => string(10) "keep-alive"
["HTTP_ACCEPT"] => string(74) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
["HTTP_USER_AGENT"] => string(124) "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 2345chrome v3.0.0.9739"
["HTTP_REFERER"] => string(19) "http://studytp.com/"
["HTTP_ACCEPT_ENCODING"] => string(19) "gzip, deflate, sdch"
["HTTP_ACCEPT_LANGUAGE"] => string(14) "zh-CN,zh;q=0.8"
["HTTP_COOKIE"] => string(76) "PHPSESSID=jq9m05npgr6uo030m4dgb4v0k3; pgv_pvi=8167662592; pgv_si=s1030067200"
["PATH"] => string(173) "C:\app\Union_pc\product\11.2.0\dbhome_1\bin;C:\Documents and Settings\All Users\Application Data\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem"
["SystemRoot"] => string(10) "C:\WINDOWS"
["COMSPEC"] => string(27) "C:\WINDOWS\system32\cmd.exe"
["PATHEXT"] => string(48) ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH"
["WINDIR"] => string(10) "C:\WINDOWS"
["SERVER_SIGNATURE"] => string(0) ""
["SERVER_SOFTWARE"] => string(48) "Apache/2.4.10 (Win32) OpenSSL/0.9.8zb PHP/5.3.29"
["SERVER_NAME"] => string(11) "studytp.com"
["SERVER_ADDR"] => string(9) "127.0.0.1"
["SERVER_PORT"] => string(2) "80"
["REMOTE_ADDR"] => string(9) "127.0.0.1"
["DOCUMENT_ROOT"] => string(15) "D:/phpStudy/WWW"
["REQUEST_SCHEME"] => string(4) "http"
["CONTEXT_PREFIX"] => string(0) ""
["CONTEXT_DOCUMENT_ROOT"] => string(15) "D:/phpStudy/WWW"
["SERVER_ADMIN"] => string(18) "admin@phpStudy.net"
["SCRIPT_FILENAME"] => string(25) "D:/phpStudy/WWW/index.php"
["REMOTE_PORT"] => string(4) "1867"
["REDIRECT_URL"] => string(21) "/home/user/index.html"
["GATEWAY_INTERFACE"] => string(7) "CGI/1.1"
["SERVER_PROTOCOL"] => string(8) "HTTP/1.1"
["REQUEST_METHOD"] => string(3) "GET"
["QUERY_STRING"] => string(0) ""
["REQUEST_URI"] => string(21) "/home/user/index.html"
["SCRIPT_NAME"] => string(10) "/index.php"
["PATH_INFO"] => string(10) "user/index"
["PATH_TRANSLATED"] => string(51) "redirect:\index.php\Home\user\index.html\index.html"
["PHP_SELF"] => string(31) "/index.php/Home/user/index.html"
["REQUEST_TIME"] => string(10) "1446772044"
}
~~~
提取其中一个变量 ["HTTP_HOST"]。
~~~
namespace Home\Controller;
use Think\Controller;
class UserController extends Controller{
public function index(){
//$this->redirect('..\index',2,'redirect纯跳转');
//$this->success('成功跳转!!',U('Index/index'),2);
//$this->error('跳转失败!!',U('Index/index'),3);
//$this->ajaxReturn(getTestData(),'json');
$server=I('server.HTTP_HOST');
dump($server);
}
public function edit()
{
echo "User.edit.";
}
public function login(){
echo "User.login.";
}
}
?>
~~~
输出:
string(11) "studytp.com"
使用I函数中的get方法
~~~
namespace Home\Controller;
use Think\Controller;
class UserController extends Controller{
public function index(){
//$this->redirect('..\index',2,'redirect纯跳转');
//$this->success('成功跳转!!',U('Index/index'),2);
//$this->error('跳转失败!!',U('Index/index'),3);
//$this->ajaxReturn(getTestData(),'json');
$server=I('server.HTTP_HOST');
dump($server);
}
public function edit()
{
echo "User.edit.";
}
public function login(){
$User=I('get.user',null);
if ($User=='jike') {
$this->success('你好'.$User,U('Index/index'),3);
}
else{
$this->error('你不是'.$User,U('Index/index'),3);
}
}
}
?>
~~~
传入参数:http://server/home/User/login/user/jike就可以看到跳转成功,否则就看到跳转失败。