差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン | |||
| dokuwiki:mysql [2008/11/05] – administrator | dokuwiki:mysql [2022/03/12] (現在) – 外部編集 127.0.0.1 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== MySQLにユーザー認証をさせる ====== | ||
| + | ===== ファイルの準備 ===== | ||
| + | * mysql.conf.php.exampleをmysql.conf.phpにリネーム | ||
| + | * mysql.conf.phpを編集 | ||
| + | ===== SQLを実行 ===== | ||
| + | <code sql> | ||
| + | CREATE TABLE `users` ( | ||
| + | `uid` int(10) unsigned NOT NULL auto_increment, | ||
| + | `login` varchar(20) NOT NULL default '', | ||
| + | `pass` varchar(60) NOT NULL default '', | ||
| + | `firstname` varchar(255) NOT NULL default '', | ||
| + | `lastname` varchar(255) NOT NULL default '', | ||
| + | `email` varchar(255) NOT NULL default '', | ||
| + | PRIMARY KEY (`uid`), | ||
| + | UNIQUE KEY `login` (`login`) | ||
| + | ) TYPE = MYISAM; | ||
| + | |||
| + | CREATE TABLE `groups` ( | ||
| + | `gid` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, | ||
| + | `name` varchar(50) NOT NULL DEFAULT '', | ||
| + | PRIMARY KEY (`gid`), | ||
| + | UNIQUE KEY `name` (`name`) | ||
| + | ) TYPE = MYISAM; | ||
| + | |||
| + | CREATE TABLE `usergroup` ( | ||
| + | `uid` int(10) UNSIGNED NOT NULL DEFAULT ' | ||
| + | `gid` int(10) UNSIGNED NOT NULL DEFAULT ' | ||
| + | PRIMARY KEY (`uid`, | ||
| + | ) TYPE = MYISAM; | ||
| + | </ | ||
| + | * local.protected.phpに | ||
| + | <code php> | ||
| + | <?php | ||
| + | require_once(' | ||
| + | ?> | ||
| + | </ | ||
| + | ===== パスワードをチェックさせる ===== | ||
| + | ユーザー名が存在すると、パスワードが違っていてもログインができてしまいます。 | ||
| + | |||
| + | conf/ | ||
| + | <code sql> | ||
| + | $conf[' | ||
| + | FROM usergroup AS ug | ||
| + | JOIN users AS u ON u.uid=ug.uid | ||
| + | JOIN groups AS g ON g.gid=ug.gid | ||
| + | WHERE login=' | ||
| + | AND name=' | ||
| + | </ | ||
| + | 最後の1行をAND pass=' | ||
| + | |||
| + | inc/ | ||
| + | <code sql> | ||
| + | function checkPass($user, | ||
| + | $rc = false; | ||
| + | |||
| + | if($this-> | ||
| + | $sql = str_replace(' | ||
| + | $sql = str_replace(' | ||
| + | $sql = str_replace(' | ||
| + | $result = $this-> | ||
| + | </ | ||
| + | の後ろに | ||
| + | | ||
| + | を挿入。 | ||
| + | |||
| + | ===== xreaの文字化け対策 ===== | ||
| + | inc/ | ||
| + | $con = @mysql_connect ($this-> | ||
| + | という行の後ろに | ||
| + | mysql_query(" | ||
| + | を挿入 | ||
| + | |||
| + | ===== 登録する ===== | ||
| + | MySQLに切り替えると、ユーザーが空になるので、登録し直す。 | ||