2011-07-27 23 views
0

これは私の最初の投稿ですので、セットアップが一種のスクランブルであれば謝ります。予期しないPHPの警告エラー

私は、MySQLとPHPと記事データベース上で作業の途中でいます。

私は著者によってすべての記事を表示するページがあります。私はいくつかのPHP if statementsとページリダイレクトの上部にあるリンクを持っているようにしようとしているので、ユーザーはまだログインしていなければならないでしょう。ユーザーが既にログインしている場合(データベースにユーザーを追加するためのPHPスクリプトはまだありません)、リダイレクトは新しい記事を送信するためのフォームをロードします。

コントローラ(index.phpを):

<?php 
include_once $_SERVER['DOCUMENT_ROOT'] . 
     '/includes/magicquotes.inc.php'; 
require_once $_SERVER['DOCUMENT_ROOT'] . 
     '/includes/access.inc.php'; 

if (isset($_GET['add'])) 
    if (!userIsLoggedIn()) 
{ 
     include '/Test/articles/login.html.php'; 
     exit(); 
} 
    else 
{ 
     include 'form.html.php'; 
     exit(); 
} 
         :::PHP code left out for sake of example::: 
include 'articles.html.php'; 
?> 

access.inc.phpユーザ名/パスワード

userIsLoggedIn()を入力し、保持するためのSESSION()$sql enrtyスクリプトが含まれていますが、access.inc.php(自明)内の関数である

login.html.phpは私のログインフォーム

ある

form.html.phpは私のデータベース内のすべての記事を表示するページ新しい記事

articles.html.phpを提出する実際のフォームです

私の問題である私は、ログインフォームにリダイレクトするリンクのためif statementを実装する場合ユーザーがまだログインしていないときは、私のパスが/Test/articles/login.html.phpで正しいため、私は得られないクリックをクリックするとPHP警告が表示され、何をするべきかわかりません。

警告:

Warning: include(/Test/articles/login.html.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\Test\articles\index.php on line 10 

Warning: include() [function.include]: Failed opening '/Test/articles/login.html.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\Test\articles\index.php on line 10 

ヘルプしてください?私は完全な損失にあります。それはその信頼できないので、フォルダ構造を決定することになると

答えて

1

$_SERVER['DOCUMENT_ROOT']はほとんどない良い選択ではありません。

ではなくdirname(__FILE__)を使用してください。

if (!defined('DS')) { 
    define('DS', DIRECTORY_SEPARATOR); 
} 
define('APP_FOLDER', dirname(__FILE__) . DS); 

    include_once APP_FOLDER . 'includes/magicquotes.inc.php'; 
    require_once APP_FOLDER . 'includes/access.inc.php'; 

if (isset($_GET['addjoke'])) 
    if (!userIsLoggedIn()) 
{ 
     include APP_FOLDER . 'Test/articles/login.html.php'; 
     exit(); 
} 
    else 
{ 
     include APP_FOLDER . 'form.html.php'; 
     exit(); 
} 

はところで、あなたの本当の間違いは、あなたがウェブサーバのルートレベルに常駐しているフォルダにアクセスしたいことを示すテスト(/Test/...)の前にスラッシュが含まれていることでした。

+0

私はまだOPで同じエラーが出ていますが、それは何か関係があると思います(include_path = '.; C:\ xampp \ php \ PEAR') – rumspringa00

+0

あなたは絶対にあなたが実際に存在するファイルは含まれていますか? PEARインクルードパスについて心配しないでください。これは無視することができるデフォルトの設定です(インクルードするファイルを探す際の最後の手段です)。 – brezanac

+0

これは、XAMPPのPHPシステム変数に問題がありました。別のところでconfigdされた理由はありませんが、うまく動作するように管理しました。 – rumspringa00

関連する問題