PHP表单通过URL传递值

时间:2013-03-30 14:36:30

标签: php forms

我有一个登录页面(本地内部网所以不用担心安全问题)。 此页面包含以下表单代码:

<form action="auth.php" method="get" class="blocklogin">    
<tr>
<td class="blocklogin" ><div align="left">Username:&nbsp; <input class="blocklogin"     type="text" name="username" id="username" /><br />
</div></td>

</tr>
<tr>
<td class="blocklogin" ><div align="left">Password: &nbsp;  <input class="blocklogin"         type="password" name="password" id="password" />
</div></td>

</tr>
<tr>
<td colspan="2" class="blockloginfoot" title="Login"><input name="Login" type="submit"     value="Login" /></td>
</form>

现在我尝试通过以下方式通过http链接传递用户名和密码:

http://localhost/folder/user_login.php?username=user@test&password=test123

但这似乎不起作用,它假设使用链接中的详细信息登录。我错过了什么吗? 请帮忙

表单操作auth.php

<?php
session_start();

require_once('database.php');


$username = $_GET['username'];
$password = $_GET['password'];



$sql = "SELECT * FROM access_getaccountswithinfo WHERE username='".$username."' AND     password='".$password."'";

$run = mysql_query($sql);
$row = mysql_fetch_array($run);

if (mysql_num_rows($run) == 1) {
$_SESSION['logged_in'] = true;
$_SESSION['username'] = $row['username'];
$_SESSION['password'] = $row['password'];
$_SESSION['packagename'] = $row['packagename'];
$_SESSION['creation-date'] = $row['creation-date'];
$_SESSION['cap'] = $row['cap'];
$_SESSION['total'] = $row['total'];
$_SESSION['remainingtopup'] = $row['remainingtopup'];


header("location: usage.php");
} else {
header("location: user_login.php");

}


 mysql_close($link);
?>

数据库代码 - database.php:

<?php
$link = mysql_connect('localhost', 'dbase', 'pass123');
if (!$link) {
die('Could not connect: ' . mysql_error());
}

// make dbase the current db
$db_selected = mysql_select_db('dbase', $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}

?>

3 个答案:

答案 0 :(得分:0)

如果您尝试通过网址:

http://yourserver.com/folder/user_login.php?username=user@test&password=test123

您应该使用$_GET['username']$_GET['password']来检索值。

否则,如果您提交,请使用$_POST['username']$_POST['password']

愿这有帮助。

答案 1 :(得分:0)

您的html表单使用“post”方法将数据发送到您的php脚本。发布数据在标题中发送,您现在的设置应该可以正常工作。

通过url执行此操作时,您可以使用“$ _GET”获取参数,而不是“$ _POST”。

另外,请记住htmlspecialchars()从表单发送的内容。

答案 2 :(得分:0)

而不是使用URL传递值到user_login.php,其中表单是...你必须将它传递给auth.php,这是实际捕获值的php,如下所示

http://localhost/folder/auth.php?username=user@test&password=test123