2016-05-18 11 views
1

セキュリティ上の理由から、すべての接続ファイルをルートディレクトリの外にあるフォルダ内のDBおよびログインファイルに保存する必要があります。このように:パブリックフォルダの外部にあるファイルへのアクセス

Project: 
     includes: 
      conncect.php 
      process_login.php 
     general_files: 
      index.php 

私のindex.phpには以下のものがあります。

The requested URL /includes/process_login.php was not found on this server. 

は誰もが私が何をしたいのか行う方法を知っているん:

<form action="../includes/process_login.php" method="post" name="login_form"> 
     [...] 
</form> 

問題は、私はそのフォームを送信しようとすると、私はと言うエラーが出るということですか?

+0

HTTP要求を使用して文書ルートの外側を走査することはできません。あなたは 'include()'と他のファイル操作を介して行うことができます。 –

+0

FYIファイル 'conncect.php'にはタイプミスがあります。 – reformed

答えて

1

here」のように、「インクルードファイルをドキュメントルートの外に移動する必要があります。そのため、Webサーバーが直接そのファイルを提供できなくなります。見hereよう

include('/home/xx/xx/domains/mydomain/webroot/file-to-include.php'); 

: はしかし、それらにアクセスするために、あなたはそうのように、完全なパスを使用することができます。

1

文書のルートが<Project>/general_filesであると思われる場合は、process_login.phpファイルがパブリックWebフォルダの外にあります。 general_files/

Project: 
    includes: 
     conncect.php 
    general_files: 
     index.php 
     process_login.php 

2)、または新しいPHPファイル(例えば、new_login.phpを追加):

あなたは2つのオプションがあります。

1)general_files/ディレクトリにprocess_login.phpを移動し、それに応じてaction属性を更新process_login.phpが含まれており、フォームのaction属性をこのファイルに設定してください:

Project: 
    includes: 
     conncect.php 
     process_login.php 
    general_files: 
     index.php 
     new_login.php 
関連する問題