php+IIS环境下
在本地机器上对编译好的程序(一个可执行程序,加密用的)可以执行exec()函数,但将代码放到服务器上,对php编译好的程序(一个可执行程序,加密用的)就不能执行exec()函数

解决方案 »

  1.   

    php.ini中有配置项,是否允许使用exec,system等函数。
      

  2.   

    你确定服务和你以一样的操作系统?
    exec()调用的exe程序到Linux主机上可是没有的哦!
      

  3.   

    exec函数在服务器上可以运行,但是如果是php编译过的程序(比如$EncodingValue,该变量是各字符串连接起来的,需要将该变量进行加密)就不能运行,不如说exec('whoami');  就可以运行,但是如果是exec("$EncodingValue");就不能执行。
    在本地机器上都能运行,但是放到服务器上就出现上述情况了。
      

  4.   

    服务器上需要开启exec执行权限
      

  5.   

    可是服务器上可以执行exec()函数啊,就是不能对外部程序(变量)进行执行啊。简单的 exec('abc')就可以,但是如果从外部来的,比如是$EncodingValue(这是一些变量的组合, 
    $cmd = sprintf("C:\Inetpub\wwwroot\encoding.exe W E \"%s\" ", $EncodingValue); 这样之后执行$EncodingTxt = exec($cmd); 之后 用echo $EncodingValue  这个就没有值了)
      

  6.   

    描述怪怪的"这样之后执行$EncodingTxt = exec($cmd); 之后 用echo $EncodingValue  这个就没有值了"
    没看懂,是不是说$EncodingTxt为空?$EncodingValue  没有值就太怪了。1 拿来问,要描述清楚,认真点说明问题
    2 举例子也举个能让别人看懂的。exec('abc')是啥意思? 你把$cmd打印出来,直接执行exec($cmd命令)能执行不?想得到解答,首先注意自己的提问
      

  7.   

    就因为问问题的人越来越不认真,莫名其妙,csdn上已经少有人有耐心回答问题了。
    描述不清,谁没事闲着
      

  8.   

    $EncodingTxt是空的,但是$EncodingValue是有值的,下面程序是对$EncodingValue进行加密之后想将加密之后的程序($EncodingTxt)显示出来,但是未能显示
    如果是在本地机器上就可以显示,但是放到服务器上就不显示了,但是在服务器上exec('whoami');  就可以显示出来。在服务器上
    $cmd = sprintf("C:\Inetpub\wwwroot\encoding.exe W E \"%s\" ", $EncodingValue); 
    $EncodingTxt = exec($cmd); 执行上述两行代码之后$EncodingTxt就什么都不显示
      

  9.   

    确保php.ini开启配置
    exec,system等函数。