0

メーリングリストに登録できるhtmlフォームがあります。フォームにはフォームの検証が含まれており、フォームが送信されると、データはMySQLを使用してデータベースに保存されます。

これがindex.htmlページのコードです。フォームは次のとおりです。

  <form id="subscribe-form" action="send.php" method="post">
    <p id="status"></p>
    <div>
      <label for="title">Title:</label>
      <select class="uniform" name="title" id="title">
        <option>Please Choose</option>
        <option>Mr</option>
        <option>Mrs</option>
        <option>Miss</option>
        <option>Ms</option>
      </select>
    </div>
    <div>
      <label for="firstName">First name:</label>
      <input type="text" id="firstName" name="firstName" />
    </div>
    <div>
      <label for="surname">Surname:</label>
      <input type="text" id="surname" name="surname" />
    </div>
    <div>
      <label for="email">Email:</label>
      <input type="text" id="email" name="email" />
    </div>
    <div>
      <label for="phone">Contact Number:</label>
      <input type="text" id="phone" name="phone" />
    </div>
    <div>
      <label for="title">How did you hear about us?</label>
      <select class="uniform" name="refer" id="refer">
        <option>Please Choose</option>
        <option>Google</option>
        <option>Yahoo</option>
        <option>Word of Mouth</option>
        <option>Others</option>
      </select>
    </div>
    <div>
      <input type="checkbox" name="news_updates" value="1" />
      I'd like to hear about the latest news and events updates</div>
    <div>
      <input class="button" type="submit" value=""/>
    </div>
  </form>

send.phpのコードは次のとおりです

<?php 

    include ('connection.php');

    $sql="INSERT INTO form_data (title,firstName, surname, email, phone, refer, news_updates)
    VALUES
    ('$_POST[title]', '$_POST[firstName]','$_POST[surname]','$_POST[email]','$_POST[phone]','$_POST[refer]','$_POST[news_updates]')";

    if (!mysql_query($sql, $connected))
      { 
        die('Error: ' . mysql_error());
      }

    mysql_close($connected);    
?>

別のhtml(unsubscribe.html)ページを作成して、電子メールアドレスを入力して購読を解除できるようにします。これにより、電子メールアドレスがデータベースに既に存在する対応する電子メールと一致し、MySqlデータベースから削除されます。私はこのチュートリアルがちょっと役に立ちました-http ://www.phpsuperblog.com/php/delete-records-from-mysql-database-with-html-form-and-php/

これは私のunsubscribe.htmlページのフォームです。

   <form  id="unsubscribe_form" action="delete.php" method="post">
  <div>
    <label for="email_remove">Email:</label>
    <input type="text" id="email_remove" name="email_remove" />
  </div>
  <div>
    <input name="delete" type="submit" id="delete" value="" class="unsubscribe_btn">
  </div>
</form>

しかし、購読解除フォームにmethod="post"と入力すると。subscribe / index.htmlのフォームのデータは、My Sqlに保存されず、代わりに空白として表示されます。だから私は多分2つの「ポスト」メソッドを持つことができないと思いますか?

誰かが私を正しい方向に導くことができれば、それは大いにありがたいことです。ありがとう。

4

1 に答える 1

0

あなたは学習段階にあると思います。そのため、投稿を受け取るページで POST メソッドが呼び出されていることを確認することをお勧めします。

例: あなたの subscribe.php には以下が必要です:

<input class = "button" type = "submit" value = "Subscribe" name = "subscribe" />

send.php で

あなたがしなければならない:

if(!isset($_POST['subscribe'])
{
 header('location: subscribe.html');
}

ページにはissetを使用する必要があります。

delete.php を表示していただければ、この投稿を編集してさらに支援できるかもしれませんが、これまでのところ... チェックが必要で、(1 ページでも) 好きなだけフォームを使用できますが、それらはすべて異なるID/名前を持っていることを確認してください。

delete.php スクリプトは次のようになります。

<?php
require ('connection.php');  // User require for important functions so that if not found, it throws fatal error
$email = $_POST['email_remove'];
// Check for isset POST
$query = "DELETE from form_data WHERE email = '".$email."'";
if(mysql_query($query)){ echo "deleted";} else{ echo "fail";} 
?>

あなたのdelete.phpは私には問題ないようです。

行 2 に以下を追加できます echo ""; print_r($_POST);

コメントに配列を投稿しますか?

于 2012-08-08T05:14:06.800 に答える