2017-08-24 7 views
0

私は現在作業中のウェブサイトにログインシステムを追加しています。すべてのページにsession_start()を追加する必要があります。未ログインのユーザーはアクセスできなくなります。ここでPHPがログインしたシステム - 適切な方法でHTMLを実装する

は、それが「main.php」について次のようになります。

<?php 
session_start(); 
if(!isset($_SESSION['status']) || $_SESSION['status']=='false'){ 
echo ' 
<!DOCTYPE html> 
<html><body style="background:url("img/404.png")"?></body></html>'; 
} 
else{ 
// Very Long HTML ONLY code displaying the actual page 
} ?> 

ログインフォームは、「index.phpを」に位置し、JavaScriptで処理されます。 NB:$ usersは、データベースへのAJAX呼び出しによって読み込まれた配列であり、すべてのユーザーに関連付けられたすべてのデータを含んでいます。

$('#logForm').submit(function(){ 
    var $user=document.forms["logForm"]["user"].value; 
    var $pass=document.forms["logForm"]["pass"].value; 

    for(var i=0;i<$users.length;i++){ 
     if($users[i]['user'].trim() == $user.trim() && $users[i]['password'] == $pass.trim()){ 
      if($users[i]['status']==1){ 
       $_SESSION['status']=true; 
       $_SESSION['user']=$user[i]['user']; 
       return true; 
      } 
      else{ 
       alert("Your registration is being processed") 
       return false; 
      } 
     } 
    } 
    alert("Wrong Logs"); 
    return false; 
}); 

私の質問は本当に簡単です:それは更新したり、何が起こっているのかを見て、それは本当に実用的になりので、私はPHPの他のブラケットに、すべてのHTMLコードをコピーしたくない「main.php」については (テキストエディタのエコー内ではすべてが同じ色で表示されますが、私はSublimeテキストを使用しています)。 私はこの状況を処理するための、よりエレガントでプロフェッショナルな方法がないのだろうかと疑問に思っていましたか?

else{ 
// Very Long HTML ONLY code displaying the actual page 
    include('index.php'); 
} ?> 

答えて

1

あなたが別のファイルを含めることができます。

else句であなたの問題を解決するために - よりダイナミックかつ簡単に更新可能なコンテンツのために - あなたはそれが適切であろう別のファイルとinclude作成することができます。

<?php 
session_start(); 
if(!isset($_SESSION['status']) || $_SESSION['status']=='false'){ 
    echo ' 
    <!DOCTYPE html> 
    <html><body style="background:url("img/404.png")"?></body></html>'; 
} 
else { 
    include 'somepage.html'; 
} 
?> 

をそれとも、持っている場合はautoloaderpreloadファイルには、どのコンテンツが表示されるかを決定するルールを追加できます。

私の推薦は、あなたのテンプレートのために、お使いのディスプレイのファイルのうち、ビジネスロジックを維持しようとした後、PHPの代替構文、またはテンプレートエンジンのいくつかのタイプを使用している
+0

非常に簡単で実用的な、ありがとう! – Thermodynamics

0

は、あなたの質問に答えるために:はい、あなたのPHPスクリプトにHTMLを追加することができます

+1

うまくいくはずです! – Thermodynamics

0

ビジネスロジックでは、あなたが持っている可能性があります

テンプレートで

<?php 
$status = true; 
if(!isset($_SESSION['status']) || $_SESSION['status']=='false'){ 
    $status = false; 
} 
include "template.php"; 
?> 
は、あなたが持っている可能性があります

<!DOCTYPE html> 
<html> 
<?php if($status): ?> 
    <body> 
     <h1>Hello World</h1> 
    </body> 
<?php else: ?> 
    <body style="background:url("img/404.png")"></body> 
<?php endif; ?> 
</html> 

このアプローチは、MVCフレームワークによって懸念の分離に使用されています。これはコントローラとビューの非常に基本的な例ですが、魅了された場合はMVCデザインを読むことをお勧めします。

関連する問題