0

それらはすべて私の XAMMP サンドボックスでは正常に機能していましたが、現在は何もありません。

何かが間違っています。

コードは次のとおりです。

index.php

基本的にすべてのインクルードを含む一括インクルードが含まれます。

<?php

//Starting session

session_start();

//Includes mass includes containing all the files needed to execute the full script
//Also shows homepage elements without customs

include ("includes/mass.php");

//Login Form

$login = 


         "<form id='signin' action = 'login.php' method = 'POST'>
         Username<input type= 'text' name= 'username'>
         Password<input type= 'password' name= 'password'>
         <input type= 'submit' value='login' name='submit'>
         </form>";

//Calculate number of users online

$num_users_sql = mysql_query("SELECT * FROM user WHERE loggedin = '1' ", $con);

$num_online_users = mysql_num_rows($num_users_sql);

//user bash link

$user = "<a href='user.php'>User</a><br>";  

//Register Form Link     

$registerlink = "<a id='signup' href='register.php'>Sign Up</a>";

//Logged In User Links 

$logoutlink   = "<a id='logoutlink' href='logout.php'>Log out</a>";

$message = "<div id='welcome'>"."Hello"." ".$_SESSION['username']."!"."</div>";

$num_users_online = "<div id='users_online'><h2>There are ".$num_online_users." Users On Readnotes Right nw!</h2>"."</div>";

         if (isset($_SESSION['username']))

          //If user is logged in

            {

                echo $message;

                echo $user;

                echo "</br>";

                echo $num_users_online;

                echo $logoutlink;

            }

         //If user is logged out

         else

            {   
                echo $login;

                echo $registerlink;  

            }


?>

質量含む

私のすべてのインクルードが含まれています

<?php

/*Mass include - mass.php*
*Includes all thing needed for operations to start*/


//Grab Header design & details

    require("header.html");

//Grab Footer design & details

    require("footer.html");

//Grab include to connect to the database!

    require("dbcon.php");


?>

ありがとう。

4

2 に答える 2

1

サーバーを変更するときに「機能しない」というトラブルの非常に一般的な原因は次のとおりです。

  • Windows マシンで開発し、本番サーバーは Linux マシンです;; Linux ではファイル名とパスは大文字と小文字が区別されます
    • つまり、ファイル名とディレクトリ名の大文字と小文字が使用しているものと一致するかどうかを確認する必要があります。
  • 別の問題は、ファイルが見つからないことです...


2番目の問題について、2つのアイデア:

  • ;requireの代わりに , を使用します。include要求が機能しない場合、致命的なエラーが発生します
    • と を有効error_reportingdisplay_errorsして、エラー メッセージを表示します。
  • 含めるファイルを指すには常に絶対パスを使用し、相対パスは使用しないでください
    • もちろん、絶対パスをコードに入力する必要はありません。
    • dirnameしたがって、次のように関数を使用できます。


ファイル「メイン」で(他のすべてのインクルードにも同じアイデアを使用する必要があります)

require dirname(__FILE__) . '/includes/mass.php';

dirname(__FILE__)これを書いているファイルがあるディレクトリへの絶対パスを常に与えることに注意してください。


「エラーの報告と表示を有効にする」については、おそらくサーバーの構成ファイルにアクセスできないため、最も簡単な方法は、メインスクリプトの先頭に次のようなものを配置することです。

error_reporting(E_ALL);
ini_set('display_errors', 'On');

これにより、エラーがブラウザーに表示されるはずです。サーバーのエラー ログを確認するよりも、エラーを確認する方が少し簡単です。

于 2010-02-28T10:17:09.683 に答える
0

実稼働サーバーには が含まれていない可能性があり.ますinclude_path。これを修正するには、インクルードに追加し./header.htmlます。

于 2010-02-28T10:14:22.367 に答える