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

标签 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.";
    }
}

但是没有任何反应...即使我的密码/名称正确,即使我弄错了,页面也会刷新...但是当我删除“function checklogin()”时(其内容仍然保留,只需删除函数标签)和 onclick 属性它将起作用,但正如我在开头所说的,当我刚刚加载页面时,它会说“密码或用户名错误”

为了缩短这个时间,我该如何制作,以便仅在用户单击按钮( <input type="submit" name="submit" value="login"/> )时应用此登录检查

最佳答案

使用isset

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

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

关于PHP/MySQL 仅在用户单击按钮时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23145783/

相关文章:

php - 插入到 Laravel/PHP 中的列

php - 使用 Docker 将 Elastic Beanstalk 环境变量公开给 Laravel 的 artisan

java - hibernate 5.2.2 : ManyToOne first example

php - 群组 , 订单 , 限额

MySQL INSERT 语句插入两个表,使用另一个表中的 AI 值

PHP:字节数

javascript - 使用按钮自动填充文本框

html - Bootstrap 页面无法在 Safari 上正确呈现

javascript - 如何防止路径再次被填满?

css - 使用 HTML 和 CSS 调整 DOM 元素的大小