php - javascript 和 php - 登录脚本

标签 php javascript login-script

我是编程初学者,我评论了我不理解代码的行。 并且与数据库的连接正常,所以我不明白为什么它不起作用。

这里是 LOGIN.PHP

<?php

include("connectiondbs.php");
include("javascript.js");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$u=$_POST['username'];
$p=$_POST['password'];

$sql="SELECT userID FROM users WHERE login='$u' and password='$p'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);

$active=$row['active'];            //I AM NOT SURE ABOUT THIS ONE

$count=mysql_num_rows($result);

if($count==1)
{
session_register("username");
session_register("password");     //HAS TO BE THE PASSWORD IN REGISTER?
$_SESSION['login_user']=$u;

header("location:succesfulllogin.php");  // HAS TO BE THIS FILE? OR I CAN GO TO THE MENU.HTML RIGHT NOW

}
else {
echo "Wrong Username or Password";
}}
?>

<form action="" method="post">
<label>Login :</label>
<input type="text" name="username"/><br />
<label>Password :</label>
<input type="password" name="password"/><br/>
<input type="submit" value=" Submit "/><br />
</form>

JAVASCRIPT.JS

<script Language="JavaScript">
    <!-- 
        function check_empty_field()
        {
        if (form.username.value == "" || form.password.value == "")
        {
           alert("Please fill in the password or login field.");
           return (false);
        }
        return (true);
        }
        -->
</script>

成功登录.php

<?php
session_start();
if(!session_is_registered(username)){
header("location:login.php");
}
else{
header ("location:menu.html");
}
?>

最佳答案

首先,您的 JavaScript 尚未运行。您正在创建该函数,但没有调用它,并且它不会以任何方式与 PHP 交互。您可以通过将表单标记更改为:

<form action="login.php" method="post" onsubmit="return check_empty_field()">

现在,只要您提交表单,函数 check_empty_field 就会运行。如果返回 true,则提交表单并运行 PHP。否则,就不会。对于函数,将其更改为这样(我放入了一些 jQuery,因为它使它变得更容易 10 倍,如果您是编程新手,您绝对应该研究它):

<script Language="JavaScript">
  <!--
    function check_empty_field()         // This is called when the submit
    {                                    // button is pressed
      if (form.username.value == "" || form.password.value == "")
      {
        alert("Please fill in the password or login field.");
        return false;                    // This doesn't submit the form
      }
      else
      {
        return true;                     // This submits the form
      }
    }
  -->
</script>

jQuery 使这一切变得更加容易,这就是我添加它的原因。您可以找到有关它的更多信息 here 。当然,您必须将其放在页面顶部,以使 jQuery 工作:

<script language="javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.1.min.js"></script>

这会从 Microsoft CDN 获取 jQuery 定义。是比较靠谱的。不过,最好将 jQuery 放在您的网站上,然后放入文件的路径。

接下来,PHP 有一些问题。有些已经被别人覆盖了,注意一下前面的回答,但是要指出几个问题,session_register不再使用了。现在,您可以使用 $_SESSION['variablename'] = 'value' 设置 session 变量。您还需要担心其他问题,例如验证等。你应该谷歌一下。

如果您想了解更多相关信息,请随时发表评论。我还可以为您提供资源,以便您可以了解有关我使用的代码的不同部分的更多信息。

关于php - javascript 和 php - 登录脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17136725/

相关文章:

javascript - 在 IF 函数内使用 REGEX

php - 为什么我登录 Facebook 后页面没有刷新?

php - Composer /Laravel : How to add/update a specific package

PHP如何显示mysql select查询到表

php - 插入数据并勾选以启用输入标签

PHP登录表单错误

java - 在 GAE Java 中创建自定义用户数据库

php - 简单的PHP网页中有趣的输出

javascript - Wordpress 将 javascript 插入页面文本区域

javascript - 在 if/else 语句中处理多个 'elseif' 的更好方法是什么