Javascript缺失)参数列表后

时间:2013-09-08 09:08:50

标签: php javascript

我有这个功能,我用PHP调用它onClick =“login_f('。$ return。')” 但在Firefox中它给我一个错误“javascript缺失”后参数列表“ 有什么帮助吗?

  function login_f(return_v){
    email = document.login.email.value;
    email2 = document.login.email2.value;
    if(email == "" || email2 == ""){
      if(readCookie("lang") == "it_IT")
        msg('<span style="color:#D90909">Compila tutti i campi!</span>'); 
      else
        msg('<span style="color:#D90909">Fill in all fields!</span>');
    }
    else if(email != email2){
      if(readCookie("lang") == "it_IT")
        msg('<span style="color:#D90909">Le email non coincidono!</span>');
      else
        msg('<span style="color:#D90909">The emails do not match!</span>');
    }
    else{
      var date = new Date();
      date.setTime(date.getTime() + (365*24*60*60*1000));
      var expires = "; expires=" + date.toGMTString();
      document.cookie = "email=" + email + expires + "; path=/sbm/";
      if(return_v == "" || return_v == null)
        window.location.href = "http://www.xriuk.com/sbm/";
      else
        window.location.href = return_v;
    }
  }

2 个答案:

答案 0 :(得分:1)

看起来(基于它的使用位置)$return(因此return_v)是一个字符串。

如果是这种情况,则需要围绕它进行引用。

我强烈建议使用json_encode嵌入任何类型的变量,尤其是因为它极大地有助于防止XSS。

所以你的PHP变成了:

echo '...... onClick="login_f('.htmlspecialchars(json_encode($return),ENT_QUOTES)."');"....';

答案 1 :(得分:0)

你可以这样做:

echo '<a ... onClick="login_f(\''.$return.'\')">....</a>';