PHP と MySQL でブログを作成するためのチュートリアルに従っています。しかし、チュートリアルの最後には、完成したブログで、Web サイトにアクセスしたすべてのユーザーがカテゴリーを編集して投稿できるようになります。Web サイトの特定の部分を自分だけに制限するにはどうすればよいでしょうか? 私だけがログインできるログイン システムを考えました。または、.htaccess に方法があるかもしれません。助言がありますか?
6 に答える
独自のACLレイヤーを構築し、Webでリソースを確認しますが、このリンクは出発点として適しています。
PHPセッションを見てください。
認証するユーザーのリストが必要になります。これがデータベースの場合は、ユーザー名とパスワードの列を持つユーザー テーブルを作成します。
すべてのページの先頭にstart_session()
. これにより、ページ間のセッションが保持されます。
ログインページとリンクを作成します。ログインページで、渡されたユーザー名とハッシュ化されたパスワードをユーザーのリストに対して認証します。ユーザーが認証に合格した場合は、ログインしているユーザーを格納するセッション変数を追加します。また、ログイン後にセッション ID を再生成して、セッションの乗っ取りを防ぎます。
メンバー アクセスが必要なすべてのページで、ユーザーがログインしていることを確認します。ログインしていない場合は、ログイン ページにリダイレクトします。
.htaccess を使用して HTTP 基本認証をセットアップする場合は、ユーザーがブログを編集できるページだけをブロックする必要があります。
いずれの場合も SSL (HTTPS) を追加することを検討してください。そうしないと、人々がオープン ネットワーク上にいる場合にログイン資格情報が盗まれる可能性があります。
ユーザーログインモジュールを作成し、その場所のセッションチェックを使用します。たとえば、ユーザーがログインし、ユーザーIDなどを保存してから$_SESSION['is_user']
、プライベートコンテンツをチェックします
if(isset($_SESSION['is_user'])){
//Show
} else {
//Redirect to login page
}
あなたが言及した両方の方法が機能します。
または、堅牢で安全な機能満載のブログをインストールすることもできます。例http://wordpress.org
最初に編集ページへのリンクを変更し、ログイン システムを使用すると思います。
サンプルコード、
ファイルに名前を付けて保存: login.php
<form method="post">
name : <input name="name">
password : <input name="name">
<button> login </button>
</form>
<?php
session_start();
define('name','your name');
define('password','your password');
if($_SERVER['REQUEST_METHOD'] == "post"){
if($_POST['name' == name && $_POST['password'] == password){
$_SESSION['logged_in'] = 'yes';
header('location:admin.php'); //you can change this
}
}
?>
個人的なブログや類似のものが必要な場合は、コミュニティによってサポートされているものを使用することをお勧めします。最初からやり直す必要はありません。より生産的なことに時間を費やしてください。
選択肢は次のとおりです。
- Wordpress、彼には大きなコミュニティと優れたドキュメントがあります。http://wordpress.com/
- はばり、はばりの大きなところは、OOPを使って設計されていることです。http://habariproject.org/en/