标签: cgi

如何使用Perl CGI脚本中的数据库服务器?

我的程序已经运行了,我有Perl(GUI窗口),我可以在其中输入数据,传递到网页的数据(使用到Tomcat服务器,JSP),然后保存到oracle数据库.我想要的是使用Perl CGI创建从Oracle数据库中检索/提取数据的搜索参数(webapp).可能吗?或者任何解决我的计划的建议?谢谢!:-)

database perl cgi

0
推荐指数
1
解决办法
2254
查看次数

我的网络会话处理过程中是否存在缺陷?

好吧,这样做的方式是用户通过Web表单进行身份验证并生成会话ID,如下所示:

sub session_open
{
    my $sid;
    my $user = shift;

    if ( open(SEMA, "> ../sema/sess") )
    {
        flock SEMA, LOCK_EX;
        do 
        {
            $sid = generate_session_id();
        } 
        while ( -d "$SDIR/$sid" );
        my $sstr = "$user:$ENV{'HTTP_USER_AGENT'}";
        write_file('>', "$SDIR/$sid", $sstr);
        close SEMA;
    }

    return $sid;
}
Run Code Online (Sandbox Code Playgroud)

然后会话ID被传递到url中的每个页面,如果会话文件存在并检出他的用户代理和远程地址,它允许用户继续:

