【问题标题】:PHP Session getting data from databasePHP Session 从数据库中获取数据
【发布时间】:2014-01-23 11:13:38
【问题描述】:

我有以下代码:

   <?php
    session_start();
    ?>

<!DOCTYPE html>
<html>
<body>
<form name="form1" method="POST">
    <table>
        <tr>
            <td>Username</td>
            <td> <input type="text" name="text1"></td>

        </tr>
        <tr>
            <td>Password</td>
            <td><input type="password" name="pwd"></td>


        </tr>
        <tr>
            <td><input type="submit" name="submit1"></td>           

        </tr>
    </table>
</form>


</body>
</html>



<?php
include 'config.php';
mysql_select_db("sess_db",$con);

?>

<?php
if(isset($_POST['submit1'])) {
      $result=mysql_query("SELECT username,password FROM siteinfo ");
      $result2=mysql_fetch_row($result);
      $count=mysql_num_rows($result);
    $nm = $_POST['text1'];
    $pwd = $_POST['pwd'];
    if ($result == $nm && $result == $pwd) {
        $_SESSION['luser'] = $name;
        $_SESSION['start'] = time();
        //the expire u put it
        $_SESSION['expire'] = $_SESSION['start'] + (30 * 60);
        header('Location: homepage.php');
    }
    else {
        echo "Please Enter a Correct Username & Password ! ";
    }
}
?>

在登录页面我必须输入用户名:joseph 和密码:moon

但我想删除这两个变量 $name$password 并将其链接到包含用户名和密码的数据库,如果我输入其中一个变量会将我重定向到

主页.php

【问题讨论】:

  • 首先在你的&lt;?php之后添加session_start();
  • 您的问题表明您不知道如何在 PHP 中与数据库进行交互。你应该先阅读一些文档或教程
  • 我添加了它@ShankarDamodaran
  • 我知道如何连接它,但问题我不知道我必须把它放在哪里@Tounu
  • 使用输出之前

标签: php mysql database session


【解决方案1】:

试试这个。但是太简单了

     <?php
            if(isset($_POST['submit1'])) {

                $name = "Joseph";
                $password = "moon";
                $nm = $_POST['text1'];
                $con=myssql_connect('localhost','root','');// mysql_connect('your host name','database username','database password')
                mysql_select_db('your database name',$con) or die("Can't select DB");
                $pwd = $_POST['pwd'];
                $qry="SELECT * FROM login_labe WHERE username='$name' AND 
password='$password'";
                $result=mysql_query($qry);
                $res=mysql_fetch_array($result);
                 $nm=$res['username'];
                 $pwd=$res['password'];
                if ($name == $nm && $password == $pwd) {
                    session_start();  ///////////////You need to add session_start()
                    $_SESSION['luser'] = $res['your name form DB'];
                    $_SESSION['start'] = time();
                    //the expire u put it
                    $_SESSION['expire'] = $_SESSION['start'] + (30 * 60);
                    header('Location: homepage.php');
                }
                else {
                    echo "Please Enter a Correct Username & Password ! ";
                }
            }
            ?>

【讨论】:

  • 我在页面顶部添加了一个 session_start() !我想要的是如何连接我的数据库
  • 你的意思是mysql php连接?
  • 如果不显示我只需要构成我的数据库的用户名和密码登录 > 请输入正确的用户名和密码!如果您在我的代码中看到我删除了 $name = "Joseph"; & $password = "月亮"; ...
【解决方案2】:

首先,您应该在 $_POST['text1']$_POST['pwd'] 上添加一些过滤器,以避免 SQL 查询中的注入或意外行为。

$name = $_POST['text1'];
$pw = $_POST['pwd'];

然后,只需构建一个这样的查询:

SELECT count(*) from user_table where name = $name and pwd = $pw

如果count != 0 则关联名称/密码正确,您可以将用户重定向到主页。

这是很基础的,你可以做的更安全。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多