私の "update.php"ファイルに問題があります。私の "update page"に行くのではなく、私のボタンが "index.php"というヘッダ位置に来ます。 これは私ですupdate.phpファイル:データベースを他のページにリダイレクトする
<?php
require 'database.php';
$id = null;
if (!empty($_GET['ID'])) {
$id = $_REQUEST['ID'];
}
if (null==$id){
header("Location:../index.php");
}
if (!empty($_POST)){
$codeError = null;
//post values
$code = $_POST['codeVal'];
//validate input
$valid = true;
if (empty($code)){
$codeError = 'Please Enter Code';
$valid = false;
}
// update data
if ($valid){
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE production SET CODE = ? WHERE ID = ?";
$q = $pdo->prepare($sql);
$q->execute(array($code,$id));
Database::disconnect();
header('location:../index.php');
}
}else{
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM production WHERE ID = ?";
$q = $pdo->prepare($sql);
$q->execute(array($id));
$data = $q->fetch(PDO::FETCH_ASSOC);
$code = $data['CODE'];
Database::disconnect();
}
?>
私の他のページはこれです。私は、代わりに、私はファイルをupdate.phpをするために向かうことを期待したが、それは何が起こっているかではありません、私のreport.phpファイルにUPDATEボタンを押したとき、これはだから私のreport.phpファイル
<?php
include 'database.php';
$pdo = Database::connect();
$sql = 'SELECT * FROM production ORDER BY ID DESC';
foreach ($pdo->query($sql) as $row) {
echo '<tr>';
echo '<td style="text-align:center" width="13%">'. $row['CODE'] . '</td>';
echo '<td style="text-align:center" width=18%>';
echo '<a class="btn btn-success btn-sm" href="update.php?id='.$row['ID'].'">Update</a>';
echo ' ';
echo '<a class="btn btn-danger btn-sm" href="delete.php?id='.$row['ID'].'">Delete</a>';
echo '</td>';
echo '</tr>';
}
Database::disconnect();
?>
です私のindex.phpファイルにリダイレクトされています。私はどうしたらいいですか?
そして、この1つは私のフォームは
<div class="form-group form-group-sm">
<label for="codeVal" class="col-sm-2 control-label" style="text-align:right">Order Code</label>
<div class="col-sm-2">
<input type="text" id="codeVal" name="codeVal" class="form-control input-sm"style="text-align:center" value="
<?php echo !empty($code)?$code:'';?>">
</div>
</div>
{if(null == $ id){ header( "Location:../ index.php");を変更してみてください。 } 'to'(空($ id)){ ヘッダー( "場所:../index.php"); } ' – hungrykoala
ここに問題があります。これはif($ valid)'が実行され、そこでindex.phpにリダイレクトされます。その行を削除すると、update.phpにロードされてそこにとどまります。 – Sand
あなたは私が知っていることを学んでいますが、ここで問題を見つけたら、続行する前にコードのセキュリティを見てください。 $ _GETは安全ではありません。代わりにあなたのアプリケーション/データ/セキュリティのためのより安全なフィルタリングを使用して見てくださいfilter_input() – Chris