我有一个带有switch case的PHP文件,根据变量$view
包含不同的文件。
当我在本地计算机上的WAMP服务器上运行时,这非常有效。
但现在我已经上传到Web服务器,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。
出了什么问题?
答案 0 :(得分:3)
希望您在发送标题之前不要回复/打印任何内容。 你可以检查你的服务器操作系统是什么,我在文件路径中使用/,而不是\
答案 1 :(得分:2)
我猜你的网络服务器正在运行linux或其他类似unix的系统,它使用正斜杠而不是反斜杠作为目录分隔符。所以你必须替换包含路径中的斜杠:
include('models\fullcart.php');
变为
include('models/fullcart.php');
依旧......
答案 2 :(得分:1)
检查包含的文件权限我认为它们应该是755或775