无法弄清楚为什么我的header()不起作用。我有两页
(1)all_people_page.php
(2)editmember.php
第(1)页有一个转到第(2)页的表格。页面(2)更新数据库,需要返回页面(1)。但我想在页面(1)上触发通知,告知用户数据库已更新。我想如果我urlencode一个字符串然后我可以收集该变量来发起通知。
我的问题是我甚至无法返回页面(1)“all_people_page.php”
editmember.php:
<?php
.... all my $_POST variables ....
require ('db.php');
$db = null;
$limit = 10;
$counter = 0;
while (true) {
try {
$db = new PDO($dsn, $uname, $pword);
$db->exec( "SET CHARACTER SET utf8" );
$db->setAttribute( PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$db->setAttribute( PDO::ATTR_PERSISTENT, true );
break;
}
catch (Exception $e) {
$db = null;
$counter++;
if ($counter == $limit)
throw $e;
}
}
try
{
$result = $db->prepare("UPDATE member_db SET USER_SEX=?, FIRSTNAME=?, LASTNAME=?, SPOUSE_ATT=?, ADDRESS=?, CITY=?, STATE=?, ZIP=?, BDAY=?, LG_NUM=?, CAMPUS=? WHERE IDNUM=?");
$result->execute(array($gender,$member_fname,$member_lname,$spouse_att_rad,$member_address,$member_city,$member_state,$member_zip,$bday,$lg_type,$campus,$member_id));
$notify = 1;
$url = "http://localhost/testsite/all_people_page.php?notify=". urlencode($notify);
header(" Location: $url ");
}
catch ( PDOException $exception )
{
echo "PDO error :" . $exception->getMessage();
}
答案 0 :(得分:1)
您在标头声明中使用了空格。
替换
header(" Location: $url ");
与
header("Location: $url");
答案 1 :(得分:1)
首先确保正在执行包含标题的行,如果正常,则使用
header('Location:'.$url);
而不是
header("Location:$url");
要在all_people_page.php上显示通知,您可以使用会话。创建一个会话,指示已在editmember.php上更新数据库。当页面重定向到all_people_page.php时,请检查all_people_page.php上此会话变量的值。如果发现它比显示消息指示数据库已更新正确。 在all_people_page.php的末尾取消设置此会话变量。