即使我输入正确的电子邮件和密码,php登录也无法正常工作

时间:2018-11-22 03:42:44

标签: php mysql authentication

我正在制作一个表单系统,问题是,即使我输入了正确的用户名和密码,它仍然给我提供了密码错误,我已经尝试在sql上运行查询,并且可以正常工作,查询还可以< / p>

<?php 
if(isset($_GET['pesan'])){
    if($_GET['pesan'] == "gagal"){
        echo "Login gagal! username dan password salah!";
    }else if($_GET['pesan'] == "logout"){
        echo "Anda telah berhasil logout";
    }else if($_GET['pesan'] == "belum_login"){
        echo "Anda harus login untuk mengakses halaman admin";
    }
}
?>


<form action="login.php" class="form-signin"> 
<center><h2 class="form-signin-heading">Login</h2></center>      
    <img src="../media/Logo2.png" width="90%" height="90%">
    <br><br>
    <tr>
        <td>Username</td>
        <td>:</td>
        <td><input type="text" name="username" placeholder="Masukkan username"></td>
    </tr>
    <tr>
        <td>Password</td>
        <td>:</td>
        <td><input type="password" name="password" placeholder="Masukkan password"></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td><input type="submit" value="LOGIN"></td>
    </tr>    
    <label class="checkbox">
        <input type="checkbox" value="remember-me" id="rememberMe" name="rememberMe"> Remember me
    </label>
    <button class="btn btn-lg btn-primary btn-block" type="submit">Login</button>   
</form>

这是操作文件

<?php 
// mengaktifkan session php
session_start();

// menghubungkan dengan koneksi
include '../koneksi.php';

// menangkap data yang dikirim dari form
$username = $_POST['username'];
$password = $_POST['password'];

// menyeleksi data admin dengan username dan password yang sesuai
$data = mysqli_query($koneksi,"SELECT * FROM t_pelapor WHERE Email = '$username' AND pass = '$password'");

// menghitung jumlah data yang ditemukan
$cek = mysqli_num_rows($data);

if($cek > 0){
    $_SESSION['username'] = $username;
    $_SESSION['status'] = "login";
    header("location:v_home.php");
}else{
    header("location:v_login.php?pesan=gagal");
}
?>

这是我的t_pelapor结构(登录表)

my structure

1 个答案:

答案 0 :(得分:0)

我在您的html中根本看不到一个开始表单标签,这里已更正。如果您的php文件位于另一个位置(我对您的问题不完全理解),则可能需要在表单标签中添加类似action="something.php"的内容以调用特定的php文件。

<?php 
if(isset($_GET['pesan'])){
    if($_GET['pesan'] == "gagal"){
        echo "Login gagal! username dan password salah!";
    }else if($_GET['pesan'] == "logout"){
        echo "Anda telah berhasil logout";
    }else if($_GET['pesan'] == "belum_login"){
        echo "Anda harus login untuk mengakses halaman admin";
    }
}
?>
<form id="whateveryouwant" name="whatever" method="POST">
<center><h2 class="form-signin-heading">Login</h2></center>      
  <img src="../media/Logo2.png" width="90%" height="90%">
  <br><br>
  <tr>
            <td>Username</td>
            <td>:</td>
            <td><input type="text" name="username" placeholder="Masukkan username"></td>
        </tr>
        <tr>
            <td>Password</td>
            <td>:</td>
            <td><input type="password" name="password" placeholder="Masukkan password"></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td><input type="submit" value="LOGIN"></td>
        </tr>    
  <label class="checkbox">
    <input type="checkbox" value="remember-me" id="rememberMe" name="rememberMe"> Remember me
  </label>
  <button class="btn btn-lg btn-primary btn-block" type="submit">Login</button>   
</form>

如前所述,该代码容易受到攻击(SQL注入),因此我希望这是一个学术练习,而不是实际工作。