结合2文件PHP loginform和checklogin在一个文件PHP


combine 2 file php loginform and checklogin in one file php

我有两个PHP文件,我用它来获得用户登录访问

index . php

<body>
  <section class="container">
    <div class="login">
      <h1>Login to Web App</h1>
      <form method="post" action="log.php?login=cek">
        <p><input type="text" name="nik" value="" placeholder="username / nik"></p>
        <p><input type="password" name="password" value="" placeholder="Password"></p>
        <p class="submit"><input type="submit" value="Login"></p>
      </form>
    </div>

和log.php

<?php
 session_start();
 include('config.php');
 mysql_connect($server,$login,$pass) or die("Nggak bisa koneksi");
 mysql_select_db($db);
 $nik = $_POST['nik'];
 $password = $_POST['password'];
 $login = $_GET['login'];
 if($login=="cek"){ $cek = mysql_query("SELECT * FROM karyawan WHERE nik='$nik' AND password='$password'");
     if(mysql_num_rows($cek)==1) {
        $c = mysql_fetch_array($cek);
        $_SESSION['nik'] = $c['nik'];
        $_SESSION['level'] = $c['level'];
            if($c['level']=="admin") {
                header("location:main.php");
                }
            else if($c['level']=="user") {
                header("location:main.php");
                } 
            }
    else{ die("password salah <a href='"javascript:history.back()'">kembali</a>");
    }
 }
 else if($login=="selesai"){ unset($_SESSION['nik']); unset($_SESSION['level']); header("location:index.php");
 }
?>

在未来,我想把这两个脚本文件在一个index.php所以…如果用户名和/或密码为假然后它会写"用户名/密码不匹配"在表单

有可能做到吗?如果是的话....如何?

您可以在HTML代码之前将您的login.php代码复制并粘贴到index.php文件中。//HTML Code Here

 <html>
    <head></head>
        <body>
          <section class="container">
            <div class="login">
              <h1>Login to Web App</h1>
              <form method="post" action="log.php?login=cek">
                <p><input type="text" name="nik" value="" placeholder="username / nik"></p>
                <p><input type="password" name="password" value="" placeholder="Password"></p>
                <p class="submit"><input type="submit" value="Login"></p>
              </form>
            </div>
</body>
</html>

//PHP Code Goes Here

  <?php
        session_start();
         include('config.php');
         mysql_connect($server,$login,$pass) or die("Nggak bisa koneksi");
         mysql_select_db($db);
if(isset($_POST)){
         $nik = $_POST['nik'];
         $password = $_POST['password'];
         $login = $_GET['login'];
         if($login=="cek"){ $cek = mysql_query("SELECT * FROM karyawan WHERE nik='$nik' AND password='$password'");
             if(mysql_num_rows($cek)==1) {
                $c = mysql_fetch_array($cek);
                $_SESSION['nik'] = $c['nik'];
                $_SESSION['level'] = $c['level'];
                    if($c['level']=="admin") {
                        header("location:main.php");
                        }
                    else if($c['level']=="user") {
                        header("location:main.php");
                        } 
                    }
            else{ die("password salah <a href='"javascript:history.back()'">kembali</a>");
            }
         }
         else if($login=="selesai"){ unset($_SESSION['nik']); unset($_SESSION['level']); header("location:index.php");
         }
}
        ?>

之后,你可以用javascript处理它来显示你想要的弹出窗口或信息。

我会将index.php上的表单发送到同一页面。

<form method="POST" action="<?= $_SERVER['PHP_SELF']; ?>">
<!-- Rest of the form --> 
</form>

然后,在你的index.php上面做:

session_start();
if (isset($_POST['submit'])) {
    // Contents of log.php        
}

您可以简单地将php代码复制到index.php中。这样的:

<?php
session_start();
include('config.php');
mysql_connect($server,$login,$pass) or die("Nggak bisa koneksi");
mysql_select_db($db);
$fail = "";  // <--------
if(isset($_POST["password"]))
{
$nik = $_POST['nik'];
$password = $_POST['password'];
$cek = mysql_query("SELECT * FROM karyawan WHERE nik='$nik' AND password='$password'");
 if(mysql_num_rows($cek)==1) {
    $c = mysql_fetch_array($cek);
    $_SESSION['nik'] = $c['nik'];
    $_SESSION['level'] = $c['level'];
        if($c['level']=="admin") {
            header("location:main.php");
            }
        else if($c['level']=="user") {
            header("location:main.php");
            } 
        }
    else{ $fail = "<p style='color:red;'>invalid logindata</p>"; //<-------
 }
 }
else if($login=="selesai"){ unset($_SESSION['nik']); unset($_SESSION['level']);         header("location:index.php");
 }
 ?>
<body>
<section class="container">
<div class="login">
  <h1>Login to Web App</h1>
  <form method="post" action="log.php">
    <p><input type="text" name="nik" value="" placeholder="username / nik"></p>
    <p><input type="password" name="password" value="" placeholder="Password"></p>
    <?php echo $fail; ?>  <----------
    <p class="submit"><input type="submit" value="Login"></p>
  </form>
</div>

还请注意我对原始代码所做的更改,例如将登录检查码放入if(isset($_POST["password"]))中,以便仅在提交表单时触发它。我还删除了get变量($_GET["login"]),因为我没有看到它有任何用途。