0

代码:sql.php

<?php
$uid = trim($_POST['uid']);
$pass= trim($_POST['pass']);
$type= trim($_POST['type']);
$link = mysql_connect("localhost","root","akash");
if (!$link) 
                 die('Could not connect: '.mysql_error());
if(!mysql_select_db("fsproj",$link))        
die("Can't Select database");
if ($type == 0 ) 
$query = "select uid from admin where uid = \"$uid\" AND password = \"$pass\"";
else
$query = "select username from user where uid = $uid AND pass = $pass";
$result = mysql_query("$query",$link);                        
$num_r=mysql_num_rows($result); 
        header("Location : codepage.php");
exit();
?>

代码:login.html

<html>
<form action="sql.php" method="post" name="form1" id="form1" target=result>
Enter UID

<textarea name="uid" id="uid" rows="1" cols="40"> 

</textarea><br>
Password

<textarea name="pass" id="pass" rows="1" cols="40"> 

</textarea><br>
Type

<textarea name="type" id="type" rows="1" cols="40"> 

</textarea>
<br>
<input type="submit" value="Submit" />
</form>
</html>

所有文件都在同一个根目录下,通过login.html向sql.php提交用户名和密码应该重定向到文件codepage.php(我还没有添加登录检查,所以对于任何用户名作为密码的值都应该成功)

但是当我尝试这样做时,我得到的只是一个空白页。

如果我在标头调用之后添加一个输出语句,我会看到该语句的输出

基本上header("Location : codepage.php")没有影响

标头功能在同一站点上的某些其他页面中确实有效

4

4 回答 4

2

应该包含整个header('Location: address')url,而不仅仅是文件。

这意味着协议、域以及文件夹和文件。

header('Location: http://wwww.google.com'); 

文件:

http://php.net/manual/en/function.header.php

以下是第 14.30 点 Location 标头上的 w3 规范(搜索“14.30 Location”)

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

要引用 w3:

字段值由单个绝对 URI 组成。

如评论中所述,冒号 (:) 之前或之后可能没有任何空格。

于 2012-04-11T05:54:11.713 回答
2

使用大括号。你的代码被破坏了。此外,它是header('Location: codepage.php'),不是header('Location : codepage.php')。请注意您添加的额外空间。

已移除

于 2012-04-11T05:55:03.440 回答
2

您的代码容易受到Sql Injection. 使用mysql_real_escape_string()进行过滤。像:

 $pass= mysql_real_escape_string(trim($_POST['pass']));

并确保您拥有 codepage.php 的正确地址。尝试

header('Location: /codepage.php'); //OR
header('Location: http://site.com/to/codepage.php');
于 2012-04-11T05:57:17.607 回答
1

请使用 header("Location: codepage.php");

问题是位置和之间的空间:它对我有用,希望它对你有用

于 2012-04-11T06:02:58.820 回答