【问题标题】:hide full number and display last 4 but unmask the number upon form submission隐藏完整号码并显示最后 4 个,但在提交表单时取消屏蔽该号码
【发布时间】:2012-03-07 22:54:21
【问题描述】:

我需要在表单输入字段中显示一个数字(该数字是从数据库中检索的),这样只有最后 4 位数字是可见的,其余的可以被屏蔽为 * 或 X 或任何适用的。

我知道最后4个可以通过如下方式获得:

$number=substr($number,-4,4);

但是当我点击提交按钮时,表单会验证输入字段并检查数字是否是特定格式的有效数字。 因此,当我单击提交按钮时,我仍然应该能够取消屏蔽被屏蔽的数字或执行类似的操作来帮助我验证整个数字。

<input type="text" name="no" value="<?php if(!empty($number)){ echo $number;} ?>">

所以我不知道如何处理这个?

例如。如果我有一个号码 786661234。 它应该以 XXXXX1234 的形式显示。 当我点击并提交表单时, 它应该在数据库中解码并更新为 786661234

【问题讨论】:

  • 将实数存储在服务器上的 $_SESSION 变量中并验证 那个 数字而不是掩码数字,或者检查最后四位数字是否与您发送的数字匹配形式。没有办法“取消屏蔽”字符串或数字。
  • 我真的希望这些数字不是社会安全号码/信用卡!

标签: php forms substring mask


【解决方案1】:

数字屏蔽的另一种选择

<?php 
echo str_repeat("x", (strlen($number) - 4)).substr($number,-4,4);

?>

【讨论】:

  • 你能放一个输出例子吗?
【解决方案2】:

将您的号码放入 $number 变量中并获取结果:

<?php

$number =  "1122334455667788";
$masked =  str_pad(substr($number, -4), strlen($number), '*', STR_PAD_LEFT);
print $masked;

?>

【讨论】:

  • 你能放一个输出例子吗?
猜你喜欢
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 2021-06-01
  • 1970-01-01
  • 2017-08-30
  • 2018-05-04
  • 1970-01-01
相关资源
最近更新 更多