在IIS里面配置了虚拟目录,测试<?php
  phpinfo();
  ?>可以正常显示,但是程序却显示空白页面,(程序我在公司电脑上能正常运行,也是XP+IIS5.1+PHP5.2)
查看空白页面的源代码只有<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312"></HEAD>
<BODY></BODY></HTML>
我的程序代码为<?php
error_reporting(E_ALL);
  require ("public/PublicFunction.php");
  require ("public/Database.php");
  $db = new msdatabase();//可能是这两行有问题,注释掉以后就可以执行到后面,提示对象$db不存在之类的
  $dbtmp = new msdatabase();  //public/PublicFunction.php目录结构都没有问题的,
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>孚立软件</title>
<link href="css/style.css" rel="stylesheet" type="text/css">
<meta name="author" content="vdoing network">
<meta name="keywords" content="OA,Free,政府信息化建设,孚立网视通,企业品牌网站建设,软件,杭州">
<style type="text/css">
<!--
#Layer1 {
position:absolute;
width:57px;
height:20px;
z-index:1;
left: 931px;
top: 590px;
}
-->
</style>
</head><body>
<div class="box">
  <!--top开始-->
     <?php
    require('top.php');
    ?>
  <div class="div_content">
    <!--类似图片自动切换-->
    <div class="img_switch">
      <div class="img_switch_content" id="pic"> <a href="#"><img src="images/img_switch_01.jpg" alt="" ></a> <img src="images/img_switch_02.jpg" alt="" > <a href="info/freewst.php?mno=0203"><img src="images/img_switch_03.jpg" alt="" border="0" ></a> <img src="images/img_switch_04.jpg" alt="" > </div>
      <div class="img_switch_text">
        <div class="number_nav">
          <ul id="play">
            <li alt="1">1</li>
            <li alt="2">2</li>
            <li alt="3">3</li>
            <li alt="4">4</li>
          </ul>
        </div>
      </div>
      <div class="img_switch_vdoing"></div>
      <div class="img_switch_bottom"></div>
    </div>
    <!--新闻内容和产品-->
    <div class="index_content">
      <div class="index_content_left">
        <div class="index_content_web">
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
后面的代码就是执行查询语句读取数据了,没别的特别的语句,我怀疑问题出在前面4行。
我的IIS虚拟目录的权限设置为:脚本资源访问,读取,记录访问和索引资源
执行权限为:纯脚本在该虚拟目录下放置简单的测试页面<?php
   echo "hello"; ?>也可以正常显示hello
好好的程序到我自己的电脑上就运行不了了,真是郁闷,而且什么提示也没有的,我已经在php.ini中把
error_reporting  =  E_ALL & ~E_NOTICE
display_errors = On
都设置了,session保持目录也有的,真不知道问题出在哪里,请高手指教啊!!!

