0

我有这个函数,我用 onClick="login_f('.$return.')" 从 PHP 调用它但是在 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;
    }
  }
4

2 回答 2

1

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

如果是这种情况,那么它需要引号。

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

所以你的 PHP 变成:

echo '...... onClick="login_f('.htmlspecialchars(json_encode($return),ENT_QUOTES)."');"....';
于 2013-09-08T09:12:40.550 回答
0

你可以这样做:

echo '<a ... onClick="login_f(\''.$return.'\')">....</a>';
于 2013-09-08T09:17:26.703 回答