12

AES_ENCRYPT()を使用してパスワードをエンコードして、ログイン システムを作成しようとしています。しかし、これらのコードを実装しようとすると、 xdebugから警告が表示されます。

...
$key = 'd0gis=SUPER-cute';
$sql = "SELECT * FROM `users2` WHERE username = ? AND pwd = AES_ENCRYPT(?, ?)";
$stmt = $conn->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param('sss', $username, $password, $key);
$stmt->execute();
$stmt->store_result();
...

デバッガーが 8 行目またはに遭遇すると、 xdebug$stmt->prepare($sql);からの 6 つの同じ警告テーブルに次のように表示されます。

(!) 警告: main(): 8 行目の D:\xampp\htdocs\learnphp\includes\authenticate_mysqli.inc.php では、プロパティへのアクセスはまだ許可されていません

のエラー プロパティ$stmtは空で、実際の問題はありませんが、この警告メッセージが表示される原因を知りたいだけです。

この警告メッセージをグーグルで検索しましたが、解決策が見つかりませんでした:

  1. 準備済みステートメントを使用した UPDATE クエリ
  2. http://php.net/manual/en/mysqli-stmt.param-count.php
4

3 に答える 3

0

PhpStorm 内でテストを実行すると、Property access is not allowed yet が発生しましたプロジェクトのPHP 言語レベルを 7.2 に設定し、CLI インタープリターを 7.1 に設定しました。インタープリターを 7.4 に変更したところ、エラーはなくなりました。

于 2020-04-26T17:19:04.077 に答える