【问题标题】:Fatal error: Class 'COM' not found in php 5.6致命错误:在 php 5.6 中找不到类“COM”
【发布时间】:2017-11-14 10:14:23
【问题描述】:

我在由 GoDaddy 托管的 Linux Web 服务器上放置了多个 MS Access 数据库。但是当我尝试通过我的登录门户登录时,它给了我错误:致命错误:第 11 行的 /home/buerer/public_html/flames/events/checklogin.php 中找不到 Class 'COM'

这里是 checklogin.php 文件的代码:

<?php
session_start();
ini_set('display_errors', 1); error_reporting(E_ALL);
global $rs;
// parse username and password sent from signup form post to php variables
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 
$access = realpath("db/users.mdb");
$_SESSION['accessLevel'] = "READ DATA FROM TABLE";
//create connection as COM object
$conn = new COM('ADODB.Connection') or exit('Cannot start ADO.');
//create recordset as new COM object
$rs = new COM('ADODB.Recordset')  or exit('Cannot create recordset.');
//dim connection with driver and password
  $conn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$access;Jet OLEDB:Database Password='softball1234';");
//$conn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$access;Jet OLEDB:Database Password=$mypassword;");
$sql = "SELECT * FROM tblUsers WHERE VendorCode='$myusername' and Password='$mypassword'";
//execute sql in connection to database to store are recordset
$rs = $conn->Execute($sql);


if ($rs->EOF) {
        echo "Wrong Username or Password";
        print "<br>Click <a href=main_login.php>here</a> to try again.";

  //print $rs->ErrorMsg(); // Displays the error message if no results could be returned
}else{
        $_SESSION['AccessLevel'] = $rs->fields["AccessLevel"]->value;
        $_SESSION['MailingListID'] = $rs->fields["MailingListID"]->value;
        $count = 0;
    while (!$rs->EOF) { 
        $count++;
        $rs->MoveNext();
     } //while !$rs->eof

    if($count>0){
        // Register $myusername, $mypassword and AccessLevel and redirect to file "selection.php"
        $_SESSION['username'] = $myusername;
        $_SESSION['password'] = $mypassword;


        //$_SESSION['AccessLevel'] = $rs->fields["AccessLevel"]->value;

        header("location:selection.php");
    }else {

        echo "Wrong Username or Password";
        print "<br>Click <a href=main_login.php>here</a> to try again.";
        session_destroy();
        }
}
?>

我在 GoDaddy 文件管理器中找不到 php.ini 文件,有人知道如何解决这个问题吗?

【问题讨论】:

标签: php linux ms-access webserver


【解决方案1】:

从 PHP 5.4.5 开始,COM 和 DOTNET 不再内置在 php 核心中。您必须在 php.ini 中添加 COM 支持:

[COM_DOT_NET] 扩展=php_com_dotnet.dll 否则,您将在错误日志中看到:致命错误:找不到类“COM”

【讨论】:

  • 由于 OP 添加了标签linux,我认为这是他的操作系统,所以你也可以提到COM 扩展在 nix 系统上不可用。
  • 你知道我可以在 Linux 网络服务器中的哪里访问我的 php.ini 文件吗? phpinfo.ini 上的路径不存在。
  • 大部分情况下/etc/php.ini
  • @Bowen 再次COM 将无法在 Linux 服务器上运行。你抄吗?
  • *.dll-files 是 Windows only(就像@u_mulder 反复说过的那样)。
猜你喜欢
  • 2013-08-16
  • 2014-11-03
  • 2012-07-27
  • 2015-03-20
  • 2016-05-11
  • 2013-11-03
  • 2016-09-17
  • 2016-01-29
  • 2017-07-04
相关资源
最近更新 更多