0

MSSQLデータベースへのPHPクエリがあります。次のようになります。

<?php 

    if (isset($_POST['form6'])) {
        $Title=$_POST['Title'];
        $Synopsis=$_POST['Synopsis'];
        $Article=$_POST['Article'];
        $DateUploaded= date("Y-m-d H:i:s");
        $Deleted=$_POST['Deleted'];

        $myServer = "**********";
        $myUser = "**********";
        $myPass = "******";
        $myDB = "*********";

        $dbhandle = mssql_connect($myServer, $myUser, $myPass) or die("Couldn't connect to SQL Server on $myServer"); 
        mssql_select_db($myDB) or die;

        $dbTABLE = "Tablename";
        $query_sql = sprintf("INSERT INTO %s (Title, Synopsis, Article, DateUploaded, Deleted)   VALUES ('%s','%s','%s','%s','%s')",
        addslashes($dbTABLE),
        addslashes($Title),
        addslashes($Synopsis),
        addslashes($Article),
        addslashes($DateUploaded),
        addslashes($Deleted));

        if ($result = mssql_query($query_sql, $dbhandle)) {
            print "Your information has been successfully added to the database.";
            header('Location: News.php');
        }
    }
?>

元々は別の.phpファイルにあり、フォームの「アクション」で実行されました。ただし、リダイレクトの量を減らすために、フォームと同じページに移動し、上部にifステートメントを含めて、form6という名前のフォームの投稿で実行できるようにしました。

これがフォームラインです。:

<FORM method="post" name="form6" id="form6" ENCTYPE="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">

ただし、これはページを再メッシュすることだけであり、データベースにデータが追加されることはなく、News.phpにリダイレクトするためのヘッダーにヒットすることもありません。

私も何もせずに試しましたが、同じ結果でした。私の質問は、なぜこれがphp関数/クエリにヒットするのですか?

4

4 に答える 4

3

<form次の行に実際に値が含まれていない要素をチェックしています。

if (isset($_POST['form6']))

実際のフォーム要素(入力)をチェックして、データが送信されているかどうかを確認する必要があります。

$_POST['Title']フォームからデータが送信されているかどうかを確認するために、などの実際の値を確認する必要があります。

フォーム名を含める場合は、フォーム内で次のような非表示フィールドを使用します。

<input type='hidden' name='form6' value='1'>
于 2012-09-05T11:10:23.333 に答える
1

次のようなフォームの送信ボタンが必要です。

<form method="post" name="form6" id="form6" ENCTYPE="multipart/form-data" action="">
    <input type="submit" name="formsubmit"/>
</form>

次に、PHPでチェックします

 if (isset($_POST['formsubmit']))
于 2012-09-05T11:12:14.987 に答える
1

特別な隠しフィールドを作成することを含まない別のアプローチ:

アクションURLに「form6」を追加します。

<FORM method="post" name="form6" id="form6" ENCTYPE="multipart/form-data" 
      action="<?php echo $_SERVER['PHP_SELF'].'?form6'; ?>">

また、フォーム名を確認する場合は、代わりにGETを使用しますが、他の値は引き続きPOST変数にあることに注意してください。

if (isset($_GET['form6'])) {
于 2012-09-05T11:19:23.927 に答える
0

<Form name条件が次のようにプロパティをチェックインするのはなぜですか

if (isset($_POST['form6']))

それを削除し、次のように確認します

if (isset($_POST['Title']))
于 2012-09-05T11:12:20.307 に答える