解决方案 »

  1.   

    我用die("abc");测试了一下<?php
    error_reporting(E_ALL);
      require ("public/PublicFunction.php");
      require ("public/Database.php");
      
      $db = new msdatabase();die("abc");
      $dbtmp = new msdatabase();  
    ?>没有输出abc,应该是$db = new msdatabase();有问题了Database.php代码如下<?php  class msdatabase
        {
          //定义类属性变量
          var $sqlserver; //数据库服务器名
          var $sqluser; //登录用户名
          var $sqlpassword; //登录密码
          var $linkid; //数据库连接标识符
          var $sqldb; //当前数据库
          var $rowcount; //检索结果记录总数
          var $colcount; //检索结果字段总数
          var $nowid; //检索结果行标识符
          var $rowno; //当前行号
          var $dataobj; //检索结果对象标识符
          var $dataarray; //检索结果数组标识符
      
      var $pagecount; //总页数
              var $currentpage=1; //当前页
      var $pagesize=15; //每页行数
      var $beginrow=1; //当前页--开始行
          var $endrow=2; //当前页结束行
          
          /**********************************************************/
          // 定义Database类的构造函数
          //参数:
          // $dbServer 数据库服务器名字
          // $dbUser 数据库登录用户名
          // $dbPassword 数据库登录用户密码
          // $Database 当前工作数据库
          /**********************************************************/
          function msdatabase()
          {
            $this->sqlserver = "127.0.0.1";
            $this->sqluser = "freeweb";
            $this->sqlpassword = "freeweb";
            $this->sqldb = "FreeWEB";
            
            //连接数据库
            $this->linkid = @mssql_connect($this->sqlserver, $this->sqluser, $this->sqlpassword);
            if (!$this->linkid) {
              //echo "连接数据库时出错!";
              return;
            }
            //选择当前工作数据库
            $result = @mssql_select_db($this->sqldb);
          }
          
          /**********************************************************/
          // 检索数据
          //参数:
          // $sql 要检索数据的SQL表达式
          /**********************************************************/
          function query($sql)
          {
            $this->nowid = @mssql_query($sql, $this->linkid);
            if (!$this->nowid) {
              //echo "检索数据时出错!";
              return;
            }
            $this->rowno = 0;
            $this->rowcount = @mssql_num_rows($this->nowid);
            $this->colcount = @mssql_num_fields($this->nowid);
            //$this->dataobj = @mssql_fetch_object(this->nowid);
            //$this->dataarray = @mssql_fetch_row($this->nowid);
            return;
          }
          
          /**********************************************************/
          /**********************************************************/
          function getdata_obj()
          {
            $this->dataobj = @mssql_fetch_object($this->nowid);
            if ($this->rowno <> "0") $this->rowno = $this->rowno + 1;
            return;
          }
          /**********************************************************/
          /**********************************************************/      function getdata_array()
          {
            $this->dataarray = @mssql_fetch_row($this->nowid);
            if ($this->rowno <> "0") $this->rowno = $this->rowno + 1;
            return;
          }
      
          /**********************************************************/
          // 取指定行数据
          //参数:
          // $recordno 行号,为空取当前行
          // $type 取数据方式,0为对象,否则为数组
          /**********************************************************/
          function getdata_row($recordno, $type)
          {
            $this->rowno = $recordno;
            @mssql_data_seek($this->nowid, $this->rowno);
            if ($type <> "0") {
              $this->dataarray = @mssql_fetch_row($this->nowid);
              if ($this->rowno <> "0") $this->rowno = $this->rowno + 1;
            } else {
              $this->dataobj = @mssql_fetch_object($this->nowid);
              if ($this->rowno <> "0") $this->rowno = $this->rowno + 1;
            }
            return;
          }
        }
    ?>
      

  2.   

    我不知道为什么会有问题,在公司电脑上都是用的好好的,放到服务器上(PHP4)也没问题,到了我自己的电脑上就出问题了
    请高手指点
      

  3.   

    应该是缺少连接用的mssql的dll吧,你到apache的错误日志里查看,将你的php文件内包括ext文件夹内的ms开头的dll拷贝到系统system32目录,重启计算机
      

  4.   

    查一下php.ini文件对比一下,看那一些没开,以下是phpnow的配置
    ;extension=php_bz2.dll
    extension=php_curl.dll
    ;extension=php_dba.dll
    ;extension=php_dbase.dll
    ;extension=php_exif.dll
    ;extension=php_fdf.dll
    extension=php_gd2.dll
    ;extension=php_gettext.dll
    ;extension=php_gmp.dll
    ;extension=php_ifx.dll
    ;extension=php_imap.dll
    ;extension=php_interbase.dll
    ;extension=php_ldap.dll
    extension=php_mbstring.dll
    extension=php_mcrypt.dll
    extension=php_mhash.dll
    ;extension=php_mime_magic.dll
    ;extension=php_ming.dll
    ;extension=php_msql.dll
    ;extension=php_mssql.dll
    extension=php_mysql.dll
    ;extension=php_mysqli.dll
    ;extension=php_oci8.dll
    ;extension=php_openssl.dll
    extension=php_pdo.dll
    ;extension=php_pdo_firebird.dll
    ;extension=php_pdo_mssql.dll
    extension=php_pdo_mysql.dll
    ;extension=php_pdo_oci.dll
    ;extension=php_pdo_oci8.dll
    ;extension=php_pdo_odbc.dll
    ;extension=php_pdo_pgsql.dll
    ;extension=php_pdo_sqlite.dll
    ;extension=php_pgsql.dll
    ;extension=php_pspell.dll
    ;extension=php_shmop.dll
    ;extension=php_snmp.dll
    ;extension=php_soap.dll
    extension=php_sockets.dll
    ;extension=php_sqlite.dll
    ;extension=php_sybase_ct.dll
    ;extension=php_tidy.dll
    extension=php_xmlrpc.dll
    ;extension=php_xsl.dll
    extension=php_zip.dll
      

  5.   

    问题解决了,原来是我本机上装的两个PHP搞混了
    原先装APACHE的时候装了一个PHP(.exe安装方式的)里面什么DLL文件都没有的。
    我后来装IIS后又重新弄了一个PHP5.2的,是直接解压缩安装方式的,什么DLL文件都已经部署好了,该复制到WINDOWS下的也都已经复制过去了。IIS中也把筛选器的DLL文件指定到C:\php5.2\php5isapi.dll(我PHP解压缩的目标目录)突然注意到用phpinfo();测试的时候返回的Loaded Configuration File  D:\PHP\php.ini不知道为什么他会使用D盘下的php.ini  而不是 WINDOWS下的php.ini
    后来直接卸载了第一次装的PHP,然后重启电脑,一切OK了