Php 标题未发送,尽管之前它正在工作
在发送submit按钮后,使用PHP头方法重定向到另一个页面有一个问题,尽管以前它工作正常。问题是在添加了其他表单字段后开始的 尝试查找任何空白,将代码删除到以前的工作状态证明是徒劳的Php 标题未发送,尽管之前它正在工作,php,html,header,Php,Html,Header,在发送submit按钮后,使用PHP头方法重定向到另一个页面有一个问题,尽管以前它工作正常。问题是在添加了其他表单字段后开始的 尝试查找任何空白,将代码删除到以前的工作状态证明是徒劳的 <?php session_start(); $hostname_mysql = "localhost"; $database_mysql = "smartsaf_angkasa"; $username = "root"; $password = "";
<?php
session_start();
$hostname_mysql = "localhost";
$database_mysql = "smartsaf_angkasa";
$username = "root";
$password = "";
$mysql = mysql_connect($hostname_mysql, $username, $password);
$errors = array();
//mysql_select_db( $database_mysql, $mysql);
if(!$mysql)
echo "".mysql_error();
else{
//echo "<h2>Connected to database successfully ".mysql_error()."</h2>";
mysql_select_db($database_mysql);
}
if ($_SERVER['REQUEST_METHOD'] != 'POST')
{
?>
<div>
<form class="main-container" action="admin-pakej.php" method="post" enctype="multipart/form-data" >
<div class="input-form"><label for="desc" name="lbldesc">Description</label></div><div class="input-form-right"><input type="text" name="description" size="60" required ></div>
<div class="clr"></div>
<div class="input-form"><label for="Market Price" name="lblmarketprice">Market Price</label></div><div class="input-form-right"><input type="text" name="marketprice" id="marketprice" size="20" required ></div>
<div class="clr"></div>
<div class="input-form"><label for="Membership No" name="lblmemberno">Membership Number</label></div><div class="input-form-right"><input type="text" name="membershipno" id="membershipno" size="20" onblur="change()" ><div id="disabled-text-box"><input type="text" name="membersname" size="35" disabled></div></div>
<div class="clr"></div>
<div class="input-form"><label for="Member Price" name="lblmemberprice">Members Price</label></div><div class="input-form-right"><input type="text" name="membersprice" id="membersprice" size="20" required ></div>
<div class="clr"></div>
<div class="input-form"><label for="Point PV" name="lblpointpv">PV Points</label></div><div class="input-form-right"><input type="text" name="pointpv" id="pointpv" size="20" required ></div>
<div class="clr"></div>
<div class="input-form"><label for="Package Type" name="lblpackagetype">Package Type</label></div><div class="input-form-right"><select name="package" id="package"><option value="gold">Gold</option><option value="silver">Silver</option><option value="bronze">Bronze</option></select></div>
<div class="clr"></div>
<div class="input-form"><label for="Product Page" name="lblproductpage">Product Page HTML File Name</label></div><div class="input-form-right"><input type="text" id="productpage" name="productpage" size="30"></div>
<div class="clr"></div>
<div class="input-form"><label for="Product Pics" name="lblproductpics">Product Pics</label></div><div class="clr"></div>
<div class="input-form-right"></div><div class="input-form-right"><input type="file" id="upload" name="upload" onchange="readURL(this)"></input><img id="blah" class="container" src="#" alt="preview image" /></div>
<div class="clr"></div>
<div class="input-form"></div><div class="button"><button type="submit" id="submit" name="submit">Submit</button></div>
</form>
</div>
<div class="clr"></div>
<div><p>
<!--<ul>-->
<?php
}
else
{
$desc_product = $_POST['description'];
$membershipno = $_POST['membershipno'];
$product_pics = $_FILES['upload']['name'];
$market_price = $_POST['marketprice'];
$membersprice = $_POST['membersprice'];
$package_type = $_POST['package'];
$pv_points = $_POST['pointpv'];
$productpage = $_POST['productpage'];
if (empty($desc_product) || empty($product_pics) || empty($membershipno) || empty($membersprice) || empty($pv_points) || empty($productpage))
{
array_push($errors, "Fields are empty");
}
else
{
$query = "INSERT INTO product_final (desc, ext_member_id, productpics, marketprice, memberprice, packagetype, pv_points, productpage, category) VALUES
('$desc_product', '$membershipno', '$product_pics', '$market_price', '$membersprice', '$package_type', '$pv_points', '$productpage', '')'";
$result = mysql_query($query, $mysql);
if ($result)
{
if (!headers_sent())
{
header("location:record_page.php");
exit;
}
else
{
echo "Headers already sent";
exit;
}
}
//else
//echo "".mysql_error($mysql);
}
}
?>
<!--</ul>--></p>
</div>
</body>
<script type="text/javascript">
function readURL(input)
{
if (input.files && input.files[0])
{
var reader = new FileReader();
reader.onload = function(e)
{
$("#blah")
.attr("src", e.target.result)
.width(300)
.height(250);
};
reader.readAsDataURL(input.files[0]);
}
}
function getpicPath()
{
document.getElementById("imgs").innerHTML;
}
</script>
</html>
描述
市场价格
会员编号
会员价格
PV点
包装类型金银青铜
产品页面HTML文件名
产品图片
提交
我想你应该试试
if(mysql_affeted_rows($result)==1)
{
if (!headers_sent())
{
header("location:record_page.php");
}
else
{
echo "Headers already sent";
exit;
}
}
我不认为您需要使用exit()。
谢谢。您遇到了这个问题,基本上是因为在您尝试发送标题之前包含了一些HTML代码(仅在发送标题之前)。
表单代码最初只发送头,因此以后无法发送http头。
使用输出缓冲,即在脚本的最开始,放入ob_start(),最后放入ob_flush()。这使PHP能够首先等待所有输出被收集,确定呈现它的顺序,然后输出它
mysql.*
现在已弃用并删除库。请切换到PHP7
以及mysqli.*
或PDO
库。还可以使用这些库的prepared statements功能来防止您的代码被SQL注入。我需要使用版本5,因为它当前应用于服务器。目前的方向是我们不升级。但无论如何,我会调查准备好的声明。对我来说是一件新鲜事。刚刚开始返回我一直错过的内容。退出
或死亡
必须在头()后重新定向。因为header()。这就是为什么如果你不在它后面添加exit
或die
,它会造成一个很大的安全漏洞。谢谢你,rishabh。现在我做了几次检查,发现真正搞砸的是我发送的表单的内容。如果我从表单头中删除enctype=“multipart/form data”,我可以获得除上传文件之外的所有数据。如果我再次将其放回,则单击“提交”按钮后不会发送任何数据。为什么会发生这种情况?enctype=“multipart/form data”用于上传文件,当文件被删除时,不会上传文件。我建议添加ob_start();在PHP代码的最开始部分。