Php 使用codeigniter和javascript将加密参数从视图传递到控制器时出错
我试图使用codeigniter和jquery构建一个登录表单,当客户端提交表单时,我试图做的是jquery更改Php 使用codeigniter和javascript将加密参数从视图传递到控制器时出错,php,jquery,codeigniter,encryption,Php,Jquery,Codeigniter,Encryption,我试图使用codeigniter和jquery构建一个登录表单,当客户端提交表单时,我试图做的是jquery更改窗口。location调用控制器中的验证函数传递用户名和密码参数加密 这是我的密码 window.location.href = "/resturant/codeigniter/index.php/welcome/checklogin/" + <?php $this->load->library('encrypt'); echo $this->encrypt-&
窗口。location
调用控制器中的验证函数
传递用户名
和密码
参数加密
这是我的密码
window.location.href = "/resturant/codeigniter/index.php/welcome/checklogin/" +
<?php $this->load->library('encrypt');
echo $this->encrypt->encode("$('#username').val()"); ?> +
"/" + $("#password").val();
window.location.href=“/resturant/codeigniter/index.php/welcome/checklogin/”+
您正在以一种完全不可能的方式混合PHP和JavaScript。PHP在服务器上执行,内容发送到浏览器,然后很长一段时间后,JavaScript在客户机上运行。两者不能以这种方式相互作用。为了让PHP和JavaScript进行交互,必须通过HTTP请求在客户端和服务器之间发送数据
在更大的方案中,您不能在PHP中使用服务器端加密来在JavaScript中对客户端进行加密。如果您希望从JavaScript向服务器安全地通信某些内容,那么需要使用SSL
如果您只是试图将用户名/密码保留在URL之外,则应该使用POST
请求,而不是GET
请求。无论如何,您都应该这样做,以便登录用户
RE:您的更新
问题在于,纯粹是出于偶然,您的第二个示例输出了有效的JavaScript,这恰好为您提供了所需的结果
也就是说,在第二个示例中:
window.location.href = "/resturant/codeigniter/index.php/welcome/checklogin/" +
<?php echo "$('#username').val()"; ?> + "/" + $("#password").val();
然而,您的第一个示例完全失败了。这一行:
echo $this->encrypt->encode("$('#username').val()");
正在输出文本字符串“$('#username').val()”
的加密形式;结果将是垃圾和JavaScript解析错误
你不能像这样混合使用PHP和JavaScript。为什么下面这行代码可以工作:window.location.href=“/checklogin/”+它不能工作,至少不能以你认为的方式工作。它实际上产生了这行代码:window.location.href=“/checklogin/”+$(“#username”).val()
。
window.location.href = "/resturant/codeigniter/index.php/welcome/checklogin/" +
$('#username').val() + "/" + $("#password").val();
echo $this->encrypt->encode("$('#username').val()");