找到关于 Perl 的157 篇文章

如何在 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.com/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,执行它,并将生成的任何结果…… 阅读更多

Perl 中有用的 DBI 函数

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

96 次浏览

检查可用驱动程序@ary = DBI->available_drivers; @ary = DBI->available_drivers($quiet);通过搜索 @INC 中目录中的 DBD::* 模块来返回所有可用驱动程序的列表。默认情况下,如果某些驱动程序被同一名称的早期目录中的其他驱动程序隐藏,则会发出警告。为 $quiet 传递真值将抑制警告。检查已安装的驱动程序%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{} 用于返回一个带引号的字符串给 prepare API。但是,在尝试在 WHERE 子句中使用 NULL 值时,必须小心。考虑:SELECT FIRST_NAME FROM TEST_TABLE WHERE age = ?将 undef (NULL) 绑定到占位符将…… 阅读更多

Perl 中的 COMMIT 和 Rollback 操作

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

775 次浏览

COMMIT 操作COMMIT 是一个操作,它向数据库发出最终确认更改的信号,此操作之后,任何更改都无法恢复到其原始位置。这是一个调用 commit API 的简单示例。$dbh->commit or die $dbh->errstr;ROLLBACK 操作如果您对所有更改都不满意,或者在任何操作过程中遇到错误,您可以使用 rollback API 将这些更改恢复。这是一个调用 rollback API 的简单示例。$dbh->rollback or die $dbh->errstr;开始事务许多数据库都支持事务。这意味着您可以进行大量修改数据库的查询,但是没有任何…… 阅读更多

Perl 中的数据库 DELETE 操作

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

674 次浏览

当您需要从数据库中删除一些记录时,需要使用 Perl DELETE 操作。以下是删除 TEST_TABLE 表中 AGE 等于 30 的所有记录的步骤。此操作将包含以下步骤:根据所需条件准备 SQL 查询。这将使用 prepare() API 完成。执行 SQL 查询以从数据库中删除所需记录。这将使用 execute() API 完成。释放语句句柄。这将使用 finish() API 完成。如果一切顺利,则提交此操作;否则,您可以回滚整个事务。$age = 30; my $sth = $dbh->prepare("DELETE FROM TEST_TABLE WHERE AGE = ?"); $sth->execute( $age ) or ... 阅读更多

广告