0

他们在我的 XAMMP 沙箱上都运行良好,但现在什么都没有。

我做错了什么。

这是代码:

索引.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 上区分大小写
    • 这意味着您应该检查文件和目录名称中的大小写是否与您使用的匹配。
  • 另一个问题是找不到文件...


关于第二个问题,两个想法:

  • 使用require, 代替include; 如果要求不起作用,您将收到致命错误
    • 并启用error_reportingand display_errors, 以查看错误消息。
  • 始终使用绝对路径指向您包含的文件,而不是相对路径
    • 当然,您不想在代码中输入绝对路径
    • 所以,你可以使用这个dirname函数,有点像这样:


在您的文件“main”中(所有其他包含应使用相同的想法)

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 回答