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;
    }
}

$conMySQL接続を作成する私が保存するグローバル変数です。次のようになります。

$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にリダイレクトします。 。おそらく、セッションをCookieとして保存するelseステートメントに何かを入れて、タブを閉じたりブラウザを終了したりするたびにログインし続ける必要がないようにする必要があります。

于 2012-09-29T03:01:25.730 に答える