ホームページ  >  記事  >  バックエンド開発  >  オンラインで待機中 - PHP 関数はパラメータの一重引用符と二重引用符を渡します

オンラインで待機中 - PHP 関数はパラメータの一重引用符と二重引用符を渡します

WBOY
WBOYオリジナル
2016-06-23 13:31:321352ブラウズ

http://software.ftp.sscmoni.com/1.png
画像がアップロードできない場合は、これをクリックしてご覧ください。
この関数で渡されるパラメータは、base64 で復号化されています。パラメータの復号化は、直接入力した場合は失敗します。二重引用符を使用した場合は、パラメータに改行が含まれていると成功します。このパラメータはPOSTフォームで動的なので渡さなければならないのですが、どのように書けばよいのでしょうか?

<?phpclass form{public function __construct($user="username", $pass="123456", $code="123456" ){$encryptedData = base64_decode($user);echo("$datedate");$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $pass, $encryptedData, MCRYPT_MODE_CBC, "$code");echo("$decrypted");die; }}if ( sizeof($_POST) ) {$user = $_POST["date"] or die('内容不能为空!');$pass = $_POST["key"] or die('内容不能为空!');$code = $_POST["iv"] or die('内容不能为空!');$Form = new form("$user", "$pass", "$code");}?>


ディスカッションに返信(解決策)

Base64_encode の前、base64_encode 以降の $user が何であっても、改行文字が含まれることはありません
、したがって、ディスカッションは無に基づいて行うことはできません

何があっても$user は、base64_encode の前にありますか? Base64_encode の後は、改行文字は存在しません

Base64_encode の前に改行文字があります
次に、 $encryptedData = Base64_decode($user) です。 ; の後に $encryptedData に改行文字があります

しかし、$decrypted をエコーすると、ブラウザは改行文字を変更しないため、改行文字が改行として表示されます。 HTML の改行は br タグと p タグです
それを観察するにはテキスト状態になる必要があります

神様、私はそれを解決しました 問題の解決を手伝ってくれた皆さん、ありがとう

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。