1
フォームに2つのボタンがあります。 1つはレコードを挿入し、もう1つはレコードを挿入して2ページに移動します。私のPHP知識はあまり良くありませんので、おそらく簡単な間違いです。ここに私のコードです - 事前に感謝!PHP - レコードを挿入して別のページに移動する2つのボタン
<?php
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO content (title) VALUES (%s)",
GetSQLValueString($_POST['title'], "text"));
mysql_select_db($database_sql, $sql);
$Result1 = mysql_query($insertSQL, $sql) or die(mysql_error());
$insertGoTo = "page1.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
$editFormAction2 = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction2 .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO content (title) VALUES (%s)",
GetSQLValueString($_POST['title'], "text"));
mysql_select_db($database_sql, $sql);
$Result1 = mysql_query($insertSQL, $sql) or die(mysql_error());
$insertGoTo = "page2.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>
<html>
<body>
<form name="form" method="POST" id="form">
<input name="title" type="text" placeholder="Page Title"/>
<input type="submit" class="submit" value="Next Step" onClick="this.form.action='<?php echo $editFormAction; ?>'; this.form.submit()">
<input type="submit" class="save" value="Save & Exit" onClick="this.form.action='<?php echo $editFormAction2 ; ?>'; this.form.submit()">
</form>
</body>
</html>
PDOまたはMySQLiをを使用する代わりに、 'mysqlの_ *()'拡張子を使用しないでください。どうして? [note](http://php.net/manual/en/function.mysql-connect.php)赤いボックスは、現在約4.5年前から存在しています。 – Xorifelse
@ Xorifelseが言ったことと、あなたの$ editFromActionと$ editFormAction2は両方とも "_ _SERVER ['PHP_SELF']を指し示しているので、同じPHPファイルにフォームを送信しています。あなたのフォームに別の隠れた入力フィールドを追加し、onClickがそのフィールドの値を操作し、その入力フィールドに基づいてリダイレクトを行うことです。 (すべてのユーザー入力を検証することを忘れないでください、常に:) – flynorc