簡體   English   中英

如何將HTML表單輸入傳遞給PHP,然后傳遞給Ruby?

[英]How do I pipe HTML form input into PHP and then to Ruby?

這可能看起來很愚蠢。 如果無法實現,請告訴我。
所以:我有一個Rasperry Pi(RPi),它為一個簡單的家庭網絡文件共享服務器運行Raspbian和nginx。 我主要是為了學習而做的,然后直接學習。 無論如何,我的登錄系統如下:

login.html:

<html>
...
<form action="cgi-bin/loginHandler.php">
    <label for="username">Username:</label>
    <input name="username">
    <br/>
    <label for="username">Password:</label>
    <input name="password">
    <input name="button" type="submit" value="Submit">
</form>
...
</html>

cgi-bin / loginHandler.php:

<?php
exec("./login.rb $arg1 $arg2")
?>

cgi-bin / login.rb:

#!/usr/bin/ruby1.9.1
#update-alternatives changed "ruby" to "ruby1.9.1"

cmdArray = Array.new

ARGV.each do |a|
    cmdArray.push a
end

#backwards because I used push
if cmdArray[1] == "/u/afdsadf" and cmdArray[0] == "/r/unixporn"
    htmlFile = File.new("loggedIn.html", "w+")
    htmlFile.puts("<html><head></head><body>You are now logged in!</body></html>")
else
    htmlFile = File.new("notLoggedIn.html", "w+")
    htmlFile.puts("<html><head></head><body>You are now logged in!</body></html>")
end

我檢查了我的cgi-bin目錄,其中肯定沒有“ loggedIn.html”或“ notLoggedIn.html”,因此Ruby拋出錯誤或根本沒有運行。 再說一次,使用PHP首先可能不是一個好主意。 我可能還需要表單本身中的method ,但是我不知道該使用什么。

嘗試改用絕對路徑:

exec("/path/to/login.rb $arg1 $arg2")

或顯式調用ruby:

exec("/usr/bin/ruby /path/to/login.rb $arg1 $arg2")

與您嘗試打開的文件相同:

htmlFile = File.new("/path/to/loggedIn.html", "w+")
htmlFile = File.new("/path/to/notLoggedIn.html", "w+")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM