• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:環境変数からIDを取得しユーザー設定へのアクセスをコントロール)

会員サイトのログインシステムにおけるユーザーアクセスのコントロール方法

YUTAKUN007の回答

  • ベストアンサー
回答No.3

非常にスパゲッティなスクリプトですが イメージとしてはこんな感じでしょうか。 実際には動きませんが(笑) <? /* ユーザー認証を行わせるスクリプト */ $loginname = $_POST['loginname'];//フォームからPOSTで渡された値。 $password = $_POST['password']; //データベースからログイン情報を読み出す。 //データベースがなければテキストファイルから読み込んで //配列処理させる。パスワードは暗号化しておいたほうがよい。 //少人数ならBASIC認証を使ったほうがシンプルかもしれませんね。 $sql = <<<EOF SELECT loginname,password FROM `userdb` where `loginname` = '$loginname'; EOF; //データベースへクエリを投げる構文を。 //PEAR系のクラスを使うとデータベースの変更にも柔軟に対応できるので○ $loginnamedb = データベースから取得したユーザーネーム $loginpassdb = データベースから取得したパスワード if($loginnamedb == $loginname || $loginpassdb == $password){ //Trueならセッション情報を記録 session_start(); $_SESSION['loginname']=$loginname; $_SESSION['password']=$password; $_SESSION['ip']=getenv("REMOTE_ADDR"); $_SESSION['login']=True; }else{ //Falseならエラーメッセージ echo "ログイン情報が違います<BR>\n"; } ?> <? /* 制限したいページの頭に */ //このスクリプトはrequire_once();で呼び出す。 if(isset($_SESSION['loginname']) || isset($_SESSION['password']) || isset($_SESSION['ip']) || $_SESSION['login'] ){ //issetでセッション変数使えたかな? //より強固にしたければここでも認証すればよい $remoteip = getenv("REMOTE_ADDR"); if(!$_SESSION['ip'] == $remoteip){ //セッション変数に登録されたipアドレスと今現在アクセスしているURLが 条件を満たしているか。 header("Location: ログインページのURL"); exit; } }else{ //情報が揃ってない場合、情報がない場合 header("Location: ログインページのURL"); exit; } ?> <? /* ログアウト */ if(session_destroy()) echo "ログアウトしました。"; }else{ echo "ログアウト処理失敗 もしくはもうログアウト済みです。"; } ?> 誰か詳しい方補足願います(--;

Intel_404
質問者

お礼

回答ありがとうございました。 ローカルの実験サーバーで試してみましたがうまくいきません。。。。やはり受注してしっかりとしたものを設置するべきなのでしょうね。 わざわざこれほどまでに書いていただきありがとうございました。

