-2

我正在设置一个由密码“保护”的非常简单的页面,到目前为止一切正常,但我们希望它只验证使用的前 3 个数字/字符。

该页面不是最高机密或任何东西,我们只希望以这种方式避免“一般”人(不知道如何进入)访问内容。

例如,目前我们有:

$password = "NBX9785"; 

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

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

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

这可能吗,有没有简单的方法可以做到这一点?

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

4

3 回答 3

1

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

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

或者

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

也都在这里: http: //php.net/manual/en/ref.strings.php

于 2012-11-24T14:41:19.567 回答
0

也许使用 str_len() 函数?

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

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

于 2012-11-24T14:42:06.463 回答
0

这将为您提供 NBX,但是您确定要以这种方式进行用户验证吗?这不是一种不同的安全方法,使用数据库更安全。

如果您确实想这样做,那么无限的答案会很合适。

关于您的最后一个问题,您可以由 4 个变量组成:

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

或者,数字可以是整数(去掉引号),

于 2012-11-24T14:50:47.697 回答