예를 들어 설명하기가 어렵습니다. 나는 이런 식으로 뭔가가있는 경우 : 있도록CGI 버튼을 누른 다음 리디렉션하는 방법을 확인하려면 어떻게합니까?
print submit(value => Exit), "\n";
는 어떻게이 사람이 브라우저가 종료 버튼을 누를 때, 그것은 "CYA 나중에"예를 들어라는 페이지로 리디렉션 할 수 있을까요.
예를 들어 설명하기가 어렵습니다. 나는 이런 식으로 뭔가가있는 경우 : 있도록CGI 버튼을 누른 다음 리디렉션하는 방법을 확인하려면 어떻게합니까?
print submit(value => Exit), "\n";
는 어떻게이 사람이 브라우저가 종료 버튼을 누를 때, 그것은 "CYA 나중에"예를 들어라는 페이지로 리디렉션 할 수 있을까요.
제출 버튼에 name
을 지정하십시오. 양식을 제출하는 데 사용되는 경우 params
에 표시됩니다.
예를 들어 줄 수 있습니까? 나는 조금 새로운이. – user2947725
@ user2947725 -'('name => "foo", value => "exit") "\ n"; 그리고 if (params ("name")) – Quentin
CGI.pm의 HTML 생성 기능을 사용하고 있습니다. 이것들은 deprecated for some time이었습니다 (그리고 결코 좋은 생각이 아닙니다). templating engine instead을 사용하는 것이 좋습니다.
당신이 요구하는 변경 사항은 매우 간단합니다. 두 곳에서 코드를 변경해야합니다. 첫째, 생성 된 HTML에 이름을 추가 할 수 있도록 제출 단추를 생성하는 코드를 변경해야합니다.
# Don't do this. Use a template.
# NB: Note the '-' I've added to the option names.
print submit(-value => 'Exit', -name => 'Exit'), "\n";
그런 다음이 새 매개 변수를 처리하기 위해 들어오는 매개 변수를 처리하는 코드를 변경해야합니다. A) 리디렉션 헤더 Content-Type 헤더를 포함하지 않는 경우 프로그램이 너무 (반환 계획 할 수있는 다른 헤더 대신 인쇄해야)와 b) 프로그램이 종료해야
는if (param('Exit')) {
print redirect('http://somewhere_else.com/');
exit;
}
주 리디렉션 헤더를 인쇄 한 직후에 다른 출력을 인쇄해서는 안됩니다.
업데이트 : HTML 생성 기능을 피하는 이유 중 하나는 사용하기가 너무 복잡하다는 것입니다. 그것은이 출력을 생성으로
print submit(value => Exit)
이 실제로 잘못 : 좋은 예는 이들의 사용량입니다
<input type="submit" name="value" value="Exit" />
나는 당신이 의미했다 의심 무엇 :
print CGI->new->submit(-value => 'Exit')
이 있습니다 어떤 :
<input type="submit" name=".submit" value="Exit" />
명시 적 이름을 지정하지 않았으므로이 함수는 하나를 합성합니다 (.submit
). 생산
print submit(-value => 'Exit', -name => 'Exit')
이 : 내 예에서 I는 입력을 명시 적으로 이름을 준 이상
<input type="submit" name="Exit" value="Exit" />
여부를 특별히 다만 어쩌면 "CYA 나중에" – user2947725
https를 말한다 라인을 인쇄, 리디렉션 : //metacpan.org/pod/distribution/CGI/lib/CGI.pod#HTML-Generation-functions-should-no-longer-be-used – Quentin