• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数の発行スタンドのメルマガ登録フォームについて)

複数の発行スタンドのメルマガ登録フォームについて

このQ&Aのポイント
  • 複数の発行スタンドのメルマガ登録フォームについての質問です。メルマガを発行しているまぐまぐ、melma!、まろんぱんの3つの発行スタンドについて、それぞれの登録・解除フォームをウェブサイトに置いています。MovableTypeへの移行を機に、3発行スタンド共通のコンパクトな登録解除フォームを作成し、サイドナビゲーションで表示したいのですが、どのように記述すればいいか分かりません。
  • 複数の発行スタンドのメルマガ登録フォームについての質問です。まぐまぐ、melma!、まろんぱんの3つの発行スタンドでメルマガを発行していますが、それぞれの登録・解除フォームをウェブページに設置しています。MovableTypeへの移行を機に、3つの発行スタンドの共通フォームを作成し、サイドナビゲーションに表示したいと考えています。
  • 複数の発行スタンドのメルマガ登録フォームについての質問です。まぐまぐ、melma!、まろんぱんという3つの発行スタンドでメルマガを発行しており、それぞれの発行スタンドごとに登録・解除フォームを設置しています。ウェブページをMovableTypeに移行する予定ですが、3つの発行スタンドの共通フォームを作成し、サイドナビゲーションに表示したいと思っています。どのように記述すればいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#191236
noname#191236
回答No.3

こんにちは。 ■はじめに これを使用した事で起きた損害など、いかなる場合においても一切責任を負いません。 よって、ご自分で動作確認をしてから、全て自己責任の元で使用して下さい。 尚、InternetExplorer6以外では動作確認していません。 (InternetExplorer6も含み動作保証は出来ません。) あと、確認用CGIですが、あくまでローカルでの確認用です。 これで動作が確認出来ても、メールマガジン先のCGI等の設計で使用出来ない場合もあります。 ご注意下さい。 ■メールマガジン登録/解除 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Pragma" content="no-cache"> <title>メールマガジン登録/解除</title> </head> <body> <script language="JavaScript"> <!-- //メールマガジン選択 optbtn = 0; // function form_submit (frm,opt) { //登録 if (opt == 'add') { switch(optbtn) { case 0: alert("メールマガジンを選択してください。"); return; break; case 1: document.getElementById('b').innerHTML = '<input type=hidden name="MfcISAPICommand" value="MagRdAdd">'; break; case 2: document.getElementById('b').innerHTML = '<input type=hidden name="mailmag" value="add">'; break; case 3: document.getElementById('b').innerHTML = '<input type=hidden name="regist" value="アドレス登録">'; break; default: alert("例外エラー。"); } } //解除 if (opt == 'del') { switch(optbtn) { case 0: alert("メールマガジンを選択してください。"); return; break; case 1: document.getElementById('b').innerHTML = '<input type=hidden name="MfcISAPICommand" value="MagRdDel">'; break; case 2: document.getElementById('b').innerHTML = '<input type=hidden name="mailmag" value="del">'; break; case 3: document.getElementById('b').innerHTML = '<input type=hidden name="unregist" value="アドレス解除">'; break; default: alert("例外エラー。"); } } //送信 frm.submit(); } //まぐまぐ用 function Magmag() { //form action document.forms[0].action = "http://regist.mag2.com/reader/Magrdadd"; //text [1] document.forms[0].elements[0].name = "rdemail"; //hidden [1] document.forms[0].elements[3].name = "magid"; document.forms[0].elements[3].value = "aaaaa"; //メールマガジン選択 optbtn = 1; } //Melma!用 function Melma() { //form action document.forms[0].action = "http://welcome.melma.com/cgi-bin/host/mailmag.pl"; //text [1] document.forms[0].elements[0].name = "email"; //hidden [1] document.forms[0].elements[3].name = "magid"; document.forms[0].elements[3].value = "bbbbb"; //メールマガジン選択 optbtn = 2; } //めろんぱん用 function Melonpan() { //form action document.forms[0].action = "http://www.melonpan.net/melonpa/register.php"; //text [1] document.forms[0].elements[0].name = "email"; //hidden [1] document.forms[0].elements[3].name = "mag_id"; document.forms[0].elements[3].value = "ccccc"; //メールマガジン選択 optbtn = 3; } //--> </script> <p>JavaScriptを使用しています。<br>無効に設定されている方は有効にして下さい。</p> <table border="0" cellspacing="0"> <tr> <td><input type="radio" name="Magazine" value="magmag" onClick="Magmag()">まぐまぐ</td> </tr> <tr> <td><input type="radio" name="Magazine" value="melma" onClick="Melma()">melma</td> </tr> <tr> <td><input type="radio" name="Magazine" value="maron" onClick="Melonpan()">めろんぱん</td> </tr> </table> <form action="" method="POST"> <table border="0" cellspacing="0"> <tr> <td><input type="text" size="38" value="メールアドレスを入力"></td> </tr> <tr> <td align="center"><input type="button" value="アドレス登録" onClick="form_submit(this.form,'add')"> <input type="button" value="アドレス解除" onClick="form_submit(this.form,'del')"></td> </tr> <tr> <td><input type=hidden value=""></td> </tr> <tr> <td><span id="b"></span></td> </tr> </table> </form> </body> </html> ■動作確認用CGI(PerlによるCGI) #!/usr/bin/perl if ($ENV{'REQUEST_METHOD'} eq "POST") { if ($ENV{'CONTENT_LENGTH'} > 51200) { exit; } read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } elsif ($ENV{'REQUEST_METHOD'} eq "GET") { $buffer = $ENV{'QUERY_STRING'}; } print "Content-type: text/html\n\n"; @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/\,/,/g; $FORM{$name} = $value; print "$name = $value<br>\n"; } ■動作確認用CGIの使用方法  1.メールマガジン登録/解除の所にある //form action 下をコメントアウトする。(三つ共)  2.<form action="" 部分に確認用cgiを設定する。  3.Perlが動作する所(ローカルまたはサーバ)にアップロードする。  4.Perlへのパス、*.htmlと*.cgiの位置関係、パーミッションを確認。 ここに投稿するとインデントが無効になってしまうので、 必要であればどこかのアップローダなどに上げます。

