标题位置在我的php代码中不起作用

标题位置在我的php代码中不起作用,php,header,Php,Header,我有这个代码,为什么我的标题位置不工作? 这是在我的控制面板中更新、编辑和删除一些页面的一种形式…我在form.php的同一文件夹中有一个index.php文件…有什么帮助吗?()我试图在编辑和删除之后放置标题…但仍然转到表单页面而不是索引 <?php include "../../includes/site_includes.php"; //send if ((isset($_POST["send"])) && ($_POST["send"] == 1)) { $

我有这个代码,为什么我的标题位置不工作? 这是在我的控制面板中更新、编辑和删除一些页面的一种形式…我在form.php的同一文件夹中有一个index.php文件…有什么帮助吗?()我试图在编辑和删除之后放置标题…但仍然转到表单页面而不是索引

<?php
include "../../includes/site_includes.php";
//send
if ((isset($_POST["send"])) && ($_POST["send"] == 1)) {
    $pageid = $_POST["page_id"];
    $pagetitle = $_POST["page_title"];
    $nameinmenu = $_POST["page_menu_name"];
    $nameinurl = $_POST["page_name_url"];
    $link = $_POST["page_link"];
    $picture = $_POST["page_pic"];
    $desc = $_POST["page_desc"];
    $content = $_POST["page_content"];
}
if ((isset($_POST["act"])) && ($_POST["act"] == "add")) {
    $sql = insertpage();
    if ($result = $mysqli->prepare($sql)) {
        $result->bind_param("sssssss", $pagetitle, $nameinmenu, $nameinurl, $link, $picture, $desc, $content);
        $result->execute();
        $result->store_result();
        $rows = $result->num_rows;
    }
}
////edit
if ((isset($_GET["act"])) && ($_GET["act"] == "edit")) {
    $sql = getfrompages();
    if ($result = $mysqli->prepare($sql)) {
        $rekza = $_GET["id"];
        $result->bind_param("i", $rekza);
        $result->execute();
        $result->store_result();
        $rowsZ = $result->num_rows;
    }
    if ($rowsZ > 0) {
        $row = fetch($result);
        $pageid = $row[0]["page_id"];
        $pagetitle = $row[0]["page_title"];
        $nameinmenu = $row[0]["page_menu_name"];
        $nameinurl = $row[0]["page_name_url"];
        $link = $row[0]["page_link"];
        $picture = $row[0]["page_pic"];
        $desc = $row[0]["page_desc"];
        $content = $row[0]["page_content"];
    }
}
if ((isset($_GET["act"])) && ($_GET["act"] == "delete")) {
    $thedelid = $_GET["id"];
    $sql2 = delpage();
    if ($result2 = $mysqli->prepare($sql2)) {
        $result2->bind_param("i", $thedelid);
        $result2->execute();
        $result2->store_result();
        $rowsZ2 = $result2->num_rows;
    }
}
header('location: index.php');
exit();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> pages add </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
 </head>

 <body>
<form method="post" action="">
        <table>
            <tr>
                <td style="font-weight:bold;">title</td>
                <td><input type="text" name="page_title" value="<?=$pagetitle?>" /></td>
            </tr>
            <tr>
                <td style="font-weight:bold;">name in menu</td>
                <td><input type="text" name="page_menu_name" value="<?=$nameinmenu?>" /></td>
            </tr>
            <tr>
                <td style="font-weight:bold;">name in url</td>
                <td><input type="text" name="page_name_url" value="<?=$nameinurl?>" /></td>
            </tr>
            <tr>
                <td style="font-weight:bold;">link</td>
                <td><input type="text" name="page_link" value="<?=$link?>" /></td>
            </tr>
            <tr>
                <td style="font-weight:bold;">picture</td>
                <td><input type="text" name="page_pic" value="<?=$picture?>" /></td>
            </tr>
            <tr>
                <td style="font-weight:bold;">description</td>
                <td><textarea name="page_desc"><?=$desc?></textarea></td>
            </tr>
            <tr>
                <td style="font-weight:bold;">content</td>
                <td><textarea name="page_content"><?=$content?></textarea></td>
            </tr>
            <tr>
                <td colspan="2">
                <input type="hidden" name="send" value="1" />
                <input type="hidden" name="act" value="<?=$_GET["act"]?>" />
                <input type="hidden" name="page_id" value="<?=$pageid?>" />
                <input type="submit" value="add" /></td>
            </tr>
        </table>
