このページを開くと、いくつかのセッション変数を読み込んで新しい変数に割り当て、設定を解除するだけです。これを行うと、別のページに持ち越されなくなります。これはすべてうまくいきます。
ただし、同じページにフォーム付きの送信ボタンもあります。何らかの理由で、送信ボタンを押すと、必要なクエリが完了せず、セッションチェックコードを再利用するだけです。これは、セッション変数が設定されていないため、それらの検証に失敗します。
このセッション検証を再実行し、送信ボタンコードを実行しないのはなぜですか/
これはページの最上部にあるセッション検証であり、何らかの理由で送信ボタンのクリック時に再実行されるコードです。
$ahid="";
$bid="";
$np="";
$nt="";
if (isset($_SESSION['ahid'])) {
$ahid = $_SESSION['ahid'];
unset($_SESSION['ahid']);
if (isset($_SESSION['bid'])) {
$bid = $_SESSION['bid'];
unset($_SESSION['bid']);
if (isset($_SESSION['nt'])) {
$nt = $_SESSION['nt'];
unset($_SESSION['nt']);
if (isset($_SESSION['np'])) {
$np = $_SESSION['np'];
unset($_SESSION['np']);
}else{
header('Location: builders.php?hi=1');
exit();
}
}else{
header('Location: builders.php?hi=2');
exit();
}
}else{
header('Location: builders.php?hi=3');
exit();
}
}else{
header('Location: builders.php?hi=4');
exit();
}
これは実行する必要がある送信ボタンコードですが、代わりに触れられていません
if(isset($_POST['build_chk_finish'])){
$construction_insert = mysql_query("INSERT INTO construction (user_id, estate_id, addon_h_id, builder_id, con_total_price, con_total_time, con_time_started, con_time_ending, con_completed)
VALUES('$user_id', '$estate_id', '$ahid', '$bid', '$np', '$nt', now(), '$future_date', '0')", $general)
or die (mysql_error());
$construction_id = mysql_insert_id();
$con_error="";
$con_error = "Congratualtions! Your Builder has been hired and has begun work.";
$_SESSION['error'] = $con_error;
header("Location: houses.php");
}
追加情報のために、送信ボタンを押すと、最初のセッションの検証に失敗しますbuilders.php?hi=4
。
これが送信ボタンです
<input name="build_chk_finish" type="submit" class="build_chk_finish" id="bc_submit"/>