0

嘿,所以我正在尝试制作一个简单的“约会网站”,但是我在 CGI 方面苦苦挣扎 :( 主要是我在表单方面遇到了麻烦(我想我不太确定自己在苦苦挣扎)。

我有这个声明

print header, start_html("EngCupid"), h2("EngCupid"), start_form;

if (!param() || param("home")) {
    show_welcome();
} elsif (param("browse")) {
    browse_page();
} elsif (param("search")) {
    search_users();
} elsif (param("username")) {
    search_results(); 
} else {
    print "fail";
}   
print end_form, end_html;
exit 0; 

处理网站的一般导航。但是,在这些功能中提交按钮等时我很挣扎。所以我的 browse_page() 函数是

sub browse_page {
        print h2("Browse Page");
    print p;
    if (param("next")) {
        $hidden_variable = param("x") + 1;
    }
    param('x', $hidden_variable);
    $hidden_variable = 0;
    print hidden('x');
    print submit("next", "Next");
    print submit("home", "Home"), " ", submit("search", "Search Users");

}

每次按下下一个键时,这应该会增加一个变量,我需要将其用于更多功能。但是,每当我按下下一个键时,它只会打印失败,因为表单没有通过?

我在打印的每个函数中都需要一个新表单吗?我试过了,但还是不行。一般只是有点迷失在形式上。

4

1 回答 1

0

我不确定您要达到的目标。也许问题是x没有从客户端发送回服务器,也许你想要

print hidden('x', param('x'));

另外,为什么设置$hidden_variable为0?提交后,脚本将再次运行,变量的旧值将无法再访问。

于 2012-05-29T11:43:12.193 回答