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