URL参数中的Codeigniter斜杠

时间:2015-09-18 09:53:47

标签: php codeigniter

我有一个控制器,其方法接受2个参数,如下所示的用户名和密码:

class Test extends CI_Controller {

    public function index($username= NULL, $password = NULL){
        if($username === NULL){
           echo "Error";          
        }else if($password === NULL){
            echo "Error";
        }else{
            echo "Your username is :"$username." and your password is :".$password;
        }            
    }
}
我在路线文件中的

$route['Upload/(:any)'] = "Test/index/$1";
$route['Upload/(:any)/(:any)'] = "Test/index/$1/$2";

并在配置文件中:

$config['permitted_uri_chars'] = '';

网址如下:mysite.com/Test/mike123/rtO;"*skj

我面临的问题是,密码可以包含一个斜杠,可以使网址如下所示并打破它:

mysite.com/Test/mike123/rtO;"*//skj

网址必须像:mysite.com/Test/param1/param2一样运行我不想对其进行网址编码。是否有任何解决方案来运行网址并获取mike123rtO;"*//skj

参数

由于

2 个答案:

答案 0 :(得分:3)

您正尝试通过网址传递密码。你知道这根本不安全吗?你也不想对它进行编码。

我会通过POST传递密码,这更安全,然后直接通过URL传递。

但是,如果这是您想要的,您可以在传入此函数时对密码进行url_encode,并再次将url_decode重新编入函数中以供进一步使用

答案 1 :(得分:0)

使用像这样的jquery发送用户名和密码

var username = $("#username").val();

var password = $("#password").val();

var datastring ='username='+username+'&password='+password;

$.post(URL,datastring,function(){

});