标题(位置)不起作用

时间:2013-07-28 16:26:39

标签: php html header

我知道要使标头(位置)工作,之前不能发送任何输出。问题是我已经多次检查了我的代码,但找不到实际发送的内容作为输出,从而阻止我的标题(位置)工作。

有人能发现错误吗?

    <div id="content">
        <h2>Lägg till</h2>
        <p>Fyll i fälten och klicka på Lägg till för att skapa en ny kontakt i listan.</p>
        <?php
            $editid = $_GET['contact_id'];
            $query = "SELECT *, Persons.p_id FROM Persons INNER JOIN Pictures ON (Pictures.p_id = Persons.p_id) WHERE Persons.p_id = " . $editid;
            $result = mysql_query($query);

            while ($row = mysql_fetch_array($result)) {
                $name = $row['name'];
                $address = $row['address'];
                $birthday = $row['birthday'];
                $picture = $row['source'];
                $p_id = $row['p_id'];

            }
        ?>  

        <form action="" id="addressForm" method="post">
            <ul>
                <li><label for="name"><strong>Namn</strong></label><input type="text" name="name" id="name"/></li>
                <li><label for="address"><strong>Adress</strong></label><input type="text" name="address" id="address"/></li>

                <li><label for="year"><strong>Födelsedag</strong></label>
                <select id="year" name="year">
                    <option value="2013">2013</option>
                    <option value="2012">2012</option>
                    <option value="2011">2011</option>
                    <option value="2010">2010</option>
                    <option value="2009">2009</option>
                    <option value="2008">2008</option>
                    <option value="2007">2007</option>
                    <option value="2006">2006</option>
                    <option value="2005">2005</option>
                    <option value="2004">2004</option>
                    <option value="2003">2003</option>
                    <option value="2002">2002</option>
                    <option value="2001">2001</option>
                    <option value="2000">2000</option>
                    <option value="1999">1999</option>
                    <option value="1998">1998</option>
                    <option value="1997">1997</option>
                    <option value="1996">1996</option>
                    <option value="1995">1995</option>
                    <option value="1994">1994</option>
                    <option value="1993">1993</option>
                    <option value="1992">1992</option>
                    <option value="1991">1991</option>
                    <option value="1990">1990</option>
                </select>
                <select name="month">
                    <option value='1'>1</option>
                    <option value='2'>2</option>
                    <option value='3'>3</option>
                    <option value='4'>4</option>
                    <option value='5'>5</option>
                    <option value='6'>6</option>
                    <option value='7'>7</option>
                    <option value='8'>8</option>
                    <option value='9'>9</option>
                    <option value='10'>10</option>
                    <option value='11'>11</option>
                    <option value='12'>12</option>
                </select>
                <select name="day">
                    <option value='1'>1</option>
                    <option value='2'>2</option>
                    <option value='3'>3</option>
                    <option value='4'>4</option>
                    <option value='5'>5</option>
                    <option value='6'>6</option>
                    <option value='7'>7</option>
                    <option value='8'>8</option>
                    <option value='9'>9</option>
                    <option value='10'>10</option>
                    <option value='11'>11</option>
                    <option value='12'>12</option>
                    <option value='13'>13</option>
                    <option value='14'>14</option>
                    <option value='15'>15</option>
                    <option value='16'>16</option>
                    <option value='17'>17</option>
                    <option value='18'>18</option>
                    <option value='19'>19</option>
                    <option value='20'>20</option>
                    <option value='21'>21</option>
                    <option value='22'>22</option>
                    <option value='23'>23</option>
                    <option value='24'>24</option>
                    <option value='25'>25</option>
                    <option value='26'>26</option>
                    <option value='27'>27</option>
                    <option value='28'>28</option>
                    <option value='29'>29</option>
                    <option value='30'>30</option>
                    <option value='31'>31</option>
                </select>
                </li>
                <li><label for="picture"><strong>Bild (URL)</strong></label><input type="text" name="picture" id="picture"/></li>   
                <li><input type="submit" id="submit" name="submit" value="Lägg till"/></li>
            </ul>
        </form>
        <?php
            if(isset ($_POST['submit']))
            {
                $editname = mysql_real_escape_string(htmlspecialchars($_POST['name']));
                $editaddress = mysql_real_escape_string(htmlspecialchars($_POST['address']));
                $editpicture = mysql_real_escape_string(htmlspecialchars($_POST['picture']));

                $year = $_POST['year'];
                $month = $_POST['month'];
                $day = $_POST['day'];

                if ($month < 10)
                {
                    $month = "0$month";
                }
                if ($day < 10)
                {
                    $day = "0$day";
                }
                $editbirthday = $year . "-" . $month . "-" . $day;

                if (!empty($name) && !empty($address)){
                    $update = "UPDATE Persons SET name = '$editname', address = '$editaddress', birthday = '$editbirthday' WHERE p_id = '$editid'";
                    $result = mysql_query($update);

                    $query = "SELECT * FROM Persons WHERE p_id = '$editid' LIMIT 1";
                    $result = mysql_query($query);
                    while ($row = mysql_fetch_array($result)) {
                        $p_id = $row['p_id'];

                        $update = "UPDATE Pictures SET source = '$editpicture' WHERE p_id = '$editid'";
                        $result = mysql_query($update);
                        header('Location: index.php');
                    }
                }
            }
        ?>
    </div>

4 个答案:

答案 0 :(得分:2)

请记住输出可能是:

  • <?php之前或?>之后的空白
  • UTF-8字节顺序标记
  • 错误消息或通知
  • printecho
  • <html>代码之前的原始<?php区域。

所以你要点击这个清单的最后一点......

答案 1 :(得分:0)

您必须将标题放在任何HTML输出上方。在这种情况下,您可以将它放在文档的顶部。所以只需将所有PHP放在最顶层。

将以下的整个if语句放到PHP文件的顶部。我不认为这会导致任何问题。

if(isset ($_POST['submit']))

我希望这会有所帮助

答案 2 :(得分:0)

你已经有了输出。在发送任何输出之前必须设置标题。

“请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。”

请参阅documentation。希望这会有所帮助。

答案 3 :(得分:-1)

  • 无输出
  • 没有空格
  • 保存没有BOM的文件

Encoding - Notepad++