在这个页面上,我有一个查询选择,然后显示一条消息,一个删除消息的查询和一个添加消息的查询。当查询删除消息并添加消息成功运行时,我将重定向回同一页面,以便用户可以看到upadate。因为我在执行此操作时需要传递一些变量,所以我使用标头重定向。
$ home_url ='http://'。 $ _SERVER ['HTTP_HOST']。 dirname($ _ SERVER ['PHP_SELF'])。 '/discussion.php?caseid='。 $ CASE_ID。 '和;做=' $ discussion_id。 '和; USER_ID =' $ USER_ID。 标题('Location:'。$ home_url);
我注意到我的第二个重定向(用于添加消息的重定向)给了我这个
警告:无法修改标头信息 - 已在第126行的C:\ xampp \ htdocs \ casekeeper \ discussion.php中发送的标头(输出从C:\ xampp \ htdocs \ casekeeper \ discussion.php:85开始)< / p>
我添加3-4条消息后。我可以不必在同一页面上重定向邮件标题,我是否错误地设置了脚本,或者我只是在这里完全错误的路径?
$query2 = "SELECT user_profile.first_name, user_profile.last_name, discussion_messages.message_text, discussion_messages.message_id FROM `user_profile` INNER JOIN discussion_messages ON (user_profile.user_id = discussion_messages.user_id) WHERE discussion_messages.discussion_id = '" . $_GET['did'] . "' ORDER BY discussion_messages.message_id DESC";
$data2 = mysqli_query($dbc, $query2);
while ($row2 = mysqli_fetch_array($data2)) {
$message_id = $row2['message_id'];
?>
<div class="row">
<div class="col-xs-4 col-md-2">
</div>
<div class="col-xs-8 col-md-10 discussion_title">
<?php echo '<h5 class="discussionname">' . $row2['first_name'] . ',' . $row2['last_name'] . '</h5>';?>
<?php echo '<h5 class="">' . $row2['message_text'] . '</h5>';?>
<h6 class="pull-right">Jan. 03 </h6>
<div>
<?php
if (isset($_POST['delete'])) {
// Grab the profile data from the POST
$messageid = mysqli_real_escape_string($dbc, trim($_POST['messageid']));
$queryd = "DELETE FROM `discussion_messages` WHERE message_id = '$messageid' ";
mysqli_query($dbc, $queryd)
or die("Unable to connect");
mysqli_close($dbc);
$home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/discussion.php?caseid=' . $case_id.'&did='.$discussion_id.'&user_id='.$user_id;
header('Location: ' . $home_url);
}
?>
<div>
<form method="post">
<?php echo '<input type="hidden" value="'.$row2['message_id'].'" name="messageid" />'; ?>
<input type="submit" name="delete" class="btn btn-info btn-sm" value="delete"/>
</form>
</div>
</div>
</div>
</div>
<?php
};
?>
<br>
<hr>
<?php
if (isset($_POST['submit'])) {
// Grab the profile data from the POST
$message = mysqli_real_escape_string($dbc, trim($_POST['message']));
$query3 = "INSERT INTO `discussion_messages`(`message_text`, `discussion_id`, `user_id`, `message_date_time`, `case_id`) VALUES ('$message','$discussion_id','$user_id', NOW(), '$case_id')";
mysqli_query($dbc, $query3)
or die("Unable to connect");
//Confirm success with the user
mysqli_close($dbc);
$update_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/discussion.php?caseid=' . $case_id.'&did='.$discussion_id.'&user_id='.$user_id;
header('Location: ' . $update_url);
};
?>
<div class="row col-md-10 col-md-offset-1">
<div class="well well-lg">
<form role="form" method="post">
<div class="form-group">
<label class="sr-only" for="fact_text">Fact Text</label>
<textarea name="message" class="form-control" rows="10" placeholder="Put note here"></textarea>
</div>
<br>
<input type="submit" value="Add to discussion" name="submit" class="btn btn-info btn-sm" />
</form>
</div>
</div>
答案 0 :(得分:0)
我认为您可以尝试一种简单的方法来重定向您的网页:
echo "<script>window.location.href = $update_url</script>";
或者
echo "<script>window.location.raplace('$update_url')</script>";
请记住,在发送任何实际输出之前必须调用header()。(Reference)