実現したいこと
【PHP】header()関数のLocation:にURLパラメータに$_GET['id]を設定したい。
発生している問題
header()関数でページ移動はできているが、$_GET['id']をURLパラメータとして設定できない。
###実際のコード
php
1コード 2if (isset($_POST['send'])){ 3 if (isset($_GET['id'])) { 4 header("Location: edit_indcate.php?id=$_GET[id]"); 5 exit(); 6 } 7}
html
1<input type="submit" name="send" value="確認">
試したこと
ページ移動条件を見たす前の状態で$_GET['id]に想定通りの値がセットされていることを確認した。
ページ移動後で$_GET['id']の値がNULLであることを確認した。
いくつかコードを調べ試したがいずれもURLパラメータがセットされなかった。
php
1パターン1 2header("Location: edit_indcate.php?id=$_GET[id]"); 3パターン2 4header("Location: edit_indcate.php?id={$_GET['id']}");
補足情報(FW/ツールのバージョンなど)
XAMMP環境
XAMMPではなくXAMPPです。
あと、提示のHTMLだけでは現象再現できません。
なるべくコピペで現象再現できるコードをご提示ください。
移動前
<?php
session_start();
//商品情報取得(単体)
if (isset($_GET['id'])) {
$get_objects = $db->prepare('SELECT * FROM purchase WHERE purchase.id=?');
$get_objects->execute(array($_GET['id']));
$get_object = $get_objects->fetch();
}
if (isset($_POST['send'])){
if (isset($_GET['id'])) {
header("Location: edit_indcate.php?id=".$_GET['id']);
exit();
}
}
echo "Location: edit_indcate.php?id=".$_GET['id'];
?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p>商品ID</p>
<p><?php echo $_GET['id'] ?></p>
<form action="edit_indcate.php" method="post">
<hr>
<h1>商品編集</h1>
<article class="">
<dt><label for="name">商品名</label></dt>
<dd><input id="name" type="text" name="purchase_name" value="<?php echo $get_object['purchase_name'] ?>"></dd>
<dt><label for="stock">在庫数</label></dt>
<dd><input id="stock" type="text" name="stock" value="<?php echo $get_object['stock'] ?>"></dd>
<dt><label for="price">値段</label></dt>
<dd><input id="price" type="text" name="price" value="<?php echo $get_object['price'] ?>"></dd>
<label for="item_text">商品説明</label>
<textarea id="item_text" name="item_text" rows="4" cols="40"><?php echo $get_object['item_text'] ?></textarea>
<br>
<input type="submit" name="send" value="確認">
</body>
</html>
移動後ページ
<?php
session_start();
echo "Location: edit_indcate.php?id=".$_GET['id'];
?>
<!DOCTYPE html>
<html lang="ja" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p><a href="index.php">トップページ</a></p>
<p>ユーザー名</p>
<p><?php echo $user['name'] ?></p>
<p>ユーザーID</p>
<p><?php echo $user['user_id'] ?></p>
<p><?php echo $user['login'] ?></p>
<hr>
<p>商品ID</p>
<p><?php echo $_GET['id'] ?></p>
<p>商品名</p>
<p><?php echo $_POST['purchase_name'] ?></p>
<p>値段</p>
<p><?php echo $_POST['price'] ?>円</p>
<p>出品者名</p>
<p><?php echo $_POST['name'] ?></p>
<p>在庫数</p>
<p><?php echo $_POST['stock']?></p>
<p>商品説明</p>
<p><?php echo $_POST['item_text'] ?></p>
<form class="" action="" method="post">
<input type="submit" name="send2" value="確認">
</form>
</body>
</body>
</html>
長くてごめんなさい><
質問を編集して追記してください
回答1件
あなたの回答
tips
プレビュー