Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将值从php传递到html_Php_Mysql - Fatal编程技术网

将值从php传递到html

将值从php传递到html,php,mysql,Php,Mysql,嗨,我是php新手,我正在用php做一个简单的登录表单。用户输入用户ID和密码。单击按钮,我将其重定向到一个php页面。在那里,我使用一个简单的select查询,并使用该用户ID和密码检索行数。现在,如果返回了行,那么它是有效的,我将把他从那里重定向到其他页面。如果不是,我希望将一个值传递回同一个登录页面(最好是布尔值),并使用它启用一个表示无效凭据的标签 验证php页面中的代码: <?php $user = $_GET['txtUserName']; $password = $_GET[

嗨,我是php新手,我正在用php做一个简单的登录表单。用户输入用户ID和密码。单击按钮,我将其重定向到一个php页面。在那里,我使用一个简单的select查询,并使用该用户ID和密码检索行数。现在,如果返回了行,那么它是有效的,我将把他从那里重定向到其他页面。如果不是,我希望将一个值传递回同一个登录页面(最好是布尔值),并使用它启用一个表示无效凭据的标签

验证php页面中的代码:

<?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专家。如果是我,我只会检查凭据,如果是真的,直接到一个新页面,如果是假的,就呆在同一页面上,发布一条消息说凭据不正确