找到 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.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,执行它,并生成任何结果,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.