2016-12-20 2 views
1

私はJavaScriptのbtoaでエンコードされた値を持つ新しいリンクにユーザーを送りますが、PHP側ではデコードして値をエコーし​​ますエコー出力される値は "未定義"JS base64でエンコーディングしてPHP6464でデコードする

$("#btn-print-bonus").click(function(){ 
     var id = btoa(id); 
     window.open('/pdf/?type=bonus&id='+id+'&name='+fullname+''); 
    }); 

PHPファイル

$id = base64_decode($_GET["id"]); 
echo $id; 
+0

' fullname'と 'id'はどこから来ますか?ブラウザの開発者ツールを開いてクリックハンドラにブレークポイントを設定すると、window.openの引数がどのようになるかを見ることができます。 –

+0

PHPは 'undefined'キーワードを生成することはありません。なぜなら、言語に特別な意味を持たないからです。私はあなたがBase64でエンコードされた文字列の 'undefined'を持っていると確信しています。 –

答えて

1

は、ここでの問題ださ - var id = btoa(id);

のvar idはその外のidという名前の任意のVAR "マスク" します実際にあなたがID = dW5kZWZpbmVkは、PHPに渡され、その結果

var id = undefined; 
id = btoa(id); 

を行っているので、コールバックをクリックします - 開発者向けツールのネットワークタブでチェックして、私が正しい場合

dW5kZWZpbmVkは「未定義の文字列です見ます"base64 encoded - btoaは与えられた引数を文字列に変換します。

+0

それだけです!ありがとう –

関連する問題