2011-04-29 69 views
0

這是一個簡單的任務,可爲5個英語單詞設置鏈接標籤:Hello,Good -bye,Love,Cat和Dog。每個href都通過鏈接到Spanish.pl文件並通過每個單詞的西班牙等價物完成:Hola,Adios,Amor,Gato和Perro。Perl,ASP和PHP簡單分配顯示西班牙語到英語等值

以下是spanish.html代碼:

<p><a href="cgi-bin/spanish.pl?english=Hello&spanish=Hola">Hello</a></p> 
<p><a href="cgi-bin/spanish.pl?english=Good-bye&spanish=Adios">Good-bye</a></p> 
<p><a href="cgi-bin/spanish.pl?english=Love&spanish=Amor">Love</a></p> 
<p><a href="cgi-bin/spanish.pl?english=Cat&spanish=Gato">Cat</a></p> 
<p><a href="cgi-bin/spanish.pl?english=Dog&spanish=Perro">Dog</a></p> 

這是spanish.pl:

print "The Spanish word for ", param('english'), " is ", param('spanish') "\n"; 

我不是很熟悉Perl還,但我不確定要做什麼。當你點擊英文單詞的鏈接時,它只是下載perl文件。我如何才能在瀏覽器中顯示西班牙文單詞?

另外,它應該是簡單的或類似的做同樣的確切分配,但在ASP和PHP?我不知道他們應該是什麼樣子......

我有這個在我的PHP文件,但不知道這是正確的:

The Spanish word for <?php echo $_POST["english"]; ?> is <?php echo $_POST["spanish"]; ?>. 

我只是需要幫助修復我的代碼和理解如何讓這個顯示正確。

謝謝。

+0

我不能說Perl的代碼,但你打在頭上的PHP代碼。將PHP輸入直接發佈到您的網頁上會帶來一點安全風險,並且對這些輸入進行消毒總是有好處的。如果某些東西不能以$ _POST顯示,請嘗試使用$ _REQUEST。 – DaOgre 2011-04-29 16:15:58

回答

1

<p><a href="cgi-bin/spanish.pl?english=Hello&spanish=Hola">Hello</a></p>

Validate. Validate. Validate.這應該是&amp;

print "The Spanish word for ", param('english'), " is ", param('spanish') "\n";

如果被輸出到HTML文件,然後你有一個XSS problem

當你點擊英文單詞的鏈接時,它只是下載perl文件。

您需要:

  1. 挑一個API,Web服務器和Perl程序之間的通信。
    • CGI是最簡單的選擇,但存在嚴重的效率問題。
    • PSGI是現代的方法。
  2. 確保Perl程序符合該API
  3. 配置Web服務器來執行指定網址的Perl程序(其中的具體取決於您所使用的Web服務器上)

另外,在做相同的確切分配時,它應該是簡單的還是相似的,但在ASP和PHP中?

配置完成後,ASP和PHP做出你想做的事(如「你想輸出一個HTML文件」),你不從從頭開始編寫CGI得到(你有什麼一些假設明確發送Content-Type標題)。

The Spanish word for <?php echo $_POST["english"]; ?> is <?php echo $_POST["spanish"]; ?>.

的鏈接使GET請求,不POST請求。

相關問題