takeshirou
質問者

お礼

ありがとうございます。 ただいま動作確認などを実施中です。一通り確認できたところで、改めて結果をご報告いたします。

その他の回答 (3)

noname#191236
noname#191236
回答No.4

こんにちは。 度々失礼します。 配列を使ってFormの要素にアクセスしているので、 他にフォームなどがあったりする場合は変更してください。 例:forms[0].elements[0]   0番目のForm(<form></form>)の0番目の要素(<input ) あと、MovableTypeというのはブログ(スクリプト)だと 思うのですが、ブログとか使った事ないので、No.3を実装 する際のタグや設定などは回答しかねます。(汗 それでは。

noname#191236
noname#191236
回答No.2

こんばんわ。 まず、まぐまぐ melma! まろんぱん それぞれの、 登録・解除フォーム設置の際のHTMLタグを教えて頂 かないと作れません。 (ID番号などは、*で伏せて頂いて構いません。) 他の簡単な方法としては、ラジオボタンの選択で、 それぞれの登録フォームがあるページにジャンプを させるとかですね。(フレーム使用) 全くJavaScript分らず厳しいようであれば、後者の 方法が良いのではないでしょうか。

takeshirou
質問者

補足

お手数をおかけします。諦めるつもりだったのですが、お言葉に甘えさせて頂きます。JavaScriptについては、既存の単純なものを加工する程度なら対応できます。以下、長くなりますが3発行スタンドの登録解除フォームのHTMLタグです。IDはそれぞれ、aaaaa、bbbbb、cccccとしております。 ・まぐまぐ <form class="add" action="http://regist.mag2.com/reader/Magrdadd" method="post" target="_top"> <input type=hidden name="MfcISAPICommand" value="MagRdAdd"> <input type=text name="rdemail" size="30"> <input type=hidden name="magid" value="aaaaa"><br> <input type=submit value="アドレス登録"> </form> <form class="del" action="http://regist.mag2.com/reader/Magrddel" method="post" target="_top"> <input type=hidden name="MfcISAPICommand" value="MagRdDel"> <input type=text name="rdemail" size="30"> <input type=hidden name="magid" value="aaaaa"><br> <input type=submit value="アドレス解除"> </form> ・melma! <FORM class="add" action="http://welcome.melma.com/cgi-bin/host/mailmag.pl" method="post"> <INPUT type=text NAME="email" size=30 VALUE=""> <INPUT TYPE="hidden" name="mailmag" value="add"> <input type=hidden name="magid" value="bbbbb"><br> <INPUT TYPE=submit VALUE="アドレス登録"> </FORM> <FORM class="del" action="http://welcome.melma.com/cgi-bin/host/mailmag.pl" method="post"> <INPUT type=text NAME="email" size=30 VALUE=""> <INPUT TYPE="hidden" name="mailmag" value="del"> <input type=hidden name="magid" value="bbbbb"><br> <INPUT TYPE=submit VALUE="アドレス削除"> </FORM> ・めろんぱん <form class="add" action="http://www.melonpan.net/melonpa/register.php" method="post"> <input type="text" size="30" name="email"> <input type="hidden" name="mag_id" value="ccccc"><br> <input type="submit" value="アドレス登録" name="regist"> </form> <form class="del" action="http://www.melonpan.net/melonpa/register.php" method="post"> <input type="text" size="30" name="email"> <input type="hidden" name="mag_id" value="ccccc"><br> <input type="submit" value="アドレス解除" name="unregist"> </form>

noname#191236
noname#191236
回答No.1

はじめまして、こんばんわ。 JavaScriptを使用して、フォームの情報を変更すれば可能だと思います。 <input type="***" name="***" value="***"> 隠し属性などの項目もあるので、間違って不要な物まで送らないように。 あと、肝心な事があります。 それらのメルマガサイトの規約的には、そういった登録・解除フォーム の改造(選択式の共通に)する事は問題ないかご確認されましたか? それでは。

takeshirou
質問者

お礼

GX71 さん、ありがとうございます。 JavaScript の記述方法もよくわからない素人なので、せっかくのご提案ですが、能力不足で記述できません。具体的に記述したものを提示していただけるかたがいらっしゃれば助かります。 フォームの改造は問題ないようです。

関連するQ&A