-2

パスワードで「保護」された非常に単純なページを設定しています。そこまでは問題ありませんが、最初の 3 桁/文字のみが検証されるようにしたいと考えています。

このページはトップ シークレットなどではありません。「一般的な」ユーザー (アクセス方法を知らない) がコンテンツにアクセスするのを避けるために、このようにしたいだけです。

たとえば、現時点では次のようなものがあります。

$password = "NBX9785"; 

そして、非表示になっているコンテンツは次のように非表示になります。

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

しかし、私たちが望むのは、パスワードの数字や残りの部分ではなく、NBX カウントだけを持つことです。これにより、基本的に、追加のコーディングを必要とせずに、より多くのコードを発行できるようになります。

これは可能で、これを行う簡単な方法はありますか?

さらにプッシュするには、NBX が固定されている NBX99D24 と言うように設定することは可能ですが、99、D、および 24 はそれぞれ数字と文字ですか?

4

3 に答える 3

1

文字列から最初の 3 文字を取得して比較できます

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

これで NBX が得られますが、この方法でユーザー認証を実行してもよろしいですか? これは安全な方法ではなく、データベースを使用する方がはるかに安全です。

このようにしたい場合は、無限の答えがうまくいきます。

最後の質問に関しては、次の 4 つの変数から構成できます。

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

または、数値を整数にすることもできます (引用符を削除します)。

于 2012-11-24T14:50:47.697 に答える
0

おそらく str_len() 関数を使用しますか?

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

上記のコードは最初の 3 文字を表示するので、その後のデータを操作できます。

于 2012-11-24T14:42:06.463 に答える