在php中隐藏javascript

在php中隐藏javascript,php,javascript,Php,Javascript,我在一个项目上工作,它需要电子邮件验证当用户输入他的电子邮件地址检查可用性。我用javascript编写了php代码,它工作得很好,但我的问题是,当有人看到我的页面源代码时,它会用javascript代码显示所有用户的电子邮件地址。我想把这个藏起来 我在单独的文件中编写了javascript代码,但验证不起作用 如果有人想知道如何在php中隐藏javascript代码,请指导我 谢谢任何JavaScript都可以被任何人阅读。这是一种客户端语言 该检查必须在服务器上进行;您可以在表单提交期间执行

我在一个项目上工作,它需要电子邮件验证当用户输入他的电子邮件地址检查可用性。我用javascript编写了php代码,它工作得很好,但我的问题是,当有人看到我的页面源代码时,它会用javascript代码显示所有用户的电子邮件地址。我想把这个藏起来

我在单独的文件中编写了javascript代码,但验证不起作用

如果有人想知道如何在php中隐藏javascript代码,请指导我


谢谢

任何JavaScript都可以被任何人阅读。这是一种客户端语言


该检查必须在服务器上进行;您可以在表单提交期间执行此操作,也可以在电子邮件字段焦点模糊时使用AJAX。

您应该通过AJAX检查地址的可用性。例如,请参阅解释如何对用户名执行此操作;更改电子邮件地址应该不会太困难。在这种情况下发生的情况是:

用户尝试某个地址 浏览器会询问服务器这是否可用? 服务器回答是或否 这样,浏览器永远不知道地址的完整列表,因此没有人可以获取它们


顺便说一下,不要仅仅依赖于JavaScript验证,还要确保在最终的PHP注册代码中进行可用性检查!恶意用户将关闭其JavaScript并对现有用户名重新注册!防止这种情况发生的唯一方法是在服务器上,因为只有您控制服务器。

我知道这是一篇非常古老的文章,但通过php或asp,您可以做到这一点。但高级极客仍然可以使用它。 基本上你需要3个文件 1.functions.js文件

function testfunc(){
alert("test to see if it works...");
}
二,。null_functions.php

<?php

$datetime=base64_encode(date("YmdHis") * 1.35489);
$cache = getparam("cache");

if ($datetime == $cache) {
$js = file_get_contents("functions.js");
echo $js;
}



//****************************************************************************************************
//                                              functions                                              
//**************************************************************************************************** 


function getparam($name)
{
if (is_string($name))
    {
    if ((bool)get_magic_quotes_gpc())
        {
        set_magic_quotes_runtime(0);
        $param = isset($_POST[$name]) ? stripslashes($_POST[$name]) : false;
        $param = isset($_GET[$name]) ? stripslashes($_GET[$name]) : $param;
        }
      else
        {
        $param = isset($_POST[$name]) ? $_POST[$name] : false;
        $param = isset($_GET[$name]) ? $_GET[$name] : $param;
        }

    return $param;
    }
  else
    {
    return $name;
    }
}
?>
三,。index.php

<!DOCTYPE html>
<html>
<head>
<?php
$cache = base64_encode(date("YmdHis") * 1.35489); // multiply by some random number this must be same as on null_functions.php page
?>
<script src="<?php echo "null_functions.php?cache=$cache";?>">
</script>
</head>
<body onload="javascript:testfunc()">
</body>
</html>

我试过ajax,它会根据你的链接显示图像。但我想要警报信息,它不会显示警报信息。你就快到了——如果你有图像,只需几秒钟就可以将其转换为警报。这与ajax完全不同——这是DOM操作。首先让系统处理图像,然后重新编写警报,这是我的建议。顺便问一下,你想要什么样的“警报”?是的,使用该教程是非常可行的。等几分钟,我正在尝试使用JSFIDLE构建一个示例。查看Ajax示例和警报。但是要注意警报非常突出,许多网络开发人员喜欢更多的“微妙”的方法。另外,还要确保在最终的PHP注册代码中进行可用性检查!恶意用户将关闭其JavaScript并对现有用户名重新注册!防止这种情况的唯一方法是在服务器上,因为只有您控制服务器。我尝试了ajax,它将根据您的链接显示图像。但是我想要警报消息,它不会显示警报消息OP询问如何对用户隐藏用js完成的电子邮件测试,您的问题没有回答这个问题。如果连接速度慢,它就会失败。在当前的php版本中,不需要get_magic_quotes_gpc,因为php7不推荐并删除了magic quotes。感谢您对php7的更新,此解决方案实际上不需要getparam函数,只需使用$\u get['cache'],这只是一个想法,如何发送参数仅在1秒内处于活动状态,javascript加载到浏览器缓存中,直到下次刷新。我确实理解了您的代码,但它仍然没有回答OP的问题。您无法保护在客户端执行的代码不被读取。最坏的情况下,1秒的窗口是有害的,但它不会带来任何保护。