登录页面上验证用户名和密码的问题

时间:2019-05-15 14:09:10

标签: php html

我在让用户从登录页面验证用户名和密码时遇到问题。

我尝试了不同的代码来尝试解决此问题。


<!--
Here, we write code for login.
-->
<?php
require_once('connection.php');
include_once('link.php');
include_once('welcome.php');


    if (!session_id())session_start();

    $db = mysqli_connect ('localhost', 'root','usbw','pearl_bazaar');

    if($_SERVER["REQUEST_METHOD"] == "POST")


    {



        $username = mysqli_real_escape_string($db,$_POST['Username']);
        $pwd = mysqli_real_escape_string($db,$_POST['Password']); 

        $sql = "SELECT * FROM register WHERE Username = '$username' and Password = '$pwd'";
        $result = mysqli_query($db,$sql);
        $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
        //$active = $row['active'];

        $count = mysqli_num_rows($result);

        // If result matched $myusername and $mypassword, table row must be 1 row

        if($count == 1)
        {
            echo "you have logged successsfully";

            header("location: welcome.php");

        }

    else {

        echo "sorry incorrect username or password";

    }
    }       
?>
<div id="frmRegistration">

<form class="form-horizontal" method="POST" action="login_code.php">
    <h1>User Login</h1>

  <div class="form-group">
    <label class="control-label col-sm-2" for="username">Username:</label>
    <div class="col-sm-6">
      <input type="text" class="form-control" name="Username" id="username" placeholder="Enter Username">
    </div>
  </div>


  <div class="form-group">
    <label class="control-label col-sm-2" for="pwd">Password:</label>
    <div class="col-sm-6"> 
      <input type="password" class="form-control" name="Password" id="pwd" placeholder="Enter password">
    </div>
  </div>


  <div class="form-group"> 
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" name="login" class="btn btn-primary">Login</button>
    </div>
  </div>


</form>
</div>




这是php代码,我正在使用它访问数据库中的数据,用户可以使用它们验证其详细信息。我能够从数据库中检索数据,但只有验证无效。

2 个答案:

答案 0 :(得分:-1)

是否可能是因为在if语句if (!session_id())session_start();之后缺少左花括号?

因为在代码末尾有一个结束符。

更正为:if (!session_id()) { session_start();

答案 1 :(得分:-1)

必须在服务器级别或使用API​​函数mysqli_set_charset()设置字符集,才能影响mysqli_real_escape_string()。

示例

`

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Initial character set: %s\n", mysqli_character_set_name($link));

/* change character set to utf8 */
if (!mysqli_set_charset($link, "utf8")) {
    printf("Error loading character set utf8: %s\n", mysqli_error($link));
    exit();
} else {
    printf("Current character set: %s\n", mysqli_character_set_name($link));
}

mysqli_close($link);
?>

`

charset

real_escape

希望对您有帮助)