繁体   English   中英

jQuery或PHP或其他东西。 仅在用户单击链接时显示完整的电话号码

[英]jquery or php or something else. Show full phone number only when user clicks on link

有PHP $phone_number=1234567;

在页面上加载

<span id="span_phone_number">
<?php echo htmlspecialchars( substr_replace( $phone_number, "...", -3 ), ENT_QUOTES, "UTF-8");?>
</span>
<span id="show_phone_number">Show</span>

使用jQuery的第一个想法

$(document).on('click', '#show_phone_number', function(){
$("#span_phone_number").html( '<?php echo htmlspecialchars( $phone_number, ENT_QUOTES, "UTF-8"); ?>' );
});

但是我可以在“查看源代码”中看到完整的电话号码。

我从mysql获得的$phone_number

下一个想法是与$.post发送id到外部php文件,在该文件中连接到mysql并获取完整的电话号码。 但这是浪费资源。

是否可以以较少的资源消耗方式在页面加载时在视图源中隐藏完整电话号码并仅在单击时显示完整电话号码?

下一个想法:

  1. 创建一些数字(随机)
  2. 要发送给ajax,请发送创建的电话号码和电话号码,但末3位数字
  3. 在外部php中根据创建的号码和部分电话号码创建正确的电话号码,但是怎么办? 如何根据某个随机数获得3个必要的数字,这是什么主意?

还是可能存在更简单的东西?

可能的目的是防止bot从html源解析电话号码。

找到了这个http://forums.phpfreaks.com/topic/85597-converting-a-number-to-another-number-encrypt-decrypt/?p=436824

$original = 123;
$secure = rand(100,999).base64_encode($original);
$unsecure = substr($secure,3);
$unsecure = base64_decode($unsecure);
echo $unsecure; // will display 123

似乎有效。 但目前尚不了解其工作方式和原因...

如果要从源代码中隐藏它,可以尝试将其保存在会话中。 例如:

<?php 
    session_start();
    $_SESSION['phoneNumber'] = '123456789';

    echo $_SESSION['phoneNumber'];
?>

这就是我的做法。

<?php
$phonenumber = (int)strrev('123');
$random = (int)time();
$encrypt = ($phonenumber + $random);
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<a href="#" id="clickme">Click to see Phone</a>
<div style="display:none;" id="displayphone"><?php echo $encrypt?></div>
<script type="text/javascript">
    $('#clickme').click(function(){
        var phonenumber = $('#displayphone').html() - <?php echo $random;?>;
        var realphonenumber = phonenumber.toString().split("").reverse().join("");
        $("#displayphone").slideDown().html(realphonenumber);
    });
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM