对啊,就是使用COM,不过你的activex要有opencert方法噶连接acc我就是使用adodb.connection的<?php
$cnStr="provider=microsoft.jet.oledb.4.0;data source=".realpath("db.mdb");
$cn;
function OpenDB()
{
global $cn,$cnStr;
$cn=new COM("adodb.connection");
$cn->open($cnStr);
}function CloseDB()
{
global $cn;
$cn->close();
$cn=null;
}
?>
$cnStr="provider=microsoft.jet.oledb.4.0;data source=".realpath("db.mdb");
$cn;
function OpenDB()
{
global $cn,$cnStr;
$cn=new COM("adodb.connection");
$cn->open($cnStr);
}function CloseDB()
{
global $cn;
$cn->close();
$cn=null;
}
?>
报了这个错误~~ 帮我看看把~对php不熟啊!!
$cnStr="provider=microsoft.jet.oledb.4.0;data source=".realpath("AXSecurity.ocx");
$cn;
function OpenDB()
{
global $cn,$cnStr;
$cn=new COM("adodb.connection");
$cn->open($cnStr);
echo aaaa;
}function CloseDB()
{
global $cn;
$cn->close();
$cn=null;
}
OpenDB();
?>这是仿照你写得代码~
classid="CLSID:F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6" >
</OBJECT> 这个是以前用jsp调用控件时的代码~ 里面的 CLSID可以用吗~还有这个压缩文件AXSecurity.cab怎么用啊 ?
<?php
$obj=new COM("F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6");
echo $obj->OpenCert(0, 0, 0);
echo $obj->GetLastError();
?>
这样可以了把?
Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6': 无效的语法 ' in C:\Program Files\Apache Group\Apache2\htdocs\getcert.php:2 Stack trace: #0 C:\Program Files\Apache Group\Apache2\htdocs\getcert.php(2): com->com('F5A1E785-0D4A-4...') #1 {main} thrown in C:\Program Files\Apache Group\Apache2\htdocs\getcert.php on line 2
classid="CLSID:F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6" >
</OBJECT>
??????你这是可视的客户端控件,不能在服务器端用php调用
如果是服务器的端com,理论是可以能过com调用的,要注意的是传值和返回值数据类型
总是不成功,调<?phpinfo();?>能显示phpinfo的信息, 现在页面是这样写的
<?php
$cn=new COM("F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6");
$cn->OpenCert(0,0,0);
echo $cn;
?> 报的错误是:
Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6': 无效的语法 ' in C:\Program Files\Apache Group\Apache2\htdocs\getcert.php:2 Stack trace: #0 C:\Program Files\Apache Group\Apache2\htdocs\getcert.php(2): com->com('F5A1E785-0D4A-4...') #1 {main} thrown in C:\Program Files\Apache Group\Apache2\htdocs\getcert.php on line 2 好像是控件没用对~帮我看看把 急死了
我创建adodb.connection没问题的啊,使用clsid的话也可以,只是需要{}括起,大括号
<?php
//下面代码调用COM组件都没问题的
$cnByClsID=new COM("{00000514-0000-0010-8000-00AA006D2EA4}");//adodb.connection对应的clsid
//$cnByClsID=new COM("00000514-0000-0010-8000-00AA006D2EA4");//===>这样会出错$cnByClsName=new COM("adodb.connection");
?>
regsvr32 AXSecurity.ocx算是注册吗?
<?php
$cn=new COM("{F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6}");
echo $cn;
?>我用这个试了试,还是报错
Fatal error: Uncaught exception 'com_exception' with message 'Error [0x8000ffff] 灾难性故障 ' in C:\Program Files\Apache Group\Apache2\htdocs\getcert.php:3 Stack trace: #0 C:\Program Files\Apache Group\Apache2\htdocs\getcert.php(3): unknown() #1 {main} thrown in C:\Program Files\Apache Group\Apache2\htdocs\getcert.php on line 3
我看了我的那个CLSID是F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6没错
建议你用PHP中的PECL扩展完成相应的操作!
<?php
$cn=new COM("{F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6}");
echo $cn;
?>
要是这样在php嵌入html代码,可以吗?要是可以怎么调用控件的函数啊~
<OBJECT id="AXSecurity" codeBase="AXSecurity.cab#version=1,0,0,1"
classid="CLSID:F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6" >
</OBJECT>
<body>
<?php
echo AXSecurity->OpenCert(0,0,0);
?>
<OBJECT id="AXSecurity" codeBase="AXSecurity.cab#version=1,0,0,1"
classid="CLSID:F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6" >
</OBJECT>
</body>
</html>
有这种形式调控件 还是不行~~错在哪了 各位指点以下把~
<html>
<body onload="OnInit();">
<SCRIPT LANGUAGE="JavaScript">
var mycontrol=null; function OnInit()
{
mycontrol=AXSecurity;
mycontrol.OpenCert(0,0,0);
}
</script>
<OBJECT id="AXSecurity" codeBase="AXSecurity.cab#version=1,0,0,1"
classid="CLSID:F5A1E785-0D4A-4E07-A3E7-15B1D3AF52E6" >
</OBJECT>
</body>
</html>
2. 在PHP中调用这个WS来间接达到目的……
php.ini没动过~~怎么改啊?
[COM]
; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
;com.typelib_file =
; allow Distributed-COM calls
;com.allow_dcom = true
; autoregister constants of a components typlib on com_load()
;com.autoregister_typelib = true
; register constants casesensitive
;com.autoregister_casesensitive = false
; show warnings on duplicate constat registrations
;com.autoregister_verbose = true
是在php.ini这里改吗