我有两个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"]),因为我没有看到它有任何用途。