PHP标头无法正常工作

时间:2014-12-14 18:48:10

标签: php

我有一个网页,它将从另一个页面使用POST方法获取数据,然后将数据存储到数据库中。完成后,我希望它返回到数据来源的页面。我用了header()。但它没有用。 这是我的代码:

<?php
$date = $_POST['date'];
$spent = $_POST['spent'];
$description = $_POST['description'];
$dbc = mysqli_connect('oniddb.cws.oregonstate.edu', 'chentao-db', 'BUU3UuwwGfwt7hxV', 'chentao-db') 
    or die(mysql_error());
$query = "SELECT Total FROM Expense  E ORDER BY E.Index DESC LIMIT 1";  
//get the total
$result = mysqli_query($dbc, $query) or die(mysql_error()); 
$total = mysqli_fetch_array($result, MYSQL_ASSOC);  
$total = $total['Total'] + $spent;  
$query = "INSERT INTO Expense (Date, Spent, Total, Description) VALUES ('$date', '$spent', '$total', '$description')";
$result = mysqli_query($dbc, $query) or die(mysql_error());
mysql_close($dbc);
header("Location: fetchData.php");

&GT;

它有什么问题?谢谢。

3 个答案:

答案 0 :(得分:0)

我想它会像这样工作

header("Location: http://".$_SERVER['HTTP_HOST']."/fetchData.php");

答案 1 :(得分:0)

尝试放置

 ob_start();

在您的文件顶部..

或者你可以尝试

 header('Location: '.$_SERVER['HTTP_REFRER']);

 die;
不要忘记最后放弃。

答案 2 :(得分:-1)

如果您的第一个查询未返回任何结果,则执行将在此行失败:

$total = $total['Total'] + $spent;

检查第一个查询是否有这样的结果:

if(isset($total['Total'])){
   $total = $total['Total'] + $spent;
}
else {
   $total = $spent;
}