PHP では、通常、文字列内のドル ($) 記号は変数を示します。ただし、この文字を含むパスワードを扱うときに問題が発生する可能性があります。
問題:
PHP スクリプトがデータベースに接続しようとしたときに、パスワード値が正しくありませんでした。送られてきました。パスワードに $ 記号が含まれており、これはパスワードの一部ではなく変数として解釈されました。
解決策 1: ドル記号をエスケープする
問題を解決するには、ドル記号はバックスラッシュ () を使用してエスケープされました:
$_DB["password"] = "mypas$word";
これにより、$ 文字が事実上リテラル値として扱われ、正しいパスワードを送信できるようになります。
別の解決策: 一重引用符文字列
別の解決策は、パスワードに一重引用符文字列を使用することです。
$_DB['password'] = 'mypas$word';
一重引用符文字列は PHP によって処理されずに取得されます。見た目どおりに。この方法により、$ 記号が変数として解釈されなくなります。
データベースからのパスワード取得の処理
パスワードがデータベースに保存されている場合、同じ問題が発生する可能性があります。 PHP がそれを取得するときに発生します。これを回避するには、特殊文字をエスケープするか一重引用符文字列を使用して、適切にフォーマットされた文字列でパスワードを保存するようにデータベースを構成する必要があります。
ベスト プラクティス
変数置換や特殊文字を必要としない文字列の場合は、一重引用符文字列を使用することをお勧めします。これはより安全でエラーが起こりにくいです。
以上がドル記号を含むパスワードが PHP で壊れるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。