请求用户名&密码在PHP会话中

时间:2013-11-27 13:37:06

标签: php mysql session username

我试图输入用户名&密码动态但 它不适用于存储的用户名和& DB中的密码并保持在同一页面上.... 真郁闷。

<?php include "../db/db_connection.php";

$username = $_POST['txt_username'];
$pwd =$_POST["txt_pwd"];
if(empty($username) || $username == ""){
header("location:index.php?err_msg=1");  
exit;
}
if(empty($pwd) || $pwd == ""){
    header("location:index.php?err_msg=2");  
    exit;
}
$sql = "SELECT username,password FROM users WHERE username= '$username' and password= '$pwd'";
$result =  mysqli_query($con,$sql);
if(mysqli_num_rows($result)==1){
    header("location:dashboard.php"); 
}
else{
    header("location:index.php?err_msg=3"); 
}
if($_REQUEST['txt_username'] == $username && $_REQUEST['txt_pwd'] == $pwd){
    $_SESSION['txt_username'];
    $_SESSION['txt_pwd'];
header("Location:dashboard.php");
}
else{
header("Location:index.php");
}
?>`

5 个答案:

答案 0 :(得分:0)

那些线条没什么。

$_SESSION['txt_username'];
$_SESSION['txt_pwd'];

也许:

$_SESSION['txt_username'] = $user;
$_SESSION['txt_pwd'] = ...;

答案 1 :(得分:0)

你可以试试这个,我不确定这是不是你正在寻找的......

    <?php session_start();

    $username = $_POST['txt_username'];
    $pwd =$_POST["txt_pwd"];
    if(empty($username) || $username == ""){
    header("location:index.php?err_msg=1");  
    exit;
    }
    if(empty($pwd) || $pwd == ""){
        header("location:index.php?err_msg=2");  
        exit;
    }
    $sql = "SELECT username,password FROM users WHERE username= '$username' and password= '$pwd'";
    $result =  mysqli_query($con,$sql);
    if(mysqli_num_rows($result)==1){
        $_SESSION['txt_username'] = $username;
        $_SESSION['txt_pwd'] = $pwd;
        header("location:dashboard.php"); 
    }
    else{
        header("location:index.php?err_msg=3"); 
    }
    header("Location:index.php"); // if it stays on the same page remove this line

    ?>

答案 2 :(得分:0)

我重新构建了您的代码,看起来更干净。

另外我建议你避免使用mysql并开始使用mysqli(或PDO)to avoid SQL injection attacks.

<?php session_start();

if(isset($_SESSION['txt_username']) && !empty($_SESSION['txt_username'])) {
      //If we enter here the user has already logged in
      header("Location:dashboard.php");
      exit;
}

if(!isset($_POST['txt_username'])) {
     header("location:index.php?err_msg=1");  
     exit;
}
else if(!isset($_POST["txt_pwd"])) {
     header("location:index.php?err_msg=2");  
     exit;
}

$username = $_POST['txt_username'];
$pwd = $_POST["txt_pwd"];

//We use MYSQL with prepared statements BECAUSE MYSQL IS DEPRECATED
$mysqli = new mysqli('localhost', 'my_bd_user', 'mi_bd_password', 'my_bd');
$sql = "SELECT 1 FROM users WHERE username= ? and password = ?";
$stmt = $mysql->prepare($sql);
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();

if(!empty($result)) {
    //IF we enter here user exists with that username and password
    $_SESSION['txt_username'] = $username;

    header("location:dashboard.php"); 
    exit;
}
else{
    header("location:index.php?err_msg=3"); 
}

试试吧。

答案 3 :(得分:0)

我检查了你的代码并发现一切正确。我希望你能在此添加连接文件。

$username = "root";
$password = "password";//your db password
$hostname = "localhost"; 

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password) 
 or die("Unable to connect to MySQL");


//select a database to work with
$selected = mysql_select_db("db name",$dbhandle) 
  or die("Could not select Database");

由于

答案 4 :(得分:-1)

尝试以下代码: 我已审核并更改了您的代码:

<?php session_start();
mysqli_connect("locahost","username","password");
mysqli_select_db("database_name");

$username   =   trim($_POST['txt_username']);
$pwd        =   trim($_POST["txt_pwd"]);
if($username == ''){
    header("location:index.php?err_msg=1");  
    exit;
}
if($pwd == ""){
    header("location:index.php?err_msg=2");  
    exit;
}

$sql = "SELECT `username`,`password` FROM users WHERE `username`= '".$username."' and password= '".$pwd."'";
$result =  mysqli_query($sql);
if(mysqli_num_rows($result)>0){
     $_SESSION['txt_username']  =   $username;
    $_SESSION['txt_pwd']        =   $pwd;
    header("location:dashboard.php"); 
}
else{
    header("location:index.php?err_msg=3"); 
}
?>