找到 157 篇文章 關於 Perl

如何在 Perl 的 CGI 中使用 Cookie?

Mohd Mohtashim
更新於 2019年12月2日 08:14:12

2K+ 次瀏覽

HTTP 協議是無狀態協議。但是對於商業網站,需要在不同的頁面之間維護會話資訊。例如,一個使用者註冊會在跨越多個頁面的事務後結束。但是如何跨所有網頁維護使用者的會話資訊呢?在許多情況下,使用 Cookie 是記住和跟蹤偏好、購買、佣金以及其他提高訪問者體驗或網站統計所需資訊的最有效方法。工作原理您的伺服器以 Cookie 的形式向訪問者的瀏覽器傳送一些資料。瀏覽器可能會接受 Cookie。如果接受,則會... 閱讀更多

在 Perl 中使用 POST 方法

Mohd Mohtashim
更新於 2019年12月2日 08:11:48

1K+ 次瀏覽

向 CGI 程式傳遞資訊的一種更可靠的方法是 POST 方法。此方法以與 GET 方法完全相同的方式打包資訊,但不是在 URL 中的 ? 後面傳送為文字字串,而是將其作為 HTTP 標頭的單獨訊息傳送。Web 伺服器以標準輸入的形式將此訊息提供給 CGI 指令碼。以下是名為 hello_post.cgi 的 Perl 指令碼,用於處理 Web 瀏覽器提供的輸入。此指令碼將處理 GET 和 POST 方法。#!/usr/bin/perl local ($buffer, @pairs, $pair, $name, $value, %FORM); # ... 閱讀更多

在 Perl 中使用 GET 方法

Mohd Mohtashim
更新於 2019年12月2日 08:09:56

553 次瀏覽

這是一個簡單的 URL,它將使用 GET 方法向 hello_get.cgi 程式傳遞兩個值。https://tutorialspoint.tw/cgi-bin/hello_get.cgi?first_name=ZARA&last_name=ALI以下是 hello_get.cgi 指令碼,用於處理 Web 瀏覽器提供的輸入。#!/usr/bin/perl local ($buffer, @pairs, $pair, $name, $value, %FORM); # 讀取文字 $ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/; if ($ENV{'REQUEST_METHOD'} eq "GET") {    $buffer = $ENV{'QUERY_STRING'}; } # 將資訊拆分為名稱/值對 @pairs = split(/&/, $buffer); foreach $pair (@pairs) {    ($name, $value) = split(/=/, $pair);    $value =~ tr/+/ /;    $value =~ s/%(..)/pack("C", hex($1))/eg;    $FORM{$name} = $value; } $first_name = $FORM{first_name}; $last_name = $FORM{last_name}; print "Content-type:text/html\r\r"; print ""; print ""; print "Hello - Second CGI ... 閱讀更多

使用 Perl 提升“檔案下載”對話方塊

Mohd Mohtashim
更新於 2019年12月2日 08:05:20

236 次瀏覽

有時您希望提供一個選項,使用者單擊連結時會彈出一個“檔案下載”對話方塊,而不是顯示實際內容。這非常簡單,可以透過使用 Perl 指令碼的 HTTP 標頭來實現。此 HTTP 標頭將與上一節中提到的標頭不同。例如,如果要使 FileName 檔案可從給定連結下載,則其語法如下:#!/usr/bin/perl # HTTP 標頭 print "Content-Type:application/octet-stream; name = \"FileName\"\r"; print "Content-Disposition: attachment; filename = \"FileName\"\r"; # 實際... 閱讀更多

Perl CGI 環境變數

Mohd Mohtashim
更新於 2019年12月2日 08:04:03

2K+ 次瀏覽

所有 Perl CGI 程式都可以訪問以下環境變數。這些變數在編寫任何 Perl CGI 程式時都扮演著重要的角色。序號變數名稱和說明1CONTENT_TYPE內容的資料型別。當客戶端向伺服器傳送附加內容時使用。例如檔案上傳等。2CONTENT_LENGTH查詢資訊的長度。僅對 POST 請求可用3HTTP_COOKIE以鍵值對的形式返回設定的 Cookie。4HTTP_USER_AGENTUser-Agent 請求標頭欄位包含有關發起請求的使用者代理的資訊。其 Web 瀏覽器的名稱。5PATH_INFOCGI 指令碼的路徑。6QUERY_STRING傳送的 URL 編碼資訊... 閱讀更多

