我尝试 运行 我的 "form" 但它停留在第二页空白页并且没有将数据传递到我的第三页
I try to run my "form" but it stuck at the second page with a blank page and did not pass the data to my third page
这是我的 php 编码。我从我的模板表单中得到了这个。
最奇怪的是,当我尝试从我的模板 运行 编码时,我得到了输出并检索了数据,但是当我尝试 运行 将编码转换为我的项目分配结果是空白页。
<?php
include"conn.php";
$conn = connect();
$db = connectdb();
$wardID =$_REQUEST["wardID"];
$RequestName = $_REQUEST["RequestName"];
$Department =$_REQUEST["Department"];
$Position = $_REQUEST["Position"];
$Date = $_REQUEST["Date"];
$TypeOfRequest = $_REQUEST["TypeOfRequest"];
$PleaseSpecify = $_REQUEST["PleaseSpecify"];
$DateRequire = $_REQUEST["DateRequire"];
$DateReturn = $_REQUEST["DateReturn"];
mysqli_select_db($conn,"misadmin") or die (mysqli_connect_error()."\n");
//select from the table student
$query = "select * from misform" ;
//to return the query that has been request from the database
$result = $conn ->query($query);
//Fetch a result row as an associative array
$row=mysqli_fetch_assoc($result);
//Select a MySQL database
mysqli_select_db($conn,"misadmin")or die (mysqli_connect_error()."\n");
$insert ="insert into misform(WardID,RequestName,Department,Postion,Date,TypeOfRequest,PleaseSpecify,DateRequire,DateReturn) values ('$wardID','$RequestName','$Department','$Position','$Date','$TypeOfRequest','$PleaseSpecify','$DateRequire','$DateReturn')";
$rowinsert =$conn ->multi_query($insert) or die (mysqli_connect_error()."\n");
header("Location:requestform3.php");
?>
这是我的连接
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$host_user="localhost";
$user_user="root";
$password_user="";
function connect (){
$conn =mysqli_connect("localhost","root","") or die (mysqli_connect_error()."/n");
return $conn;
}
function connectdb(){
$conndb="misadmin";
return $conndb;
}
?>
</body>
</html>
这是我的 html
<body>
<form id="requestform" action="requestform2.php" method="post" >
<div><center><table border = "0" cellspacing="0" cellpadding"4"><tr><td>
<fieldset>
<legend>Request Form</legend>
<div id="errorDiv"></div>
<table><tr>
<td><label for="wardID">Ward ID:*</label></td>
<td><input type="text" id="wardID" name="wardID">
<span class="errorFeedback errorSpan" id="WardIDError"> Ward ID is required</span></td>
</tr>
<tr>
<td><label for="RequestName">Request Name:</label></td>
<td><input type="text" id="RequestName" name="RequestName"></td>
</tr>
<tr>
<td><label for="Department">Department:</label></td>
<td><input type="text" id="Department" name="Department"></td>
</tr>
<tr>
<td><label for="Position">Position:</label></td>
<td><input type="text"id="Position" name="Position"></td>
</tr>
<tr>
<td><label for="Date">Date:</label></td>
<td><input type="date" id="Date" name="Date"></td>
</tr>
<tr>
<td><label for="request">Type of request:* </label></td>
<td><select name="TypeOfRequest" id="request">
<option></option>
<option>Hardware</option>
<option>Software</option>
<option>Network</option>
<option>Others</option></select>
<span class="errorFeedback errorSpan" id="requestError">Please choose one</span>
</td></tr>
<tr>
<td></td>
<td><textarea name="PleaseSpecify" id="specify"> Please Specify </textarea>
<span class="errorFeedback errorSpan" id="specifyError">you not specify yet!</span>
</td></tr>
<tr>
<td><label for="DateRequire">Date Require:</label></td>
<td><input type="date" id="DateRequire" name="DateRequire">
</td></tr>
<tr>
<td><label for="DateReturn">Date Return:</label></td>
<td><input type="date" id="DateReturn" name="DateReturn">
</td></tr>
OUTPUT
1) INSERT
中的Postion
sql 语句似乎不正确。
Unknown column 'Postion' in 'field list'
我通过使用发现了这一点:
$rowinsert = $conn->multi_query($insert) or die($conn->error . "\n");
而不是:
$rowinsert = $conn->multi_query($insert) or die(mysqli_connect_error() . "\n");
2) 当要处理header(Location:...)
时,会出现以下警告:
( ! ) Warning: Cannot modify header information - headers already sent
by (output started at .../conn.php:9) in .../requestform2.php on line
32
问题是:当 header(Location:...)
被处理时,PHP 引擎发现一些东西已经被发送到客户端,例如到浏览器,以便显示。这是不允许的。在您的代码中出现这种情况是因为您在 "conn.php" 中有 HTML 代码。这被认为是对客户端的输出,因此是不允许的。所以,"conn.php" 应该只是:
<?php
$host_user="localhost";
$user_user="root";
$password_user="";
function connect (){
$conn =mysqli_connect("localhost","root","") or die (mysqli_connect_error()."/n");
return $conn;
}
function connectdb(){
$conndb="misadmin";
return $conndb;
}
?>
我是怎么发现的?我启用了错误报告和显示。所以我使用了这个语句:
error_reporting(E_ALL);
ini_set('display_errors', 1);
将它们放在文件"errorReporting.php"中,并在开发时将其包含在"conn.php"之前。如果您的网站正在制作中,请不要包含它!如果您不选择显示错误,您只会收到一个空白页面,而不知道例如为什么没有重定向到第三页。
建议:
错误 + 异常处理是应用程序中最重要的部分之一,应该非常正确地实现。随着用户输入的过滤和清理。所以:
- 使用预处理语句来避免 MySQL 注入!
- 使用异常处理始终捕获应用抛出的异常。
查看我发布的完整示例(OOP 和过程)并尝试应用我展示的步骤:
- MySQLi with prepared statements and exception handling
但我建议您改用 PDO 而不是 MySQLi。为此,我也发布了一个相应的例子:
祝你好运!
这是我的 php 编码。我从我的模板表单中得到了这个。
最奇怪的是,当我尝试从我的模板 运行 编码时,我得到了输出并检索了数据,但是当我尝试 运行 将编码转换为我的项目分配结果是空白页。
<?php
include"conn.php";
$conn = connect();
$db = connectdb();
$wardID =$_REQUEST["wardID"];
$RequestName = $_REQUEST["RequestName"];
$Department =$_REQUEST["Department"];
$Position = $_REQUEST["Position"];
$Date = $_REQUEST["Date"];
$TypeOfRequest = $_REQUEST["TypeOfRequest"];
$PleaseSpecify = $_REQUEST["PleaseSpecify"];
$DateRequire = $_REQUEST["DateRequire"];
$DateReturn = $_REQUEST["DateReturn"];
mysqli_select_db($conn,"misadmin") or die (mysqli_connect_error()."\n");
//select from the table student
$query = "select * from misform" ;
//to return the query that has been request from the database
$result = $conn ->query($query);
//Fetch a result row as an associative array
$row=mysqli_fetch_assoc($result);
//Select a MySQL database
mysqli_select_db($conn,"misadmin")or die (mysqli_connect_error()."\n");
$insert ="insert into misform(WardID,RequestName,Department,Postion,Date,TypeOfRequest,PleaseSpecify,DateRequire,DateReturn) values ('$wardID','$RequestName','$Department','$Position','$Date','$TypeOfRequest','$PleaseSpecify','$DateRequire','$DateReturn')";
$rowinsert =$conn ->multi_query($insert) or die (mysqli_connect_error()."\n");
header("Location:requestform3.php");
?>
这是我的连接
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$host_user="localhost";
$user_user="root";
$password_user="";
function connect (){
$conn =mysqli_connect("localhost","root","") or die (mysqli_connect_error()."/n");
return $conn;
}
function connectdb(){
$conndb="misadmin";
return $conndb;
}
?>
</body>
</html>
这是我的 html
<body>
<form id="requestform" action="requestform2.php" method="post" >
<div><center><table border = "0" cellspacing="0" cellpadding"4"><tr><td>
<fieldset>
<legend>Request Form</legend>
<div id="errorDiv"></div>
<table><tr>
<td><label for="wardID">Ward ID:*</label></td>
<td><input type="text" id="wardID" name="wardID">
<span class="errorFeedback errorSpan" id="WardIDError"> Ward ID is required</span></td>
</tr>
<tr>
<td><label for="RequestName">Request Name:</label></td>
<td><input type="text" id="RequestName" name="RequestName"></td>
</tr>
<tr>
<td><label for="Department">Department:</label></td>
<td><input type="text" id="Department" name="Department"></td>
</tr>
<tr>
<td><label for="Position">Position:</label></td>
<td><input type="text"id="Position" name="Position"></td>
</tr>
<tr>
<td><label for="Date">Date:</label></td>
<td><input type="date" id="Date" name="Date"></td>
</tr>
<tr>
<td><label for="request">Type of request:* </label></td>
<td><select name="TypeOfRequest" id="request">
<option></option>
<option>Hardware</option>
<option>Software</option>
<option>Network</option>
<option>Others</option></select>
<span class="errorFeedback errorSpan" id="requestError">Please choose one</span>
</td></tr>
<tr>
<td></td>
<td><textarea name="PleaseSpecify" id="specify"> Please Specify </textarea>
<span class="errorFeedback errorSpan" id="specifyError">you not specify yet!</span>
</td></tr>
<tr>
<td><label for="DateRequire">Date Require:</label></td>
<td><input type="date" id="DateRequire" name="DateRequire">
</td></tr>
<tr>
<td><label for="DateReturn">Date Return:</label></td>
<td><input type="date" id="DateReturn" name="DateReturn">
</td></tr>
OUTPUT
1) INSERT
中的Postion
sql 语句似乎不正确。
Unknown column 'Postion' in 'field list'
我通过使用发现了这一点:
$rowinsert = $conn->multi_query($insert) or die($conn->error . "\n");
而不是:
$rowinsert = $conn->multi_query($insert) or die(mysqli_connect_error() . "\n");
2) 当要处理header(Location:...)
时,会出现以下警告:
( ! ) Warning: Cannot modify header information - headers already sent by (output started at .../conn.php:9) in .../requestform2.php on line 32
问题是:当 header(Location:...)
被处理时,PHP 引擎发现一些东西已经被发送到客户端,例如到浏览器,以便显示。这是不允许的。在您的代码中出现这种情况是因为您在 "conn.php" 中有 HTML 代码。这被认为是对客户端的输出,因此是不允许的。所以,"conn.php" 应该只是:
<?php
$host_user="localhost";
$user_user="root";
$password_user="";
function connect (){
$conn =mysqli_connect("localhost","root","") or die (mysqli_connect_error()."/n");
return $conn;
}
function connectdb(){
$conndb="misadmin";
return $conndb;
}
?>
我是怎么发现的?我启用了错误报告和显示。所以我使用了这个语句:
error_reporting(E_ALL);
ini_set('display_errors', 1);
将它们放在文件"errorReporting.php"中,并在开发时将其包含在"conn.php"之前。如果您的网站正在制作中,请不要包含它!如果您不选择显示错误,您只会收到一个空白页面,而不知道例如为什么没有重定向到第三页。
建议:
错误 + 异常处理是应用程序中最重要的部分之一,应该非常正确地实现。随着用户输入的过滤和清理。所以:
- 使用预处理语句来避免 MySQL 注入!
- 使用异常处理始终捕获应用抛出的异常。
查看我发布的完整示例(OOP 和过程)并尝试应用我展示的步骤:
- MySQLi with prepared statements and exception handling
但我建议您改用 PDO 而不是 MySQLi。为此,我也发布了一个相应的例子:
祝你好运!