Php 提交数据后尝试重定向
在将一些数据提交到example.php数据库后,我尝试重定向 我有表格,它提交完美,但无法重定向到工作我尝试了一些方法,我在互联网上看到的,但没有工作Php 提交数据后尝试重定向,php,html,mysql,forms,Php,Html,Mysql,Forms,在将一些数据提交到example.php数据库后,我尝试重定向 我有表格,它提交完美,但无法重定向到工作我尝试了一些方法,我在互联网上看到的,但没有工作 <html> <head> <title>MySQLi Create Record</title> </head> <body> <?php $action = isset($_POST['action']) ? $_POST['
<html>
<head>
<title>MySQLi Create Record</title>
</head>
<body>
<?php
$action = isset($_POST['action']) ? $_POST['action'] : "";
if($action=='create'){
//include database connection
include 'db_connect.php';
//write query
$query = "insert into referb
set
make = '".$mysqli->real_escape_string($_POST['make'])."',
model = '".$mysqli->real_escape_string($_POST['model'])."',
unitt = '".$mysqli->real_escape_string($_POST['unitt'])."'";
if( $mysqli->query($query) ) {
echo " header( 'Location: example.php' ) ;";
}else{
echo "Database Error: Unable to create record.";
}
$mysqli->close();
}
?>
<!--we have our html form here where user information will be entered-->
<form action='#' method='post' border='0'>
<table>
<tr>
<td>Manufactor</td>
<td><input type='text' name='make' /></td>
</tr>
<tr>
<td>Model</td>
<td><input type='text' name='model' /></td>
</tr>
<tr>
<td>Unit Type</td>
<td>
<select name='unitt'>
<option>Laptop</option>
<option>Computer</option>
<option>Tablet</option>
</select></td>
</tr>
<td></td>
<td>
<input type='hidden' name='action' value='create' />
<input type='submit' value='Save' />
<a href='index.php'>Back to index</a>
</td>
</tr>
</table>
</form>
</body>
</html>
MySQLi创建记录
对header()的调用不应是echo'd。该行应改为:
header('Location: example.php');
exit();
在ARDS之后调用exit()将停止脚本的进一步执行。不要echo头(“Location:example.php)”。
这是一个php函数,所以您只需编写
header("Location:example.php");
这是一个将用户重定向到另一个URL的php脚本,将其置于正确的条件或代码说明之后
<html>
<?php
header('Location: http://www.example.com/');
exit;
?>
您不能在标题前有echo,也不能在同一指令/条件内有echo。
但是,您可以设置if
指令
您有echo”标题('Location:example.php');”代码>
它需要读取为header('Location:file.php')代码>仅限
执行标头重定向的正确方法是:
header('Location: example.php');
您可以执行以下操作:
访问PHP.net上的header()
函数:步骤1:首先执行查询以将数据插入数据库
步骤2:关闭数据库连接
步骤3:只需放入>>>标题('Location:example.php') header()是一个php函数,不是html标记。您只需像header一样调用它('Location:example.php');首先,即使您确实做到了这一点,您也必须删除标题(
和'Location:
)之间的空格,就像您在这里看到的echo”标题('Location:example.php');;;
-它需要读作标题(
)-但是执行标题重定向的正确方法是标题('Location:example.php');
这将不起作用。这是文档中的第一个示例-,在示例中特别指出-这将给出一个错误。请注意上面的输出,它在header()调用之前。
。在示例-之前请记住该header()必须在发送任何实际输出之前调用,无论是通过普通HTML标记、文件中的空行还是通过PHP。
我只是浏览了文档,没有看到标题('Location:example.PHP')的位置
带空格无效或将失败。在本地对其进行了测试,并在带空格/不带空格的情况下工作。您对此是否有参考,只是好奇?@Sean是的,如果您访问此链接并引用我的话:“您不能使用标题('Location:…'),因为在发送标题之前无法发送任何输出。”请注意标题之间的空格(
和标题(
和'Location:…')`@Sean实际上,您不能将echo
和header
放在一起,因为echo
被视为“标题前的输出”。为了避免下一个陷阱,必须将其放在任何HTML输出之前。这意味着代码必须首先使用重定向,然后使用
标记。
if( $mysqli->query($query) ) {
header('Location: example.php');
}else{
echo "Database Error: Unable to create record.";
}
$mysqli->close();
}