使用 Perl 的第一個 CGI 程式

Mohd Mohtashim
更新於 2019年12月2日 08:01:54

327 次瀏覽

這是一個簡單的 Perl CGI 程式,位於名為 hello.cgi 的檔案中。此檔案已儲存在 /cgi-bin/ 目錄中,其內容如下。在執行 CGI 程式之前,請確保已使用 chmod 755 hello.cgi UNIX 命令更改檔案的模式。#!/usr/bin/perl print "Content-type:text/html\r\r"; print ''; print ''; print 'Hello Word - First CGI Program'; print ''; print ''; print 'Hello Word! This is my first CGI program'; print ''; print ''; 1;現在,如果您單擊 hello.cgi 連結,則請求將轉到 Web 伺服器,Web 伺服器在 /cgi-bin 目錄中搜索 hello.cgi,執行它,並生成任何結果,Web 伺服器都會發送該結果... 閱讀更多

Perl 中有用的 DBI 函式

Mohd Mohtashim
更新於 2019年12月2日 08:00:02

96 次瀏覽

檢查可用驅動程式@ary = DBI->available_drivers; @ary = DBI->available_drivers($quiet);透過搜尋 @INC 中目錄中的 DBD::* 模組來返回所有可用驅動程式的列表。預設情況下,如果某些驅動程式被同一名稱的早期目錄中的其他驅動程式隱藏,則會發出警告。為 $quiet 傳遞 true 值將抑制警告。檢查已安裝的驅動程式%drivers = DBI->installed_drivers();返回當前程序中“已安裝”(已載入)的所有驅動程式的驅動程式名稱和驅動程式控制代碼對列表。驅動程式名稱不包含“DBD::”字首。檢查資料來源@ary = DBI->data_sources($driver);返回透過命名驅動程式可用的資料來源(資料庫)列表。如果 $driver 是... 閱讀更多

在 Perl 資料庫操作中使用 NULL 值

Mohd Mohtashim
更新於 2019年12月2日 07:57:00

803 次瀏覽

未定義值或 undef 用於指示 Perl 資料庫操作中的 NULL 值。您可以像使用非 NULL 值一樣插入和更新具有 NULL 值的列。這些示例使用 NULL 值插入和更新 age 列:$sth = $dbh->prepare(qq {    INSERT INTO TEST_TABLE (FIRST_NAME, AGE) VALUES (?, ?) }); $sth->execute("Joe", undef);此處 qq{} 用於返回一個帶引號的字串以準備 API。但是,在嘗試在 WHERE 子句中使用 NULL 值時,必須小心。考慮:SELECT FIRST_NAME FROM TEST_TABLE WHERE age = ?將 undef (NULL) 繫結到佔位符將... 閱讀更多

Perl 中的 COMMIT 和回滾操作

Mohd Mohtashim
更新於 2019年12月2日 07:56:02

775 次瀏覽

COMMIT 操作COMMIT 是向資料庫發出最終確認更改的訊號的操作,此操作後無法撤消任何更改。這是一個呼叫 commit API 的簡單示例。$dbh->commit or die $dbh->errstr;回滾操作如果您對所有更改都不滿意,或者在任何操作過程中遇到錯誤,您可以使用回滾 API 將這些更改恢復到原始狀態。這是一個呼叫回滾 API 的簡單示例。$dbh->rollback or die $dbh->errstr;開始事務許多資料庫支援事務。這意味著您可以進行大量查詢來修改資料庫,但沒有一個... 閱讀更多

Perl 中的資料庫 DELETE 操作

Mohd Mohtashim
更新於 2019年12月2日 07:54:26

674 次瀏覽

當您想要從資料庫中刪除某些記錄時,需要 Perl DELETE 操作。以下是從 AGE 等於 30 的 TEST_TABLE 中刪除所有記錄的過程。此操作將執行以下步驟。根據所需條件準備 SQL 查詢。這將使用 prepare() API 完成。執行 SQL 查詢以從資料庫中刪除所需記錄。這將使用 execute() API 完成。釋放語句控制代碼。這將使用 finish() API 完成。如果一切順利,則提交此操作,否則您可以回滾整個事務。$age = 30; my $sth = $dbh->prepare("DELETE FROM TEST_TABLE WHERE AGE = ?"); $sth->execute( $age ) or ... 閱讀更多

廣告
© . All rights reserved.