我有一个控制器,其方法接受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一样运行我不想对其进行网址编码。是否有任何解决方案来运行网址并获取mike123
和rtO;"*//skj
由于
答案 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(){
});