• paip.asp vbs通过CLI命令行调用PHP代码


    paip.asp vbs通过CLI命令行调用PHP代码


    前几天ASP调用PHP参数传递用的是自定义加密算法,还是想用DES标准加密算法来处理参数。。

    与是,想用ASP通过CLI接口来调用本地PHP的DES算法,然后加密后发送往远程的PHP模块。。

    然后抓取控制台输出。。

    1.主要是以下三行代码调用命令行

      Set  WshShell  =  server.CreateObject("Wscript.Shell")
        commandLine="cmd /c C:\Users\Administrator\Desktop\phprun.bat "&msg&" 

    "&key 
        Set oExec = WshShell.Exec(commandLine)
       
    2. 先调用BAT文件,phprun.bat。。这个文件主要动作是切换至desApi.php所在目录下,然后

    调用PHP。EXE
    @d:
    @cd "D:\UCenter_1.6.0_SC_UTF8\upload\m_dx\"
    @"C:\wamp\bin\php\php5.2.6\php.exe"  -c C:\wamp\bin\apache\apache2.2.8\bin

    \php.ini  -f "D:\UCenter_1.6.0_SC_UTF8\upload\m_dx\desApi.php"  %1  %2

    3.然后在desApi.php中,代码如下
     $param=$argv[1]; 
     $key=$argv[2]; // "iluvnjyn";
     $val =DES::Encrypt($key,$param);
      echo($val);

    ----------------在运行ASP Wscript.Shell的时候提示权限不足的解决-------------------
    我的是WIN7 ,IIS7.5
    先查看进程W3WP的用户,一般是应用程序池的名字一样。。然后把"IIS AppPool\用户名“加入

    到ADMIN组里中..这个用户名在用户管理那里隐藏看不到。。不过可以填加进去就OK了。。
    然后重启IIS,以应用此账户权限..

    参考:IIS7.5中神秘的ApplicationPoolIdentity


    -------------------------------ASP源码如下---------------------
    <%

    'for test
    desFromPhpResult=""    '返回PHP的DES结果
    errMsg=""  '错误控制台输出
    stdMsg=""  '标准控制台输出
    msg_L715="admin"
    key_L715="iluvnjyn"

    temp=desFromPhp(msg_L715,key_L715)
    if(desFromPhpResult="") then
        Response.Write("err:"&errmsg&"<p>stdout::::"&stdMsg)
    else
        Response.Write("sucess::: "&desFromPhpResult)
    end if
     %>

    <%
    'ati 2012.7.18
    'SLEEP 单位毫秒
    Sub MySleep(mySleepTime)
     Dim myTime
     myTime = Timer()*1000
     
     While Timer()*1000- myTime<mySleepTime
     ' WScript.Echo(Timer()*1000- myTime)
     ' WScript.Echo(vbCrLf)
     Wend 
    End Sub

    'Call MySleep(200)
    'ati 2012.7.18
    '返回PHP的DES结果
    desFromPhpResult="" 
    errMsg=""  '错误控制台输出
    stdMsg=""  '标准控制台输出

    Function desFromPhp(msg,key)
        'dim key
       ' key="iluvnjyn"
        Set  WshShell  =  server.CreateObject("Wscript.Shell")
        commandLine="cmd /c C:\Users\Administrator\Desktop\phprun.bat "&msg&" 

    "&key 
        Set oExec = WshShell.Exec(commandLine)
       
        '等待执行完毕  0为执行中,1为完毕
        Do While oExec.Status = 0    
            Call MySleep(200)
        Loop
       
        errMsg = oExec.StdErr.ReadAll()
        stdMsg = oExec.StdOut.ReadAll()
        If(oExec.exitcode=0) Then 'cmderr:1,phperr:255,ok:0
            desFromPhpResult=stdMsg   
        End If
    End Function 
    %>

  • 相关阅读:
    java ArrayList存储基本类型
    java ArrayList的几种方法使用
    java ArrayList的基本使用
    java 猜数字
    java Random随机生成一个数
    java Scanner输入数字、字符串
    java 构造方法
    java this的应用
    java pravite关键字的使用
    云计算服务
  • 原文地址:https://www.cnblogs.com/attilax/p/15199943.html
Copyright © 2020-2023  润新知