]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/CGI.pm
Making use of the transient plugin
[ikiwiki.git] / IkiWiki / CGI.pm
index f8617bfc63ca63f51a8f51c135c96641947faf7d..c0d8f598b5f882b27bd2d5671d476aa5164a812b 100644 (file)
@@ -12,7 +12,7 @@ use Encode;
 sub printheader ($) {
        my $session=shift;
        
-       if ($ENV{HTTPS} || $config{sslcookie}) {
+       if (($ENV{HTTPS} && lc $ENV{HTTPS} ne "off") || $config{sslcookie}) {
                print $session->header(-charset => 'utf-8',
                        -cookie => $session->cookie(-httponly => 1, -secure => 1));
        }
@@ -79,7 +79,7 @@ sub cgitemplate ($$$;@) {
                title => $title,
                wikiname => $config{wikiname},
                content => $content,
-               baseurl => urlabs(urlto(""), $topurl),
+               baseurl => urlabs(baseurl(), $topurl),
                html5 => $config{html5},
                %params,
        );
@@ -131,7 +131,7 @@ sub needsignin ($$) {
 
        if (! defined $session->param("name") ||
            ! userinfo_get($session->param("name"), "regdate")) {
-               $session->param(postsignin => $ENV{QUERY_STRING});
+               $session->param(postsignin => $q->query_string);
                cgi_signin($q, $session);
                cgi_savesession($session);
                exit;
@@ -351,7 +351,8 @@ sub cgi_getsession ($) {
                        { FileName => "$config{wikistatedir}/sessions.db" })
        };
        if (! $session || $@) {
-               error($@." ".CGI::Session->errstr());
+               my $error = $@;
+               error($error." ".CGI::Session->errstr());
        }
        
        umask($oldmask);
@@ -429,7 +430,7 @@ sub cgi (;$$) {
                        # userinfo db.
                        if (! userinfo_get($session->param("name"), "regdate")) {
                                userinfo_setall($session->param("name"), {
-                                       email => "",
+                                       email => defined $session->param("email") ? $session->param("email") : "",
                                        password => "",
                                        regdate => time,
                                }) || error("failed adding user");