为什么这段PHP代码本地可以跑,上传到虚拟主机后就不能 跳转界面了?

我是php新手 自己摸索着写了一段 上传sql数据库的话 然后跳转到主页。。这段话在本地服务器跑没什么问题,但是上传到买的虚拟主机上就不能跳转而是停留在当前界面 需要我手动回去 请问是哪里的问题?

<div class="myform">
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="text" name="title" value="#2017-XX-XX">

<input type="text" name="content" value="说一句话吧">

<input type="file" name="myupload"/>
<input type="submit" value="上传"/>
</form>
</div>

<?php

 date_default_timezone_set('PRC');
 include ("dbconnect.php");
 error_reporting(0);

 $typeArr = explode("/", $_FILES["myupload"]["type"]);
 $myimgType = array("png","jpg","jpeg","gif");
  if(in_array($typeArr[1], $myimgType))
  {

   $imgname = time().".".$typeArr[1];
   $address = "../file/".$imgname;

   $bol = move_uploaded_file($_FILES["myupload"]["tmp_name"], $address);

   if($bol)
     {
       $title = $_POST['title'];
       $content =  $_POST['content'];
       $sql = "INSERT INTO gallery (`title`,`content`,`img`) VALUES ('$title','$content','$address')"  ;
       $mysqli->query($sql);
       echo "上传成功!";
       header("Location:/gallery");
     }
    else echo "上传失败!";
  }
?>
阅读 1.3k
评论
    5 个回答
    • 972

    header函数的前面有输出语句, PHP会先发送header信息给客服端 然后(发送输出内容,即http协议中的主体内容)这是如果你就不可能对已经发送的header信息进行任何的修改了, 可以在<?php 下面加一句:

    ob_start();

    也可以去掉header 前面的 echo "上传成功!";

      相似问题
      推荐文章