我已经建立了一个微型博客,其中的ID喜欢编辑帖子。我通过将其ID传递到get变量中的edit脚本中来获取当前帖子。
这很好,因为我检查了它的设置是否正确,但是在提交表单后它消失了,并且我收到一条错误消息,提示注意:未定义的索引:路径中的post-id。”。
这是怎么回事?我试图通过几种不同的方法来弄清1-2小时,但是没有运气。
当前未对输入进行验证/清除,因为我只是对其进行测试,所以在输入正常工作时,我将确保输入的安全性。
用于编辑脚本的代码:
if(isset($_GET['post-id'])){
$post_id = $_GET['post-id'];
$sql = mysqli_query($link, "SELECT column FROM table WHERE id ='$post_id'");
if($sql){
$obj = mysqli_fetch_object($sql);
} else {
$msg = "Error: ".mysqli_error($link);
}
if($_SERVER['REQUEST_METHOD'] === 'POST'){
if(isset($_POST['edit'])){
$title = $_POST['title'];
$content = $_POST['content'];
$sql_update = mysqli_query($link, "UPDATE table SET title='$title', content='$content' WHERE id = '$post_id'");
if($sql_update){
$msg = "Your post is updated.";
} else {
$msg = "Couldnt update the post, error: ".mysqli_error($link);
}
}
}
}
以下是带有php变量作为输入值的HTML,用于预览帖子内容
<h1>Edit post</h1>
<p><?php echo $msg; ?></p>
<form action="edit-post.php" method="POST">
<input type="text" name="title" value="<?php echo $obj->title; ?>">
<textarea name="content" cols="30" rows="10"><?php echo $obj->content; ?>
</textarea>
<input type="submit" name="edit">
</form>