将值从php传递给html

时间:2014-03-16 07:10:13

标签: php mysql

您好我是php新手,我在php中做一个简单的登录表单。用户输入用户ID和密码。在按钮上单击我将其重定向到PHP页面。在那里,我使用一个简单的选择查询,并使用该用户标识和密码检索行数。现在如果返回行,那么它有效,我将他从那里重定向到其他页面。如果不是,我想将值传递回相同的登录页面(最好是布尔值)并使用它来启用标签说明无效凭证。

验证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
}
?>

我非常喜欢php。尝试简单的表格。

5 个答案:

答案 0 :(得分:2)

  1. 不要使用GET方法提交包含密码等敏感数据的表单。
  2. 而不是将表单提交到其他页面,请将其提交到同一页面。将PHP代码放在页面顶部。
  3. 初始化变量说$user = $_POST['txtUserName']。现在,让我们假设您的输入框是<input type ='text' name = 'txtUserName'>,将value='<?PHP echo $user?>属性放在输入框中,它将显示该值。
  4. 最后,阅读一些教程。互联网上有很多他们:-)祝你好运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
    

答案 1 :(得分:0)

首先,您不应该通过GET方法传递用户名和密码值。你应该使用POST,因为它没有通过URL。

至于重定向到上一页并发送信息,我不是专家。但是从我读过的内容来看,您应该使用会话,或者使用javascript。

编辑:查看已发布的另一个答案,您可以使用标题(位置:&#34;&#34;&#34;)通过网址传递值(即标题(位置:&#34; someurl) .com / somefile.php?var = data&#34;)并在注册页面上使用get方法检查这些变量。如果它们存在,那么您可以显示标签,通知用户无效的凭据。

答案 2 :(得分:0)

if($num_rows!=0) { header("location:other-page.php"); } else { header("location:old-page.php"); }

同样使用会话...如果用户名和密码不匹配,将会话设置为1并重定向到旧页面。取值。比较如果设置。然后显示无效的信用卡

答案 3 :(得分:0)

直接的答案是:

if($num_rows != 0)
   header("Location: http://myhost/myauthorizedpage.html");
else
   header("Location: http://myhost/loginpage.html");

虽然这是一个相当蹩脚的安全解决方案。任何人都可以在浏览器中输入 http://myhost.com/myauthorizedpage.html ,并绕过您的登录页面。

更可靠的解决方案包括会话管理(http://www.sitepoint.com/php-sessions/)并使用以下内容保护所有重要页面:

if(!isset($_SESSION["user"]))
    header('HTTP/1.0 403 Forbidden');

答案 4 :(得分:0)

通知书

  1. 不要使用GET方法获取密码,因为GET会显示在网址中。以下是教程What is the difference between POST and GET?
  2. 的链接
  3. 不要使用你是php的新手,所以这是正确的时间 用PHP升级到mysqli和PDO。 mysql()函数很快就会出现 从PHP5折旧。 Mysqli tutorials.
  4. 您的代码容易受到SQL注入攻击。 SQL injection
  5. 的教程
  6. 您的代码显示您尚未完成常规教程 正常。参考教程,如果您遇到问题 代码,然后在这里发布一个问题。
  7. 重定向可以通过header()函数完成。 header() tutorial