将值从php传递到html
嗨,我是php新手,我正在用php做一个简单的登录表单。用户输入用户ID和密码。单击按钮,我将其重定向到一个php页面。在那里,我使用一个简单的select查询,并使用该用户ID和密码检索行数。现在,如果返回了行,那么它是有效的,我将把他从那里重定向到其他页面。如果不是,我希望将一个值传递回同一个登录页面(最好是布尔值),并使用它启用一个表示无效凭据的标签 验证php页面中的代码:将值从php传递到html,php,mysql,Php,Mysql,嗨,我是php新手,我正在用php做一个简单的登录表单。用户输入用户ID和密码。单击按钮,我将其重定向到一个php页面。在那里,我使用一个简单的select查询,并使用该用户ID和密码检索行数。现在,如果返回了行,那么它是有效的,我将把他从那里重定向到其他页面。如果不是,我希望将一个值传递回同一个登录页面(最好是布尔值),并使用它启用一个表示无效凭据的标签 验证php页面中的代码: <?php $user = $_GET['txtUserName']; $password = $_GET[
<?php
$user = $_GET['txtUserName'];
$password = $_GET['txtPassword'];
$link = mysql_connect("localhost",username,password);
mysql_select_db(dbname, $link);
$result = mysql_query("SELECT * FROM user_table WHERE user_name='$user' and password='$password'", $link);
$num_rows = mysql_num_rows($result);
if($num_rows!=0)
{
redirection to other pages
}
else
{
//code here to pass back to login form
}
?>
不要使用GET
方法提交包含密码等敏感数据的表单
将表单提交到同一页,而不是提交到另一页。将PHP代码放在页面顶部李>
初始化变量say$user=$\u POST['txtUserName']
。现在,假设您的输入框是,
,将value='
属性放入输入框中,它将显示值
最后,阅读一些教程。互联网上有很多这样的网站:-)祝你在PHP方面好运:-)
此演示可能会让您了解更多信息:
<?PHP
$username = "";
$password = "";
$error = "";
if($_SERVER['REQUEST_METHOD'] == "POST") {
$username = $_POST['txtUserName'];
$password = $_POST['txtPassword'];
if(/*everything OK*/) {
// sign the user in
// redirect to some other page of your choice or not
} else {
$error = "Please try again";
}
}
?>
<html>
... html goes here
<?PHP
if(strlen($error) ) {
echo $error;
}
?>
<form action = "" method = "POST">
<input type = 'text' name = 'txtUserName' value='<?PHP echo $username?>' />
<input type = 'password' name = 'txtPassword' />
<input type = 'submit' value = 'Sign In' />
</form>
?>
... rest of the html
... 这里是html
... html的其余部分
首先,您不应该通过GET方法传递用户名和密码值。您应该使用POST,因为它不会通过URL传递
至于重定向到上一页并发送信息,我不是这方面的专家。但是从我读到的内容来看,您应该要么使用会话,要么使用javascript
编辑:查看发布的另一个答案,您可以使用标题(位置:“”)通过url传递值(即标题(位置:“someurl.com/somefile.php?var=data))并使用注册页面上的get方法检查这些变量。如果它们存在,则可以显示标签,通知用户无效凭据。If($num\u rows!=0)
{
标题(“位置:other page.php”);
}
其他的
{
标题(“位置:oldpage.php”);
}
同时使用会话…如果用户名和密码不匹配,则将会话设置为1并重定向到旧页面。获取该值。如果设置了,则进行比较。然后显示无效的凭据。直接回答是:
if($num_rows != 0)
header("Location: http://myhost/myauthorizedpage.html");
else
header("Location: http://myhost/loginpage.html");
尽管这是一个相当蹩脚的安全解决方案,但任何人都可以直接在浏览器中输入内容,从而绕过您的登录页面
更可靠的解决方案包括会话管理()和使用以下内容保护所有重要页面:
if(!isset($_SESSION["user"]))
header('HTTP/1.0 403 Forbidden');
忠告
不要对密码使用GET
方法,因为GET显示在URL中。以下是教程的链接
不要使用php,因为您是php新手,所以现在正是正确的时机
要升级到mysqli
,PHP.mysql()函数中的PDO很快就会出现
从PHP5折旧
您的代码易受SQL注入攻击。的教程
您的代码表明您尚未阅读常规教程
正确。参考本教程,如果你在工作中遇到问题
代码,然后在此处发布问题
重定向可以通过header()简单地完成
函数。所以不是为这类问题设计的,但是你为什么不搜索一些简单的教程呢?我做了。另外,只是一条建议,不要在URL中传递密码之类的数据。使用POST而不是GET。我试过了。但我无法获得。无论如何,谢谢你的回复。我会尝试更多。我似乎有一个想法。所以当我们提交时到同一页,这有点像是回发,我们可以更改布尔变量的状态吗?还要注意sql注入…不要将变量直接传递到您的sql select中。请看这里的示例/文档:谢谢@JohnRuddell,我一定会记住这一点。我的评论有意义吗?这是实现我想要的结果的一种方式吗?好吧,对不起…我我想你能做到这一点。不是一个php专家。如果是我,我只会检查凭据,如果是真的,直接到一个新页面,如果是假的,就呆在同一页面上,发布一条消息说凭据不正确