我是编程初学者,我评论了我不理解代码的行。 并且与数据库的连接正常,所以我不明白为什么它不起作用。
这里是 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/