PHP表单通过URL传递值
我有一个登录页面(本地intranet,所以不用担心安全问题)。 此页面由以下表单代码组成:PHP表单通过URL传递值,php,forms,Php,Forms,我有一个登录页面(本地intranet,所以不用担心安全问题)。 此页面由以下表单代码组成: <form action="auth.php" method="get" class="blocklogin"> <tr> <td class="blocklogin" ><div align="left">Username: <input class="blocklogin" type="text" name="
<form action="auth.php" method="get" class="blocklogin">
<tr>
<td class="blocklogin" ><div align="left">Username: <input class="blocklogin" type="text" name="username" id="username" /><br />
</div></td>
</tr>
<tr>
<td class="blocklogin" ><div align="left">Password: <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>
但这似乎不起作用,它假设使用链接中的详细信息登录。我错过什么了吗?
请帮忙
表单action 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());
}
?>
如果您尝试通过url:
您应该使用$\u GET['username']
和$\u GET['password']
来检索值
否则,如果您提交,请使用$\u POST['username']
和$\u POST['password']
这可能会有所帮助。您的html表单使用“post”方法将数据发送到php脚本。Post数据在标题中发送,您现在的设置应该可以正常工作 通过url执行此操作时,可以使用“$\u get”而不是“$\u POST”获取参数
另外,请记住htmlspecialchars()从表单发送的内容。不要使用URL将值传递给表单所在的user_login.php…您必须将其传递给auth.php,后者是实际捕获值的php,如下所示
http://localhost/folder/auth.php?username=user@test&password=test123
用action auth.phpany表单更新了问题。有更多建议吗?请确切地说,什么不起作用?如果添加
print\r($\u GET)代码>你看到了什么?从外观上看,问题可能出在您的数据库代码上。@PassKit,ok在我的问题的底部添加了数据库代码。在通过登录页面正常登录时100%有效,但在尝试传递URL中的用户名和密码时无效。使用$GET now尝试过,但不起作用…您能否解释一下有关htmlspecialchars()plsok使用specialchar也做过,但仍然不起作用的更多信息:$username=htmlspecialchars($GET['username',ENT\u引号);在输入表单中,您似乎忘记了。看看它。它就在那里:),否则使用正常登录就不起作用了
http://localhost/folder/auth.php?username=user@test&password=test123