根据我在数据库中检查的输入数据,我需要帮助解决我的一个问题。如果值存在,我转发到另一页;否则出现错误。 输入任何值显示相同,我无法使用php代码查看echo。 单独测试代码工作正常,但是当与html代码集成时,它会失败。 有人可以识别代码中的任何错误吗?我该如何解决问题?
<!DOCTYPE html>
<?php
if (isset($_POST["submit"])) {
include("connect.php");
$message = NULL;
if(empty($_POST["empid"])) {
$u = FALSE;
$message .= "You have to enter your Employee ID !<br />";
}
else {
$u = intval(stripslashes(trim($_POST["empid"])));
}
if($u) {
$query = "SELECT Emp_ID FROM Data WHERE Emp_ID = '$u' ";
$result = @mysql_query($query);
$row = mysql_fetch_array($result);
if($row){
session_start();
header("Location: ModifyEmpInfo.php?empid=$u");
exit();
}
else {
$message .= "Employee ID provided does not exists. Try again!<br />";
}
}
}
$page_title = "FindEmpolyee";
if(empty($message)) {
echo "<font color=red>So sorry, this page is only for Test members !</font>";
}
else {
echo "<font color=red>";
echo $message;
echo "</font>";
}
?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="FindEmpInfo_files/form_init.js" id="form_init_script" data-name="">
</script><link href="FindEmpInfo_files/jquery-ui-1.css" type="text/css" rel="stylesheet"><link href="FindEmpInfo_files/normalize.css" type="text/css" rel="stylesheet"><script src="FindEmpInfo_files/jquery-1.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="FindEmpInfo_files/default.css" id="theme">
<title>
FindEmpolyee
</title>
<script src="FindEmpInfo_files/jquery-ui-1.js" type="text/javascript"></script><script src="FindEmpInfo_files/jquery_002.js" type="text/javascript"></script><script src="FindEmpInfo_files/jquery_004.js" type="text/javascript"></script><script src="FindEmpInfo_files/jquery.js" type="text/javascript"></script><script src="FindEmpInfo_files/jquery_003.js" type="text/javascript"></script><script src="FindEmpInfo_files/validation_data.js" type="text/javascript"></script><script src="FindEmpInfo_files/validation.js" type="text/javascript"></script></head>
<body>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" style="WebkitTransform: " id="docContainer" class="fb-toplabel fb-100-item-column selected-object" enctype="multipart/form-data" method="post" action="" novalidate="novalidate" data-form="preview">
<div style="BACKGROUND-COLOR: #d941d9; MIN-HEIGHT: 20px" id="fb-form-header1" class="fb-form-header">
<a id="fb-link-logo1" class="fb-link-logo" href="" target="_blank"><img style="display: none;" id="fb-logo1" class="fb-logo" title="Alternative text" alt="Alternative text" src="FindEmpInfo_files/image_default.png"></a>
</div>
<div id="section1" class="section">
<div id="column1" class="column ui-sortable">
<div style="FILTER: " id="item1" class="fb-item fb-100-item-column">
<div class="fb-header fb-item-alignment-center">
<h2 style="DISPLAY: inline; FONT-FAMILY: comic sans ms; COLOR: #249ee0; FONT-SIZE: 28px">
Find Employee Information
</h2>
</div>
</div>
<div id="item3" class="fb-item fb-100-item-column">
<div class="fb-grouplabel">
<label style="DISPLAY: inline" id="item3_label_0">
Enter Employee Id
</label>
</div>
<div class="fb-input-number">
<input id="item3_number_1" name="empid" min="0" max="999999999" step="1" data-hint="" autocomplete="off" required="" type="number" value="<?php if(isset($_POST["empid"])){echo $_POST["empid"];}?>">
</div>
</div>
</div>
</div>
<div id="fb-submit-button-div" class="fb-item-alignment-center">
<input style="" id="fb-submit-button" class="fb-button-special" value="Submit" type="submit" name="submit">
</div>
</form>
</body></html>
解决方案:问题是该名称未发送到php代码。
答案 0 :(得分:6)
在将任何输出发送到浏览器之前,您只能使用header
。
一旦PHP遇到你的<!doctype>
行,它就会开始向浏览器发送输出,从标题告诉浏览器它正在接收“text / html”。发送标头后,可能不再使用header
来修改它们。
您需要在重定向的PHP代码下面移动所有 HTML,包括doctype:
<?php
...
?>
<!DOCTYPE html>
<html><head>
...
答案 1 :(得分:0)
您需要在页面上的任何非PHP输出之前获得重定向代码。标题需要在内容之前发送。现在你的PHP之前有一个doctype
。
基本上,只需确保在调用header()
之前,您没有向浏览器输出任何内容(通过php外文本或echo文本或包含的内容)。
答案 2 :(得分:-1)
您需要做的就是将此代码置于最顶层(在其他任何事情之前!)
ob_start();
这将告诉服务器在完全创建和生成页面之前不发送页面。除了让您实时发送标题(一个非常漂亮的功能),它还包括一些性能优势。您可以在PHP manual找到更多相关信息。
此外,使用header(),您必须发送您希望浏览器重定向到的完整http:// URL,就像Javascript window.location一样。