小練習: 用CGI送出一個form。
接到form get出來的值,並顯示在頁面上。
其實這個練習的成功非常的詭異,首先我是把檔案放在XAMPP的cgi-bin裡面,檔名是ch01.cgi,但是用來解譯的perl是另外用activePerl裝的perl,而且cgi檔,打錯一行,後面就都不會執行。
執行頁面沒有特別的困難,就像平常在localhost一樣,只要在瀏覽器打上localhost\cgi-bin\ch01.cgi就可以成功執行,但若程式有問題,很容遇到Server Error...
ch01.cgi
要取的這個cgi送出去的get參數值
建立一個$query的變數,將CGI->new指定給$query
將$query->Vars指定給%data這個hash(雜湊)
接著再將%data foreach出來,可得所有get的值跟value
才學疏淺,若有錯誤還麻煩糾正我一下,謝謝。
接到form get出來的值,並顯示在頁面上。
其實這個練習的成功非常的詭異,首先我是把檔案放在XAMPP的cgi-bin裡面,檔名是ch01.cgi,但是用來解譯的perl是另外用activePerl裝的perl,而且cgi檔,打錯一行,後面就都不會執行。
執行頁面沒有特別的困難,就像平常在localhost一樣,只要在瀏覽器打上localhost\cgi-bin\ch01.cgi就可以成功執行,但若程式有問題,很容遇到Server Error...
ch01.cgi
#!c:\perl64\bin\perl.exe -w
#上面這行表示用哪一隻程式來解譯
#有的書寫說,在window系統下有沒有這行都無所謂
#恩..不過在我的windows下,這行一定要有,如果忘記這行會顯示Server Error....
use CGI;
#use 表示使用後面的模組
print "Content-type: text/html\n\n";
print '<html>';
print '<head>';
print '<meta name="author" content="Kay Vogelgesang">';
print '</head>';
print "<body>This is my first CGI<br>";
print "<form>
<input type='hidden' name='action' value='learn_perl'>
<input type='hidden' name='status' value='good'>
Please Enter your name:<input type='text' name='user'>
<input type='submit' value='送出'/></form>";
print "<strong>以下是get的資料</strong><hr>";
my $query = CGI->new;
my %data = $query->Vars;
#get data use name=>value, this will "export" the form values
foreach my $param (keys %data) {
print "$param = $data{$param}"."<br>";
}
#純量變數(scalar)是$開頭 $query
#陣列(Array)是@開頭 ex:@myarray
#雜湊(Hash)是%開頭 ex:%hash
print "<br>直接把\$query print出來是: <strong>" . $query ."</strong><br>";
print "<br><strong>把個別的get欄位print出來</strong><hr>";
print "GET的user值為". $data{'user'} ."<br>";
print "GET的action的值為". $data{'action'} ."<br>";
print "GET的status的值為".$data{'status'} ."<br>";
if ($data{'user'} ne ' '){
print "<h1>hello <span style='color:tan'>". $data{user} ."</span>,Welcome!</h1>";
#也可以這樣寫<h1>hello$data{user}</h1>,
}else{
print "<h1>please enter your name!</h1>";
}
print "</body></html>";
要取的這個cgi送出去的get參數值
建立一個$query的變數,將CGI->new指定給$query
將$query->Vars指定給%data這個hash(雜湊)
接著再將%data foreach出來,可得所有get的值跟value
- Demo 畫面 (未送出input值)
- Demo 畫面 (送出input值後)
才學疏淺,若有錯誤還麻煩糾正我一下,謝謝。
沒有留言:
張貼留言
若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD