2017-02-10 17 views
-6

誰かが私のサイトにデフォルトのページを置くための簡単な機能や解決策を教えてくれることを願っています。つまり、ユーザーが自分のサイトの別のページにアクセスしようとすると、そのユーザーはできません。彼はこのデフォルトページを通過する必要があります。私のサイトでは管理者ページがあるので、単純なユーザーにアクセスさせたくありません。私はインターネット上でいくつかの研究を行いましたが、私の問題に対する良い答えは見つかりませんでした。コードで単純に行い、インデックスファイルを変更しない方法はありますか?より具体的には、私はそれが私のウェブサイトのためだけに働き、すべてではないことを望みます。私は管理者用のログインシステムを持っていますが、アドレスを入力してログインシステムを使用しないで管理ページに直接アクセスできるので問題になります。インデックスを作成しようとしましたが、問題はログインしようとしたときにデフォルトページにリダイレクトされ、管理ページにはリダイレクトされません。私はどんな助けにも感謝します。ベスト若いプログラマーに感謝します。ここで PHPを使用してウェブアプリケーションのデフォルトページを作成するにはどうすればよいですか?

は、ログインページ

<?php 
    ob_start(); 
    session_start(); 
?> 

<html lang = "en"> 

    <head> 
     <title>Foredeck Login.com</title> 
     <link href = "css/bootstrap.min.css" rel = "stylesheet"> 

     <style> 
     body { 
      padding-top: 40px; 
      padding-bottom: 40px; 
      background-color: #6495ED; 
     } 

     .form-signin { 
      max-width: 330px; 
      padding: 15px; 
      margin: 0 auto; 
      color: #000000; 
     } 

     .form-signin .form-signin-heading, 
     .form-signin .checkbox { 
      margin-bottom: 10px; 
     } 

     .form-signin .checkbox { 
      font-weight: normal; 
     } 

     .form-signin .form-control { 
      position: relative; 
      height: auto; 
      -webkit-box-sizing: border-box; 
      -moz-box-sizing: border-box; 
      box-sizing: border-box; 
      padding: 10px; 
      font-size: 16px; 
     } 

     .form-signin .form-control:focus { 
      z-index: 2; 
     } 

     .form-signin input[type="text"] { 
      margin-bottom: 0 px; 
      border-bottom-right-radius: 0; 
      border-bottom-left-radius: 0; 
      border-color:#000000; 
     } 

     .form-signin input[type="password"] { 
      margin-bottom: 10px; 
      border-top-left-radius: 0; 
      border-top-right-radius: 0; 
      border-color:#000000; 
     } 

     h3{ 
      text-align: ; 
      color: #000000; 
     } 
     h1{ 
      text-align: ; 
      color: #000000; 
     } 
     </style> 

    </head> 

<?php 
     $msg = ''; 

     if (isset($_POST['login']) && !empty($_POST['username']) 
      && !empty($_POST['password'])) { 

      if ($_POST['username'] == 'foredeck' && 
       $_POST['password'] == 'foredeck1') { 
       $_SESSION['valid'] = true; 
       $_SESSION['timeout'] = time(); 
       $_SESSION['username'] = 'foredeck'; 
       $msg ='Connexion Réussite'; 
       echo "<script type='text/javascript'>alert('Connexion Réussite'); 
       window.location='foredeck.php'; </script>"; 

       header("refresh:3 location: foredeck.php"); 

      }else { 
       $msg='Identifiant ou Mot de Passe incorrecte'; 
       $msg = "<script type='text/javascript'>alert('$msg')</script>"; 
       } 
      } 
    ?> 
    </div> <!-- /container --> 

    <div class = "container"> 

    <form class = "form-signin" role = "form" 
     action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); 
     ?>" method = "post"> 
     <h4 class = "form-signin-heading"><?php echo $msg; ?></h4> 
     <h1>[email protected]</h1> 
     <h3>Entrer l'identifant et le mot de passe:</h3> 
     <input type = "text" class = "form-control" 
       name = "username" placeholder = "Identifiant " 
       required autofocus></br> 
     <input type = "password" class = "form-control" 
       name = "password" placeholder = "Mot de passe " required> 
     <br> 

     <button class = "btn btn-lg btn-primary btn-block" type = "submit" 
       name = "login">Se connecter</button> 
    </form> 
    </div> 
    </body> 

のindex.phpここで

<?php 

header('Location: Foredeckmain.php'); 
exit; 
?> 

されています10

は、ここでは、とにかくそれをやりたいが、なぜ

<?php 
    session_start(); 
    unset($_SESSION["username"]); 
    unset($_SESSION["password"]); 

    echo 'Déconnexion en cours...'; 
    header('Refresh: 2; URL = foredeckmain.php'); 
?> 
+0

をチェックする必要があります。コード(index.phpなど)だけでは、他のユーザーが完全なURLで管理ページにアクセスすることを防ぐことはできません。さらに、admin用のログインシステムがあります。これは、通常のユーザーが管理ページにアクセスする場合には問題にならないはずです。たぶんあなたがしようとしていることをもっと説明することができます – Prisoner

+0

アドレスバーのウェブページの正確なアドレスを入力すれば正常にログインした後、管理者としてログインして、ページにアクセスできます。このページにアクセスするにはログインする必要があります。そうしないと、ホームページにリダイレクトされます。ログインページ=>管理ページ。私が管理ページのアドレスを入力すると、私はログインすることなく問題にアクセスすることができます。 –

+0

"ログインシステム"は変更する必要がありますが、**インデックス**ファイルは変更しないでください。あなたはログインせずに管理ページにアクセスすることができます、それはあなたのログインシステムが_remember_あなたにセッションを格納している可能性があります。あなたは再アクセスすることは他のpplが行うことを意味するものではありません。 – Prisoner

答えて

1

が真であるために、私はその理由を理解していなかったログアウト一部です。

しかし、私があなただったら、私は次のステップ

  1. Apacheの設定/ nginxのになるだろう/またはあなたのデフォルトのページを介してすべてのリクエストを処理するために/あなたのウェブサイトのために使用しているもの(index.phpをまたはそのようなもの)

  2. あなたのユーザが必要とするページを理解する必要があります。それが存在しなければ404ページを表示してください。

  3. ページが存在し、そのページが既定のページではなく、以前にユーザーがそのページにアクセスしていない場合は、そこでリダイレクトします。デフォルトのページで
  4. は、セッションへの書き込み例えば $_SESSION['passed_default'] = 1;

  5. は今、あなたのindex.phpにあなたがやろうとしているのかわからない

    if(isset($_SESSION['passed_default']) && $_SESSION['passed_default']) { //Show desired page } else { //redirect to default }

+0

よくあることですが、デフォルトのページでオプションを指定してみましょう:1-管理者は、アンケートを編集するためにログインする必要があります。2 - 顧客はアンケートに答えます。 –

+0

ありがとう@Rulisp –

関連する問題