我不能得到标题(“位置:http://www.google.com/”)工作:(

时间:2012-01-17 18:15:24

标签: php

我有一个指向php文件的表单。所有php文件都将用户重定向到特定页面。我似乎无法让它工作,我不知道我做错了什么。

<form method="post" action="processRegister.php">
    User Name: <input type="text" name="userName" maxlength="32"><br>
    Password: <input type="password" name="userPassword" maxlength="32"><br>
    <input type="submit">
</form>

processRegister.php

<?php
// processRegister.php
//////////////////////
header("Location: http://www.google.com/");
/*
// First include the class definition
include('UserClass.php');

// Next, create an instance of the class
$newUser = new User;

// Call the registerUser() method, passing in the required variables
if ($newUser->registerUser($userName, $userPassword)) {
  header('Location: www.google.com');
} 
else {
  header('Location: www.yahoo.com');
}
*/
?> 

4 个答案:

答案 0 :(得分:4)

使用exit更改位置后,请使用header()来电。这不仅可以防止不必要的处理,而且还可以防止潜在的安全漏洞,就像您在更改位置后不退出一样,页面将按照正常情况进行处理并发送到浏览器。例如,如果您将未经授权的用户重定向到登录页面,敏感内容仍会发送给他们,他们可以捕获它。

答案 1 :(得分:0)

啊,我太快读了你的帖子,并没有意识到它出现在两个不同的页面上。我的修复是不能修复你的。

尝试这个,但标题后面有一个标志。所以而不仅仅是

header("Location: http://www.google.com/");

制作

header("Location: http://www.google.com/");
echo "Flag1"; 

如果它甚至不打印“Flag1”,那么我们将更好地理解它为什么不起作用。

答案 2 :(得分:0)

exit()之后使用header并在页面的最顶部(在php中)使用ob_start(); 最重要的是o ob_start!这表示代码的起始位置。

<?php
ob_start();
// processRegister.php
//////////////////////
header("Location: http://www.google.com/");
/*
// First include the class definition
include('UserClass.php');

// Next, create an instance of the class
$newUser = new User;

// Call the registerUser() method, passing in the required variables
if ($newUser->registerUser($userName, $userPassword)) {
  header('Location: www.google.com');
} 
else {
  header('Location: www.yahoo.com');
}
*/
exit();
?> 

答案 3 :(得分:0)

源文件是否具有良好的编码?如果它只是UTF-8,则需要将其更改为UTF-8 without BOM,因为BOM可能会导致问题。