标题位置代码不起作用 - 建议?

时间:2012-11-08 18:05:33

标签: php login location

PHP不是我的事,但我需要设置一个简单的登录区域 - 所以我在这里。以下是我发现的一些似乎有用的代码,但不会重定向。

如果我将重定向更改为回声,则可以正常工作。如果我将位置更改为“包含”而不是它有效。我在“位置”代码中做错了什么?

对于对此进行交替编码的建议持开放态度。我有一个网页,如果用户输入密码,则会显示该网站上的其他部分。所以我在该网站上有一个表单提交给这个代码,然后它应该重定向回来,现在可以看到新的部分。

这是我的代码 -

<?php

// error reporting
ini_set('display_errors',1); 
 error_reporting(E_ALL);

$host="localhost"; // Host name
$username="foo"; // Mysql username
$password="foo"; // Mysql password
$db_name="foo"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
header("Location: http://www.google.com/"); 

// Register $myusername, $mypassword 
// success
//session_register("myusername");
//session_register("mypassword");
}
else {
echo "Wrong Username or Password";
}

?>

3 个答案:

答案 0 :(得分:1)

session_register已弃用。因此,输出已经发送,您可能已经看到错误报告已打开。在header

之前无法输出任何内容

答案 1 :(得分:1)

我猜你的标题已被发送,这会使您尝试使用的标题无效(尽管PHP通常会告诉您这是一个问题)。

可能导致标题自动发送的是php块之外的任何正常输出(例如,如果你的表单html存在于此块之上)。

答案 2 :(得分:0)

事实证明,我的代码中的问题似乎是空格。一旦我删除了所有间距,问题就消失了。有点奇怪 - 但那就是发生了什么。感谢帮助!