【问题标题】:php include not workingphp包括不工作
【发布时间】:2011-03-06 10:43:18
【问题描述】:

我有一个带有 switch case 的 PHP 文件,可以根据变量 $view 包含不同的文件。

当我在本地机器上的 WAMP 服务器上运行它时,它运行良好。 但现在我已经上传到一个网络服务器,include 函数刚刚停止工作。没有任何内容。

switch($view)
    {
    case 'AddToCart':
        echo 'adding to cart';
        if($_POST['qty']>0)
        {
            if(!isset($_SESSION['cart'][$_POST['id']]))
            {
                $_SESSION['cart'][$_POST['id']]=$_POST['qty'];
            }
            else
            {
                $_SESSION['cart'][$_POST['id']]+= $_POST['qty'];
            }   
        }
        header('Location:index.php');
        break;

    case 'UpdateCart':
        echo 'updating cart...';
        if(isset($_SESSION['cart'][$_POST['id']]))
        {
            if($_POST['updateqty']>0)
                $_SESSION['cart'][$_POST['id']]=$_POST['updateqty'];
            else
                unset($_SESSION['cart'][$_POST['id']]);
        }   
        header('Location:index.php?view=ViewCart');
        break;

    case 'ViewCart':
        echo 'This is the full feature cart.';
        include('models\cart.php');
        include('models\fullcart.php');
        break;

    case 'Checkout':
        echo 'reached checkout';
        include('models\finalcart.php');

        break;

    case 'ClearCart':
        echo 'Clear cart reached';
        $_SESSION['cart']=array();
        $_SESSION['total_items']=0;
        $_SESSION['total_price']=0;
        header('Location:index.php');
        break;

    case 'RemoveItem':
        echo 'Removing item '.$_POST['id'].'<br><br>';
        unset($_SESSION['cart'][$_POST['id']]);
        header('Location:index.php?view=ViewCart');
        break;

    default:
        echo 'index page...lalalalalal...<br>';
        include('models\cart.php');
        include('models\catalog.php');
    }

我在网络服务器上执行了phpinfo,发现它运行的是 PHP 版本 5.2.17。

怎么了?

【问题讨论】:

  • 文件是否在正确的路径中?他们有正确的权限吗?您是否收到任何错误/警告消息?
  • 在我看来,这可能是目录分隔符问题,因为 Window 使用 \ 和 Unix /。但是,您是否开启了错误报告功能?

标签: php include


【解决方案1】:

希望您知道在发送标头之前不要回显/打印任何内容。 你能检查一下你的服务器操作系统是什么吗,我在文件路径中使用/而不是\

【讨论】:

  • 是的,就是斜线...非常感谢好先生...我的愚蠢,斜线是我应该检查的第一件事,但我从来没有想过可能有问题斜线...
【解决方案2】:

我猜你的网络服务器正在运行 linux 或其他类似 unix 的系统,它使用正斜杠而不是反斜杠作为目录分隔符。所以你必须替换包含路径中的斜杠:

include('models\fullcart.php');

变成

include('models/fullcart.php');

等等……

【讨论】:

    【解决方案3】:

    检查包含的文件权限,我认为它们应该是 755 或 775

    【讨论】:

      猜你喜欢
      • 2014-07-20
      • 1970-01-01
      • 2011-08-11
      • 2013-07-31
      • 2011-12-01
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      相关资源
      最近更新 更多