我想使用php标头。我查看php header manual。就我而言,我认为我应该使用header("Location: $_SERVER[PHP_SELF]");
但是当我刷新页面时,我收到错误“页面没有正确重定向”。
我的HTML代码
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div class=CSSTableGenerator>
<table>
<thead>
<tr>
<th>ID</th>
<th>Code</th>
<th>Name</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
require ("upName.php");
for($i = 1; $i <= $usr; $i++)
{
echo"<form action='?' method='POST'>";
echo"<tr>";
echo"<td><div id='id'>".$id[$i]."</div></td>";
echo"<td><div id='code'><input type='hidden' name='id' value='" . $id[$i] . "|".$id[$i]."' />".$code[$i]."</div></td>";
echo"<td><div id='name'><input id='name' name='name' value='$name[$i]' /></div></td>";
echo"<td><input type='submit' id='muuda' value='Muuda' /></td>";
echo"</tr>";
echo"</form>";
}
?>
<script>
</script>
</tbody>
</table>
</div>
</body>
</html>
我的PHP
<?php
$usr=0;
$sql="SELECT * from user where code like '%IN%' ";
$sensors = $db->query($sql);
$result1=$sensors->fetchAll(PDO::FETCH_ASSOC);
$namee=$_POST['name'];
$codee=$_POST['code'];
$idd=explode('|', $_POST['id']);
$idd1=trim($idd[0]);
$idd2=trim($idd[1]);
$idd2=$idd2+1;
if(empty($_POST['name'])){}else{
$sql2="UPDATE user set name='" .$namee. "' where id IN('" .$idd1. "','".$idd2."') ";
if(isset($_SESSION['name'])) {
$sensorss = $db->query($sql2);
$result2=$sensors->fetchAll(PDO::FETCH_ASSOC);}}
header("Location: $_SERVER[PHP_SELF]");
//Debug::dump($sql2);
foreach ($result1 as $row)
{
$usr++;
$id[$usr]= $row["id"];
$code[$usr]= $row["code"];
$name[$usr]= $row["name"];
$code[$usr]=explode(' ', $code[$usr]);
$code[$usr]=trim($code[$usr][0]);
}
?>
无法弄清楚问题是什么..
答案 0 :(得分:2)
尝试使用此代码:
header("Location: ".$_SERVER['PHP_SELF']." ");
答案 1 :(得分:0)
问题是您正在重定向到同一页面。这会创建一个重定向循环,它会生成您正在获得的错误。
答案 2 :(得分:0)
我解决了我的问题,不知怎的,我仍然无法使用header("Location: ".$_SERVER['PHP_SELF']);
但是在使用这个时
if(isset($_POST["name"])){
header('Location: editName.php');
exit;}
一切正常!