sub check_sid
{   
    my $sid = shift;
     return 0 if $sid =~ /[^\w\d]/;
    return 0 if !open(SID, "< $SDIR/$pid");
    my ($user, $agent) = split /:/, <SID>, 2;
    close SID;
    return 0 if $agent ne $ENV{'HTTP_USER_AGENT'}"; …
Run Code Online (Sandbox Code Playgroud)

perl session cgi

0
推荐指数
1
解决办法
230
查看次数

Python noob:在支持Python的Web服务器上,我如何使用Python?

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# enable debugging
import cgitb
cgitb.enable()

print "Content-Type: text/plain;charset=utf-8"
print

print "Hello World!"
Run Code Online (Sandbox Code Playgroud)

我的目标是用Python替换PHP.我对PHP非常好,我可以在我自己的本地机器上使用Python,但我不能让它在我的Web服务器上运行.我的网络主机说他们支持Python,所以我一定做错了.

现在,Python与CGI相关联.python文件必须进入我的cgi-bin文件夹吗?我从来没有见过带有py扩展名或cgi扩展名的web文件,我不知道这些东西是如何工作的,我真的只熟悉PHP.

我看了谷歌"学习Python"课程的第一个小时,而且只讨论了在本地运行Python的问题.

:(对不起,我是如此,请修理我.

python cgi

0
推荐指数
1
解决办法
1060
查看次数

Perl:如何从查询字符串中提取内页面锚点?

鉴于: http://www.foo.com/bar.html#baz

怎么得到的baz


我无法在CGI :: params中找到这个选项.

perl cgi query-string

0
推荐指数
1
解决办法
172
查看次数

CGI应用程序是否有更好的编程语言?

我知道我可以用多种语言编写CGI,最多的是C和Perl.但为什么我必须在Perl或C中编写它?有什么区别,什么是(最终)最好和最安全的解决方案?

c perl cgi

0
推荐指数
1
解决办法
793
查看次数

阻止刷新后发送电子邮件,但在转到上一面时将其设置为自由

我尝试阻止网站在刷新网站后再次发送表单。问题是,当返回上一面进行更改并再次向电子邮件发送电子邮件时,应该是可能的。

当返回时,表单页面将不会再次加载,并且无法更改SESSION变量。但是用户仍然应该能够再次获得其旧数据,而不必再次键入任何内容。

在仅使用SESSION设置变量之后,我使用了CGI.HTTP_Referer来获取用户来自的网站。但是,在重新加载网站时,引荐来源网址不会更改。因此,没有办法以这种方式解决问题。

<cfif Right("#CGI.HTTP_REFERER#", 5) EQ "myForm">
    <cfset SESSION.send = true />
<cfelse>    
    <cfset SESSION.send = false />
</cfif>
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以使用javascript或其他任何方式执行Coldfusion代码


我尝试过的是:

<cfif isDefined("SESSION.actualSite") EQ "false" 
AND isDefined("SESSION.actualSite") EQ "false">

        <cfset SESSION.lastSite = ArrayNew(1) />
        <cfset SESSION.actualSite = ArrayNew(1) />
        <cftrace var="SESSION.lastSite" text="lastSite1" />
        <cftrace var="SESSION.acutalSite" text="acutalSite1" />
    </cfif>

    <cfif ArrayisEmpty(SESSION.actualSite) EQ "NO">
        <cfoutput>#ArrayLen(SESSION.actualSite)#</cfoutput>
        <cfset SESSION.lastSite[1] = SESSION.actualSite[1] />
        <cfset SESSION.lastSite[2] = SESSION.actualSite[2] />

        <cfdump var="#SESSION#" label="session scope from application.cfm" /><br />

        <cfif SESSION.actualSite[1] NEQ SESSION.lastSite[1] >           
            <cfoutput>INSIDE TRUE BLOCK</cfoutput> …
Run Code Online (Sandbox Code Playgroud)

coldfusion session cgi

0
推荐指数
1
解决办法
88
查看次数

为什么type('string')似乎在python cgi中返回null字符串

我正在阅读Mark Lutz的Programming Python 3rd editon,我对一个问题很困惑:type('something')总是会产生一个空字符串.

有人可以解释一下吗?

上下文信息:

我在脚本中添加了一行 $CODEROOT\pp3e\Internet\Web\cgi-bin\tutor0.py

#!/usr/bin/python
#######################################################
# runs on the server, prints html to create a new page;
# url=http://localhost/cgi-bin/tutor0.py
#######################################################

print "Content-type: text/html\n"
print "<TITLE>CGI 101</TITLE>"
print "<H1>A First CGI script</H1>"
print '<p>[%s]'%type('apple') # ? I add this line
print "<P>Hello, CGI World!</P>"
Run Code Online (Sandbox Code Playgroud)

对于添加的行,我希望在浏览器中看到[<type 'str'>],但我实际上看到了[].

在此输入图像描述

启动HTTP服务器的python是 $CODEROOT\pp3e\Internet\Web\webserver.py

#########################################################################
# implement HTTP web server in Python which knows how to serve HTML
# pages and run server …
Run Code Online (Sandbox Code Playgroud)

python cgi

0
推荐指数
1
解决办法
277
查看次数

使用perl的CGI :: Cookie-> fetch获取cookie时丢失'+'字符

Cookie有价值:

V7S9qwSUTlYYX0gTVO5edmBVyPZkNyMecr6LuABwN3KSgwTyasj1+0pGiN2OJ6s4Jja9ma+BJ0GCCiCFUc8k/uNk/4hIwsZv0KyHVVjOHFHtOq+PHMFaBKg5wRfXReI3LDmiDnIM6h0Z9hrEO5wYha/RadNqIqfJzUTOQl7q33RqQGcx/aLoiizm3tHs05InbAkUqwusJ1E4HFVLFqyvhEunFWrRO1Y/TfrZR7GvCzNiVYGO6O6E1yhup7CAaM6Lc22TjxNfKp1jGJy4NMQUvbMqCOlWZ75sFA4H3jeuNg0RcIC2zCT7l1JU8ZECGPDqf75FoL4qi+9rO0mgdEGgZL3cFk3dSyIApxXYeAR7RlKGsB0vqd4zxdSjTz5LRWK++SPyVNBsKMcVFfHDv7tv4PAUhK4sDT7bfBow9lIwV1f8slchXEcCgLNI2TYZsr/j/GoqnSb9mxp7VGmL7Z4s7cqWdpNsXEpQ3dMM7k4n1lVKOk2qCrzBrqvJRE7mNeaAz6RVjQuroOj0tJOhLUsZeukVbCxORY6k01fNgwPc1v7xGh7y0x6906WOHlcgti4+ofaSxG4AxwWeaf55loL6vN5d5/UEICGlRuxEjpM8X5og2RYhxr/qQWGVBbiZFBkDDd7esG3rXML63cRJ011Du03UzoS2DxKhFeDmrJM7QinuDEAr0UF1p90kj6hN+PqYqfsRONFXjUS8BqjAMJVEoVnnX5uiAAu1MCZc/xDNDzhu10eiib4Tr+7y6yePw7TQm+bunMMFqYVSMMCIapiAsCS70B96UPSgRQHRbzNzeee9ulDvdtXFxdswf89Bi6LwMaPNdcVdq/Cd5KMziRzwqsCli8jkFF7qATgo5E9wU9OueGPlXCnJzdUBu2BG1JaJEZcsDdfczD3vfrVZXy/xQ66OMbwWUn/R02mr3LTiGU5T6pbcsTNbTQyWwc9gNZsjshqBNh5oJ9ScMBI947Gkatf3fkhlH1NJpXX0GNPQ6OqSg+RALq7EEqBRmy4pszu/9BDmmKck6luJzihaAfeFyZC/SwlcUbg/epGmOSAlJRRUBckj1ufuBFMKKd6hkn1qaZUX1fPrCfNVJ7pzVT66tRurqF4HvX8JIKiC/BTPN5ZAw5fkIUJKn+H7x5o1XG9WMFO/AQ/lUVstaB8/hjY+JC6bZapKwsNj
Run Code Online (Sandbox Code Playgroud)

在perl中使用:

%cookies = CGI::Cookie->fetch;
$ticket = $cookies{$ticketKey}->value;
print STDERR $ticket;
Run Code Online (Sandbox Code Playgroud)

我明白了:

V7S9qwSUTlYYX0gTVO5edmBVyPZkNyMecr6LuABwN3KSgwTyasj1 0pGiN2OJ6s4Jja9ma BJ0GCCiCFUc8k/uNk/4hIwsZv0KyHVVjOHFHtOq PHMFaBKg5wRfXReI3LDmiDnIM6h0Z9hrEO5wYha/RadNqIqfJzUTOQl7q33RqQGcx/aLoiizm3tHs05InbAkUqwusJ1E4HFVLFqyvhEunFWrRO1Y/TfrZR7GvCzNiVYGO6O6E1yhup7CAaM6Lc22TjxNfKp1jGJy4NMQUvbMqCOlWZ75sFA4H3jeuNg0RcIC2zCT7l1JU8ZECGPDqf75FoL4qi 9rO0mgdEGgZL3cFk3dSyIApxXYeAR7RlKGsB0vqd4zxdSjTz5LRWK  SPyVNBsKMcVFfHDv7tv4PAUhK4sDT7bfBow9lIwV1f8slchXEcCgLNI2TYZsr/j/GoqnSb9mxp7VGmL7Z4s7cqWdpNsXEpQ3dMM7k4n1lVKOk2qCrzBrqvJRE7mNeaAz6RVjQuroOj0tJOhLUsZeukVbCxORY6k01fNgwPc1v7xGh7y0x6906WOHlcgti4 ofaSxG4AxwWeaf55loL6vN5d5/UEICGlRuxEjpM8X5og2RYhxr/qQWGVBbiZFBkDDd7esG3rXML63cRJ011Du03UzoS2DxKhFeDmrJM7QinuDEAr0UF1p90kj6hN PqYqfsRONFXjUS8BqjAMJVEoVnnX5uiAAu1MCZc/xDNDzhu10eiib4Tr 7y6yePw7TQm bunMMFqYVSMMCIapiAsCS70B96UPSgRQHRbzNzeee9ulDvdtXFxdswf89Bi6LwMaPNdcVdq/Cd5KMziRzwqsCli8jkFF7qATgo5E9wU9OueGPlXCnJzdUBu2BG1JaJEZcsDdfczD3vfrVZXy/xQ66OMbwWUn/R02mr3LTiGU5T6pbcsTNbTQyWwc9gNZsjshqBNh5oJ9ScMBI947Gkatf3fkhlH1NJpXX0GNPQ6OqSg RALq7EEqBRmy4pszu/9BDmmKck6luJzihaAfeFyZC/SwlcUbg/epGmOSAlJRRUBckj1ufuBFMKKd6hkn1qaZUX1fPrCfNVJ7pzVT66tRurqF4HvX8JIKiC/BTPN5ZAw5fkIUJKn H7x5o1XG9WMFO/AQ/lUVstaB8/hjY JC6bZapKwsNj
Run Code Online (Sandbox Code Playgroud)

注意+字符的丢失?可能是什么导致了这个?我们使用perl v5.8.5和Apache/2.0.52

apache cookies perl cgi mod-perl

0
推荐指数
1
解决办法
108
查看次数

状态:302找到位置:

您好我想从数据库中删除数据后在另一个位置重定向.但它显示以下错误:状态:302找到位置:

my $q= new CGI;
print $q->header ('Text/html');

print $q-> start_html(
   -title   => "",

);
my $db = "peroples";
my $user = "root"; 
my $pass = "";
my $host="127.0.0.1";
my $dbh = DBI->connect("DBI:mysql:$db:$host", $user, $pass);
my $action_delete = $q->param('delete');
my $action_update = $q->param('update');


if($action_delete + 0 > 0) {
        my $row_id = $action_delete + 0;
        my $sqlQuery  = $dbh->prepare("DELETE FROM peoples WHERE ID = $row_id");
        $sqlQuery->execute;    
 print $q->redirect(-uri => 'http://localhost/cgi-bin/peoples.pl',);
Run Code Online (Sandbox Code Playgroud)

perl cgi

0
推荐指数
1
解决办法
2474
查看次数

发送404状态但浏览器在客户端显示500错误

我试图根据IF条件发送http 404状态代码.但是,在客户端我看到http 500错误.在我的apach2错误日志中,我看到格式错误的标题.看了很多次我的代码,我无法弄清楚出了什么问题!任何人都可以建议我如何向客户发送404消息?

以下是我的perl代码:

#!/usr/bin/perl

use CGI qw(:standard);
use strict;
use warnings;
use Carp;
use File::Copy qw( copy );
use File::Spec::Functions qw( catfile );
use POSIX qw(strftime);
use Time::Local;
use HTTP::Status qw(:constants :is status_message);
use Digest::MD5 qw(md5 md5_hex md5_base64);
use File::Basename;
use URI;



my $extfile = '/home/suresh/clientrequest.txt';
open(FH, ">>$extfile") or die "Cannot open file";
my $query = CGI->new;
my $stcode = status_message(200);
my $uri =$ENV{'REQUEST_URI'};
my $rdate =strftime("%a, %d %b %Y %H:%M:%S %Z", localtime());
print FH "Got Following Headers:\n";
print …
Run Code Online (Sandbox Code Playgroud)

perl cgi apache2 http-status-codes

0
推荐指数
1
解决办法
831
查看次数