関連するQ&A

  • ユーザーコントロールの座標

    コントロール名がHogeのユーザーコントロールを作成します。 Form1にHogeを貼り付けHoge1とする。 どのようなユーザーコントロールに対してもForm1.Hoge1.Leftのような書き方ができますが、 Dim UC As Hoge UC.Leftのような書き方ができません。 後者のような参照ができないプロパティは、自分で定義したのではない、元からあるLeftとTop、Indexなどです。 このようなプロパティは、コントロールの参照の変数から、アクセスできないのでしょうか? オブジェクトはこのプロパティおよびメソッドをサポートしていませんと言われます。 オブジェクト変数が宣言されていないわけではありません。

  • 環境変数について

    ◇環境変数をセットしたい場合 WindowsXPを使っています。 コントロールパネル-システムの環境変数から設定しましたが、 ログオフや再起動しないと反映されないのでしょうか? ユーザー環境変数やシステム環境変数の違いも影響有るのでしょうか? AA C:\ PATH %AA%;として、%で括れば、登録済みの環境変数も使えるのでしょうか?

  • ユーザーIDの取得について

    現在、JBuilder+TomcatでWEBアプリを作成しています。そこで質問なのですが、サーブレットで、リクエストをしてきた人のユーザーIDを取得することはできるのでしょうか? 例えば、AさんがWindows2000のユーザーID「aaa」でログインし、IEにURLを入力してWEBアプリにアクセスしました。 この場合、サーブレット側で、AさんのユーザーIDである「aaa」を知るなんてことはできるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • 入力したユーザIDの取得

    入力フォームに入力したユーザIDやパスワードを CGIで受け取ることはできるのですが、 .htaccess を利用してIDを管理している場合に、 アクセス時に出るプロンプトに入力された ユーザIDとパスワードを受け取る方法が解かりません。 このようなことが可能であれば教えていただけませんか? OSは : Solaris WEBサーバとして : Apache を使用しています。

    • ベストアンサー
    • CGI
  • 拡張子の無いファイルをHTMLとして動作させる方法

    サーバ上に拡張子の無いファイルがあり、 このファイルに直接アクセスされた場合、HTMLとして表示する為の 方法を模索しております。 現状、各ディレクトリに「拡張子の無いHTMLファイル」と 「拡張子のあるHTMLファイル」が混在しております。 例)  /hoge   index.html(拡張子のあるHTMLファイル)   moge.html(拡張子のあるHTMLファイル)   moge01(拡張子の無いHTMLファイル)   moge02(拡張子の無いHTMLファイル) InternetExplorerでアクセスすると問題なく表示されますが、 Firefoxでアクセスすると、テキストとして(ソースが)表示されてしまいます。 上記症状からMIMEタイプの設定かなと思うのですが、解決出来ておりません。 知りたい方法に関する条件としては ・「.htaccess」ファイルで設定できる方法(httpd.confはいじれない為) ・上記例の「moge01」、「moge02」の様に複数のファイルに対応できる方法 ・上記例の様に、拡張子のアリ・ナシ混在で対応できる方法 実際のアクセス方法としては、それぞれ  ・http://hogemoge.com/hoge/moge.html  ・http://hogemoge.com/hoge/moge01(or http://hogemoge.com/hoge/moge01/) の様になります。 なお、いろいろと事情があり、「手作業で拡張子を付ける」という方法は 非現実的となってしまう為、それ以外の方法でお願い致します。 以上、解決方法に心当たりのある方、宜しくお願い致します。

  • Windowsの環境変数でのプロキシ設定

    ご教示下さい。 Windowsで、コントロールパネル→システム→システムの詳細設定→環境変数の画面を開くと、 HTTP_PROXY HTTPS_PROXY のような変数と http://10.1.1.1:8080 のような値を追加できます。 この時、除外設定(プロキシサーバを介したくないIPアドレス)の追加は可能でしょうか? 可能な場合、ワイルドカード指定は可能でしょうか? Linuxですとno_proxyなるものを追加できそうなのですが…。 よろしくお願いいたします。

  • undefinedが表示されてしまう

    URLからクエリを取得し、そのクエリを表示するJavaScriptを書きました。 例えば、 http://www.hoge.com/hoge.html?hoge=moge にアクセスすると、画面上に 「hoge=moge」 と表示されます。 スクリプトコードは以下のようになっています。 <script type="text/javascript"> QueryString = location.search.split("?"); if ( QueryString.length > 0 ) { document.write(QueryString[1]); } </script> ところが、 http://www.hoge.com/hoge.html http://www.hoge.com/hoge.html? などのクエリがないURLにアクセスすると、 「undefined」 が表示されてしまいます。 これでは都合が悪いです。 undefinedを表示させないように(何も表示させないように)するにはどうすればいいでしょうか? 使用環境はWindows7/Chromeです。 よろしくお願いします。

  • IDとパスワードでユーザーページへ転送したい

    こんにちは。 ホームページでユーザーシステムみたいなのを作りたいのですが、 よくあるログイン画面のように、IDとパスワードを入力すると、 指定されたユーザーのアドレスへ転送するようにしたいのですが、 簡単にできる方法はないでしょうか?たいしたことはしないので、 とくにソース表示でパスワードとかばれてしまってもかまいません。 又、指定してないIDやパスワードを入力されたら、 「このID(パスワード)は登録されていません」みたいなことが 書いてあるページへジャンプさせます。早急に回答を!!

  • 会員サイトのユーザーIDについて

    現在、phpで会員サイトを作る勉強をしています。 最近、よくメールアドレスとパスワードを使用して 会員専用ページにログインさせているサイトを目にします。 確かに、各サイト毎に登録するようなユーザーIDは忘れやすいので、メールアドレスとパスワードの組み合わせでログインしてもらう方がユーザー側からしても良いと思いますが、 実際、メールアドレスでログイン認証している会員サイトでもユーザー側にはわからない管理用のユーザーIDというのは付与しているのでしょうか? 付与している場合、それぞれのユーザーIDが同じにならないように乱数で作成するパターンが多いのでしょうか? ユーザーIDの法則についてはサイト毎に異なるかとは思いますが、 実際、ほとんどのサイトはどのような決まりで付与しているのか気になり、質問しました。 ご回答、よろしくお願いします。

    • ベストアンサー
    • PHP
  • システム環境変数の削除の自動化(バッチ化)

    ●質問内容 システム環境変数を変更する場合(WindowsXP時)、 「スタート」⇒「設定」⇒「コントロールパネル」⇒「システム」の 「システムのプロパティ」画面の「詳細設定」タグ内の「環境変数」ボタンを 押下して「環境変数」画面にて新規/編集/削除を実施すると思います。 システム環境変数の削除を行うにあたり上記一連操作をバッチファイル 等の単純操作にて実施したいと考えているのですがどのようにすれば実現できるでしょうか? 条件は以下の通りです。 ・OSはWindowsXPもしくはWindows2000。 ・削除するシステム環境変数名は決まっている。 ・ログオン/ログインや再起動は行わずに削除情報を反映させたい。 ●質問内容補足 自分で調べた範囲ではシステム環境変数の新規/編集であれば Windows2000のリソースキット中のsetx.exeというプログラムを 利用すれば可能だということが分かりました。 このHPで言っているように削除もバッチ処理で行いたいのです。 参考HP<<http://chinpindo.blog11.fc2.com/blog-entry-61.html#more>> お手数ですがご回答頂けると幸いです。 よろしくお願いいたします。