paip.asp vbs通過CLI命令列調用PHP代碼

來源:互聯網
上載者:User

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 
%>

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.