2

我从这里重定向

<a href="update_post.php?updid=<?php echo $_SESSION['id']; ?>">Update</a>

和显示错误的代码是

<?php include('../includes/connections.php'); ?>
<?php
try{
if(isset($_POST['submit'])){
$title = $_POST['title'];
$post = $_POST['post'];
$dates = $_POST['date'];
$sql = 'UPDATE `blog`.`contents` SET `titles` = :title, `posts` = :post, `dates` = :date    WHERE `contents`.`id` = :idendity';
$result = $pdo->prepare($sql);
$result->bindValue(':title',$title);
$result->bindValue(':post',$post);
$result->bindValue(':date',$dates);
$result->bindValue(':idendity',$_GET['updid']);
$result->execute();
$count = $result->rowCount();
    if($count == 1){
        header('location: index.php');
    }else{
        echo 'Problem Occoured';
    }
}
}
catch(PDOException $e){
echo "Problem: " .$e->getMessage();
}
?>

显示的错误:-注意:未定义的索引:第 13 行 C:\xampp\htdocs\myblog\admin\update_post.php 中的 updid 发生问题

<form action="update_post.php" method="post">
    Title:<br/>
    <input style="height:40px;" size="110" type="text" name="title" /><br />
    Post:<br />
    <textarea rows="30" cols="85"  name="post" ></textarea><br />
    Date:<br />
    <input type="text" name="date" /><br/ >
    <input type="submit" name="submit" />
</form>
4

1 回答 1

1

是的,通过表单提交,这就是我检查是否提交 isset 的原因。

您应该$_SESSION['id']在表单的隐藏字段中包含:

<input type="hidden" name="updid" value="<?php echo $_SESSION['id']; ?>" />

...并更改:

$result->bindValue(':idendity',$_GET['updid']);

... 进入:

$result->bindValue(':idendity',$_POST['updid']);

编辑

首先,你上面的问题有错误。如评论中所述,如果您单击链接,则不可能isset($_POST['submit'])返回。true

$_POSTpost当您通过提交该部分中的表单访问页面时,将具有值method

至于$_GET,其值取自 URL 的查询字符串:

http://yourpage.php?foo=bar&bar=foo

bar是的价值$_GET['foo']

foo是的价值$_GET['bar']

I've searched for basic $_POST/$_GET explanation but unable to find one :-D

于 2013-02-03T18:15:04.847 回答