0

ウェブサイトの簡単なログインフォームを作成したい

    <form action="ContactFormHandler.php" method="post">
        <table>
            <tr>
                <td>
                    Username:
                </td>
                <td>
                    <input type="text" id="username" name="username" />
                </td>
            </tr>
            <tr>
                <td>
                    Password:
                </td>
                <td>
                    <input type="text" id="password" name="password" />
                </td>
            </tr>
            <tr>
                <td>
                    Your Email:
                </td>
                <td>
                    <input type="text" id="Email" name="Email" />
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align: center;">
                    <input type="submit" id="submit" value="Submit" />
                    <input type="reset" id="reset" value="Reset" />
                </td>
            </tr>
        </table>
    </form>
</body>

お問い合わせフォームハンドラーと書かれているところがわかりますか?フォームとフォームを処理するファイルを同じファイルにしたいのですが。2in1。

この連絡先ハンドラーを連絡先フォームの同じファイルに含めるにはどうすればよいですか?

<?php
$contactName = $_POST["ContactName"];
$contactEmail = $_POST["ContactEmail"];
$contactPassword = $_POST["ContactLeastFavoriteColor"];
$sql_connection = mysql_connect("localhost", "root", "root");
mysql_select_db("MyRadContactForm", $sql_connection);
$sql = "INSERT INTO MyRadContacts (
            ContactName,
            ContactEmail,
            ContactPassword,
            ContactDateCreated
        )
        VALUES (
            '$contactName',
            '$contactEmail',
            '$contactPassword',
            NOW()
        )";

mysql_query($sql, $sql_connection);
mysql_close($sql_connection);
?>
4

4 に答える 4

1

.phpすべてのコードを1つのファイルに含めるには、ファイルの拡張子を使用する必要があります。原因:

login.phpとの両方htmlを含めることができますphp

login.htmlコードを含めることはできますhtmlが、含めることはできませんphp

login.phpしたがって、ファイルを作成することで、すべてを一度に行うことができます。

<?php
$contactName = $_POST["ContactName"];
$contactEmail = $_POST["ContactEmail"];
$contactPassword = $_POST["ContactLeastFavoriteColor"];
$sql_connection = mysql_connect("localhost", "root", "root");
mysql_select_db("MyRadContactForm", $sql_connection);
$sql = "INSERT INTO MyRadContacts (
            ContactName,
            ContactEmail,
            ContactPassword,
            ContactDateCreated
        )
        VALUES (
            '$contactName',
            '$contactEmail',
            '$contactPassword',
            NOW()
        )";

mysql_query($sql, $sql_connection);
mysql_close($sql_connection);
?>


<!--your html code here -->

また、あなたのコードが安全であることを確認してください、あなたSQLinjectionが従うべきいくつかのヒントが欲しいならグーグル、そして私の悪い英語をお詫びします

于 2012-11-24T10:38:05.517 に答える
1

送信ボタンに名前を付けて、リクエストに含まれているかどうかを確認できるようにします。そうでない場合は、フォームを表示します。リクエストがある場合は、フォームから呼び出されます。データをDBに保存します。

多かれ少なかれあなたのコードはこのように見えるはずです:

<?php

if( isset( $_POST['submit'] ) ) {

   $contactName = $_POST["ContactName"];
   $contactEmail = $_POST["ContactEmail"];
   $contactPassword = $_POST["ContactLeastFavoriteColor"];
   $sql_connection = mysql_connect("localhost", "root", "root");
   mysql_select_db("MyRadContactForm", $sql_connection);
   $sql = "INSERT INTO MyRadContacts (
               ContactName,
               ContactEmail,
               ContactPassword,
               ContactDateCreated
           )
           VALUES (
               '$contactName',
               '$contactEmail',
               '$contactPassword',
               NOW()
           )";

   mysql_query($sql, $sql_connection);
   mysql_close($sql_connection);

} else {

?>

   <form action="ContactFormHandler.php" method="post">
     <table>
         <tr>
             <td>Username:</td>
             <td><input type="text" id="username" name="username" /></td>
         </tr>
         <tr>
             <td>Password:</td>
             <td><input type="text" id="password" name="password" /></td>
         </tr>
         <tr>
             <td>Your Email:</td>
             <td><input type="text" id="Email" name="Email" /></td>
         </tr>
         <tr>
             <td colspan="2" style="text-align: center;">
                 <input name="submit" type="submit" id="submit" value="Submit" />
                 <input type="reset" id="reset" value="Reset" />
             </td>
         </tr>
     </table>
   </form>

<?php

} // end of else

?>

あなたはまだSQLインジェクションを受け入れており、コードはエラー(空のフィールドなどのフォームからのデータの欠如やコードの失敗)を処理していないようですが、それはあなたの質問の範囲外です。

于 2012-11-24T11:27:34.180 に答える
0

このアプローチを使用する

フォーム送信を確認する

<?php
if($_POST['login_submit'] ==1){
    //process your logic here
}
?>

フォームを変更する

<form action="" method="post">
<input type="hidden" name="login_submit" value="1">
....
.....
</form>
于 2012-11-24T10:37:28.717 に答える
0

フォームを独自のページに送信する

actionフォームをに変更して、action="<?php echo $_SERVER['PHP_SELF'] ?>"フォームを同じページに送信するようにします

ページ内のフォームを処理します

PHPコードをチェックして、フォームが送信されたかどうかを確認します。

if (isset($_POST['submit'])) {
    [your processing code here]
} else {
    [display form]
}

name="submit"(必ず送信ボタンに追加してください)

于 2012-11-24T10:37:46.093 に答える