2016-10-23 5 views
0

私のフォームが私のPHPスクリプトにデータを投稿していない理由についてこの質問があります。私が設定した電子メールリストの登録を解除するには、いくつかのデータを投稿するフォームで電子メールを購読していないユーザーを送信します。 HTML形式の電子メールデータを投稿していません

<html> 
<body> 
<div> 
    <p>This is a confirmation message to confirm that you unsubscribed from the sci-eng email list.</p> 
    <p>Click on the button below to confirm your unsubscription.</p> 
    <form id="unsubform"> 
     <div class="form-in"> 
      <input type="hidden" id="emailkey" name="emailkey" value="key"> 
      <input type="hidden" id="email" name="email" value="[email protected]"> 
      <button class="btn" id="submit" type="submit" formaction="http://redlinks.ca/sci-eng/db/unsubscribe.php" formmethod="post">Unsubscribe</button> 
     </div> 
    </form> 
    </div> 
    </body> 
</html> 

すると、フォームが POSTエドは、私が $_POST["email"]変数にデータがない場合、私が設定した「データなし」エラーを取得することですページ上。私は var_dump($_POST)を使用しようとしましたが、それはちょうど array(0) { }と返され、それは私のために働いていません。

最も混乱しているのは、電子メールから正確なHTMLをコピーして、空白のページに貼り付けるときです。私がサブミット/サブスクリプションをクリックすると、データがうまくポストされます。まったく同じスクリプトを持っていますが、formactionには/ dbがないという唯一の違いがあります。送信するページがどのように振る舞うかは、データのプロッパ配列を何も表示せずに示します。それが唯一の違いです。

違いがあれば、私はThunderbird for Windows 10をメールクライアントとして使用します。彼らは助けることができると考えて

誰でもいただければ幸いです:)

答えて

1

セキュリティ上の問題形式には対応していないとのメールの中にはお勧めしません。ほとんどの電子メールクライアントは、ユーザーに危険を警告したり、無効にしたりすることはできません。

アンサブスクライブを有効にするためのベストプラクティスは、リンクを使用することです。例えば、http://www.example.com/[email protected]のように、リンクの購読解除のための任意のrequierdパラメータを渡すことができます。

0

デフォルトの方法ではない、GET、POSTです。あなたは多分オンラインでホストこのフォームへのリンクは良いアイデアかもしれません

<form method="post" ...> 

を指定する必要があります。一部のメールクライアントはメールの表示をサポートしていません。セキュリティ上の問題(ウェブメールインターフェースなど)のために、クライアントが送信または投稿を拒否する可能性があります。 WITH

+0

ボタンの上に私はすでにattrib uteはformaction = "post"なので、おそらくこれは問題ではありません。 – RedXTech

+0

formactionは、メソッドではなく、フォームのアクション(= URL)を指定します。 – phi1010

+0

おっと、私は方法を意味しました。それはまた動作しません:/ – RedXTech

0

TRY:

<html> 
<body> 
<div> 
    <p>This is a confirmation message to confirm that you unsubscribed from the sci-eng email list.</p> 
    <p>Click on the button below to confirm your unsubscription.</p> 
    <form id="unsubform" action="http://redlinks.ca/sci-eng/db/unsubscribe.php" method="post"> 
     <div class="form-in"> 
      <input type="hidden" id="emailkey" name="emailkey" value="key"> 
      <input type="hidden" id="email" name="email" value="[email protected]"> 
      <button class="btn" id="submit" type="submit">Unsubscribe</button> 
     </div> 
    </form> 
    </div> 
    </body> 
</html> 
+0

ちょうどそれを試みた、残念ながら働かない:( – RedXTech

0

あなたはフォームの値をphpScriptに投稿する方法をPOSTメソッドを使用しないでください。次のコードを試してください。

<html> 
<body> 
<div> 
<p>This is a confirmation message to confirm that you unsubscribed 
    from the sci-eng email list.</p> 
<p>Click on the button below to confirm your unsubscription.</p> 
<form id="unsubform" method="POST" action="http://redlinks.ca/sci-eng/db/unsubscribe.php"> 
    <div class="form-in"> 
    <input type="hidden" id="emailkey" name="emailkey" value="key"> 
    <input type="hidden" id="email" name="email" value="[email protected]">   
    <button class="btn" id="submit" type="submit" >Unsubscribe</button> 
    </div> 
</form> 
</div> 
</body> 

0

確認のためのフォームを送信しないでください。これらの手順を試してみてください。

  1. を解除し、ストアデータベース内の特定のユーザーの電子メールへ

  2. 送信確認リンクを今すぐ

  3. http://domainurl/confirm.php?key=1533c67e5e70ae7439a9aa993d6a3393

    などのキーとキーを確認し、これらの電子メールのためのユニークな暗号化キーを生成します対応する電子メールと購読を解除し、データベースからキーを削除する

関連する問題