</form>
 </body>
</html>

页面添加
标题

这是因为您有一个输出:

?>
<?php

尝试添加
ob_start()位于代码顶部,即
包含
语句之前。

应该是
位置
而不是
位置

header('Location: index.php');

我使用下面的代码,它对我来说很好

if(!isset($_SESSION['user'])) {
       ob_start();
       header("Location: https://sitename.com/login.php");
       exit();
} else { 

// my further code 

}
函数ob_start()将打开输出缓冲。当输出缓冲处于活动状态时,不会从脚本发送任何输出(头除外),而是将输出存储在内部缓冲区中。因此,浏览器将不会收到任何输出,标头将正常工作。此外,我们应该确保在代码顶部使用header()。

只需使用
ob_start()在包含函数之前,它将帮助删除空格

正确:标题(“位置:home.php”)标题(“位置:home.php”)

不正确:标题(“Location:home.php”)


删除位置和之间的空格:-->标题(“位置(删除空格):home.php”)

我花了一些时间才弄明白:我的php文件是用UTF-8编码的。BOM表阻止了标题位置正常工作。在Notepad++中,我将文件编码设置为“UTF-8无BOM”,问题就解决了。

我在本地主机和共享服务器上有相同的应用程序。在我的本地主机上,重定向工作正常,而在此共享服务器上则没有。我检查了phpinfo,发现了原因:

在我的本地主机上,我有:


因此,我要求系统管理员增加该值,在他增加该值后,一切正常。

在我的例子中,我使用函数“ob_start()”创建了新的配置文件,并将其添加到.gitignore文件中

ob_start(); 
应添加到第1行中。 就像下面的例子

<?php
ob_start(); // needs to be added here
?>
<!DOCTYPE html>
<html lang="en">
// your code goes here
</html>
<?php
if(isset($_POST['submit']))
{ 
//code to save data in db goes here
}
header('location:index.php?msg=sav'); 
?>

//你的密码在这里
将其添加到html下面也不起作用。如下

<!DOCTYPE html>
<html lang="en">
// your code goes here
</html>
<?php
ob_start(); // it doesnt work even if you add here
if(isset($_POST['submit']))
{ 
//code to save data in db goes here
}
header('location:index.php?msg=sav'); 
?>

//你的密码在这里

创建config.php并将代码放入它将工作的地方

我使用这个

header("Location:comments.php");

它解决了..

对我来说,只需添加ob_start();在文件的开头。

检查是否启用了以下功能


bz、mbstring、intl、ioncube_加载器和Json扩展

在HTML代码中,您正在使用表单并将操作设置为“”,据我所知,该操作优先于表单中的标题

我发现在表单中使用action元素而不是header位置是一种选择。我假设您希望链接上有不同的选项,因此变量

<?php $nextLink = "index.php"; ?>
<form method="post" action="<?php echo $nextLink; ?>">


在我的例子中,后面是额外的空格?>


删除了空格,瞧,它成功了。

你确定它会被执行吗?条件可能不是真的。定义“不工作”。代码是否正在执行?提供一个再现问题的最小测试用例。header()调用位于if()块中,因此它可能根本不起作用。不起作用我的意思是…没有重定向到index.php。。。仍然在同一个URL中我不明白你的意思…你能解释一下吗?你在哪里用
?>@MihaiIorga打断了你的PHP代码:
?>\n如果
,你可能不会输入最后一个
。。移动标题,就像在
include./../includes/site_includes.php”中有额外的空间一样检查该文件。嗯,我不认为它有任何影响……但我通过添加ob_start()解决了它;男人;)大家好,欢迎来到StackOverflow。请花些时间阅读帮助页面,特别是指定的部分。您可能还想了解[“最小、完整和可验证的示例”]()。它是有效的,但是您能解释一下为什么
ob_start()
解决了这个问题吗?如果可以的话,我会投你一票。怪物组合破坏者!!
<?php $nextLink = "index.php"; ?>
<form method="post" action="<?php echo $nextLink; ?>">