简单的PHP页面保护脚本,其中密码只验证前3个字符?

时间:2012-11-24 14:36:40

标签: php passwords

我正在通过密码设置一个非常简单的“受保护”页面,直到那里一切正常,但我们希望只使用前3个数字/字符进行验证。

页面不是绝密或任何东西,我们只想这样避免“普通”人(不知道如何进入)访问内容。

例如,目前我们有:

$password = "NBX9785"; 

然后隐藏的内容隐藏如下:

        <?php 
    if (isset($_POST["password"]) && ($_POST["password"]=="$password")) {
    ?>

但我们想要的只是NBX计数而不是密码的数字或其余部分,这基本上可以让我们在不需要额外编码的情况下提供更多代码。

这可能吗?有一种简单的方法吗?

为了进一步推动它可以设置它说NBX99D24其中NBX是固定的,但99,D和24分别是数字和字母?

3 个答案:

答案 0 :(得分:1)

您可以从字符串中获取前三个字符并进行比较

if(mb_substr( $_POST["password"],0,3) === mb_substr($password, 0, 3))
{
    // Your content here
}

OR

if(strpos($password, mb_substr( $_POST["password"],0,3)) === 0) 
{
    // Your content here
}

所有这些都在这里:http://php.net/manual/en/ref.strings.php

答案 1 :(得分:0)

使用str_len()函数吗?

$text = "this.is.a.test.text";
echo substr($text, 0,3);

上面的代码显示前3个字符,因此您可以在此处操作数据。

答案 2 :(得分:0)

这会给你NBX,但你确定要用这种方式进行用户验证吗?它不是一种安全的方法,使用数据库更加安全。

如果你确实想这样做,无限的答案就会很好。

关于你的上一个问题,你可以从4个变量中补充:

$password="NEX";
$password.="99";
$password.="D";
$password.="24";

或者,数字可以是整数(删除引号),