0

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

我真的有点迷失了基本的文件结构。有人可以解释我应该怎么做吗?

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

4

1 回答 1

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,这样他们就不必在每次关闭选项卡或退出浏览器时都重新登录。

于 2012-09-29T03:01:25.730 回答