PHP / MySQL仅在用户单击按钮时更新

时间:2014-04-18 00:52:06

标签: php html mysql onclick

好的,我在我的登录系统中遇到了这个错误,它说"错误的用户名或密码"当我打开login.php页面时。

而且我想知道如何制作它,以便仅在我点击登录按钮时检查我的用户名和密码,而不是在我加载页面时

我的按钮是<input>,我尝试添加onclick="checklogin()",这是checklogin函数:

$username=$_POST['username'];
$password=$_POST['password'];

function checklogin()
{
    $sql="SELECT * FROM `users` WHERE `username`='". $username ."' and `password`='". md5($password) ."'";
    $result=mysql_query($sql);

    $count=mysql_num_rows($result);

    if($count==1){
        session_register("username");
        session_register("password"); 
        header("location:login_success.php");
    }else{
        echo "Wrong username or password.";
    }
}

但没有任何反应......即使我得到密码/名称,即使我弄错了,页面也会刷新...但是当我删除&#34;功能checklogin()&#34; (它的内容仍然存在,只是删除了功能标签)和onclick属性它将起作用,但正如我在开头说的那样,它会说&#34;错误的密码或用户名&#34;当我刚加载页面时

所以为了缩短这一点,我该如何制作它,以便只有当用户点击按钮(<input type="submit" name="submit" value="login"/>)时才会应用此登录检查

3 个答案:

答案 0 :(得分:0)

使用isset

if(isset($_POST['submit'])){

$username=$_POST['username'];
$password=$_POST['password'];
}

答案 1 :(得分:0)

检查$ _POST数组是否包含数据:

function checklogin()
{
    if(isset($_POST['submit']) && !empty($_POST['submit'])) {

    $username=$_POST['username'];
    $password=$_POST['password'];

    $sql="SELECT * FROM `users` WHERE `username`='". $username ."' and `password`='". md5($password) ."'";
    $result=mysql_query($sql);

    $count=mysql_num_rows($result);

    if($count==1){
        session_register("username");
        session_register("password"); 
        header("location:login_success.php");
    }else{
        echo "Wrong username or password.";
    }
   }
}

答案 2 :(得分:0)

这里有两个问题:

首先,功能checklogin无法达到$ password和$ username,因为它创建新范围,你可以使用global:

function checklogin() {
global $password;
global $username;
// ...

虽然我不建议......

onClick事件是针对JavaScript的,你不能使用JavaScript中的PHP函数。

你需要在这里使用AJAX,从PHP获取数据然后更新。