記事No | : 14126 |
投稿日 | : 2015/07/26(Sun) 23:18:28 |
タイトル | : postmail確認画面からphpへpost |
ID情報 | : tomit28 |
投稿者 | : tomi |
URL | : http://islandloop.net/wptest/ |
postmailの確認画面について質問させてください。
postmail の確認画面で送信ボタンを押すとform内容がメール送信されますが、そのデータを同時にphpプログラムへpostしてデータベースへ登録したいと思っています。
javascriptを利用してcgiとphpにpostしています。
inputタグを見ると下記のようにvalueの日付が暗号?のようにになっています。php側では2015/07/26のように復元できないのでしょうか?
<input type="hidden" name="開始日" value="MjAxNS8wNy8zMA==" />
このようにcgiとphpへpostしています。
<input type="submit" value="送信する >" onClick="send(this.form)" class="button" />
<script>
function send(rsvfrm){
rsvfrm.action = "../../wptest/wp-content/plugins/weekly-reservation/weekly-reservation.php";
rsvfrm.submit();
rsvfrm.target = "_self";
rsvfrm.action = "!mail_cgi!";
rsvfrm.submit();
}
</script>
記事No | : 14127 |
投稿日 | : 2015/07/27(Mon) 03:21:46 |
タイトル | : Re: postmail確認画面からphpへpost |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/fsw/wiki.cgi |
問い合わせフォームの確認画面ではデータがすべてhex_encodeされているので、
受け取った際にhex_decodeして戻してやればいいはずですが、
"MjAxNS8wNy8zMA=="
というのはhex_encodeされたものではなさそうですね。
この状態で送信してメールは正しく届いているのでしょうか。
記事No | : 14129 |
投稿日 | : 2015/07/27(Mon) 11:58:27 |
タイトル | : Re^2: postmail確認画面からphpへpost |
ID情報 | : tomit28 |
投稿者 | : tomi |
URL | : http://islandloop.net/wptest/ |
> 問い合わせフォームの確認画面ではデータがすべてhex_encodeされているので、
> 受け取った際にhex_decodeして戻してやればいいはずですが、
> "MjAxNS8wNy8zMA=="
> というのはhex_encodeされたものではなさそうですね。
> この状態で送信してメールは正しく届いているのでしょうか。
返答ありがとうございます、
hex_encodeというものがあるのですね、調べてみます。
メールは正常に送信できます。
記事No | : 14130 |
投稿日 | : 2015/07/28(Tue) 10:18:20 |
タイトル | : Re^3: postmail確認画面からphpへpost |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/fsw/wiki.cgi |
>メールは正常に送信できます。
メールが正常に届いているということなら、メール送信前のhex_decodeで
正常にデコードされているということなので、そのタイミング(sub send_mail内)でPHPに分岐してやれば
デコード済みのデータを送れそうですが、分岐方法はちょっとわからないです。
確認画面の送信ボタンを押したときに分岐するなら、データを受け取ったPHPでpostmail.cgiで行われているhex_decodeと同じ処理を
行えば元のデータに戻せるはずです。
postmail.cgiでは
sub hex_decode {
my $str = shift;
$str =~ s/\t/\n/g;
$str =~ s/([0-9A-Fa-f]{2})/pack('H2', $1)/eg;
return $str;
}
という関数ですが、PHPだと
hex2bin()
だけで済みそうです。