用户登录和管理集成到单页面站点

时间:2012-09-29 01:12:15

标签: php jquery html database user-registration

所以我最终设计并构建了我的网站,它是一个单页(Front.php),显示所有菜单选项,包括用户可以注册的注册表,然后将信息存储到数据库中。我现在需要理解和实现的是用户帐户的想法。我不明白我应该如何进行登录和帐户管理。我知道他们可以登录,我可以在数据库中搜索他们的用户名,如果有匹配则可以登录。但是应该在哪里处理,Front.php?或者我应该有另一个名为Login.php的文件,但如果登录成功,它会重定向回Front.php吗?

我真的很丢失基本的文件结构。有人可以解释我应该怎么做?

我的页面是95%jquery / html,php只插入数据库功能。

1 个答案:

答案 0 :(得分:1)

你需要使用php。通常,我创建一个functions.php文件来存储我的所有功能,然后我将它包含在每个页面的头部。在我的函数文件中,我总是设置一个函数来检查登录是否存在。这里是逐字:

function checkLogin($data) {
    global $con;
    extract($data);
    $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $result = mysql_query($sql, $con) or exit('Eror selecting users database: '.mysql_error());
    $num_rows = mysql_num_rows($result);
    if ($num_rows==0) {
        return false;
    }
    else {
        return true;
    }
}

$con是我存储的全局变量,用于创建MySQL连接。它看起来像:

$con = mysql_connect($host, $user, $pass);

这样我只需要定义一次。然后在front.php上将表单提交给自己(front.php)并执行以下操作:

if (isset($_POST['submit']) && isset($_POST['loginForm'])) {
    if (!checkLogin($_POST)) {
        $valid = false;
    }
    else {
        Header('Location: dashboard.php');
    }
}

我将此代码放在名为session.php的文件中,并将其包含在每个页面的头部。因此,在这种情况下,front.php文件的顶部将如下所示:

<?php
  include('session.php');include('functions.php');

我将它们分开的原因是因为您不需要在函数所在的每个页面上检查登录。在此示例中,我将登录表单操作设置为loginForm,如果成功,我将它们重定向到dashboard.php。您应该在else语句中添加一些内容,将其会话存储为cookie,这样他们就不必在每次关闭选项卡或退出浏览器时都重新登录。