X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Flogin.php;h=716f0f0c65dbbd26206b7c3ee4bd4692f328b121;hb=028ddc334ae30e715bfe0647c8409edcec729582;hp=cc4de2133a43c226eeaed880a5ff7187a6aebb5b;hpb=d7d3c4d435ff1820555e557fcccc9a9d52bf9e93;p=squirrelmail.git diff --git a/src/login.php b/src/login.php index cc4de213..716f0f0c 100644 --- a/src/login.php +++ b/src/login.php @@ -8,61 +8,93 @@ ** This a simple login screen. Some housekeeping is done to clean ** cookies and find language. ** + ** $Id$ **/ - if (!isset($config_php)) - include("../config/config.php"); - if (!isset($strings_php)) - include("../functions/strings.php"); - if (!isset($i18n_php)) - include("../functions/i18n.php"); - if (!isset($plugin_php)) - include("../functions/plugin.php"); - - // let's check to see if they compiled with gettext support - if (!function_exists("_")) { - function _($string) { - return $string; - } - } else { - // $squirrelmail_language is set by a cookie when the user selects - // language and logs out - - // Use HTTP content language negotiation if cookie not set - if (!isset($squirrelmail_language) && isset($HTTP_ACCEPT_LANGUAGE)) { - $squirrelmail_language = substr($HTTP_ACCEPT_LANGUAGE, 0, 2); + $rcptaddress = ''; + if (isset($emailaddress)) { + if (stristr($emailaddress, 'mailto:')) + $rcptaddress = substr($emailaddress, 7); + else + $rcptaddress = $emailaddress; + + if (($pos = strpos($rcptaddress, '?')) !== false) + { + $a = substr($rcptaddress, $pos + 1); + $rcptaddress = substr($rcptaddress, 0, $pos); + $a = explode('=', $a, 2); + if (isset($a[1])) { + $name = urldecode($a[0]); + $val = urldecode($a[1]); + global $$name; + $$name = $val; + } } - - if (isset($squirrelmail_language)) { - if ($squirrelmail_language != "en" && $squirrelmail_language != "") { - putenv("LC_ALL=".$squirrelmail_language); - bindtextdomain("squirrelmail", "../locale/"); - textdomain("squirrelmail"); - header ("Content-Type: text/html; charset=".$languages[$squirrelmail_language]["CHARSET"]); - } + + // At this point, we have parsed a lot of the mailto stuff. Let's + // do the rest -- CC, BCC, Subject, Body + // Note: They can all be case insensitive + foreach ($GLOBALS as $k => $v) + { + $key = strtolower($k); + $value = urlencode($v); + if ($key == 'cc') + $rcptaddress .= '&send_to_cc=' . $value; + elseif ($key == 'bcc') + $rcptaddress .= '&send_to_bcc=' . $value; + elseif ($key == 'subject') + $rcptaddress .= '&subject=' . $value; + elseif ($key == 'body') + $rcptaddress .= '&body=' . $value; } + + // Double-encode in this fashion to get past redirect.php properly + $rcptaddress = urlencode($rcptaddress); } + require_once('../functions/strings.php'); + require_once('../config/config.php'); + require_once('../functions/i18n.php'); + require_once('../functions/plugin.php'); + + // $squirrelmail_language is set by a cookie when the user selects + // language and logs out + set_up_language($squirrelmail_language, true); + // Need the base URI to set the cookies. (Same code as in webmail.php) ereg ("(^.*/)[^/]+/[^/]+$", $PHP_SELF, $regs); $base_uri = $regs[1]; - setcookie("username", "", 0, $base_uri); - setcookie("key", "", 0, $base_uri); - setcookie("logged_in", 0, 0, $base_uri); - + @session_destroy(); // In case the last session was not terminated properly, make sure // we get a new one. - setcookie("PHPSESSID", "", 0, $base_uri); + $cookie_params = session_get_cookie_params(); + setcookie(session_name(),'',0,$cookie_params['path'].$cookie_params['domain']); + setcookie('username', '', 0, $base_uri); + setcookie('key', '', 0, $base_uri); + header ('Pragma: no-cache'); + + do_hook('login_cookie'); + + echo '' . + "\n\n" . + "\n" . + "\n"; + + if ($theme_css != "") + echo "\n"; - echo ""; - echo ""; - echo _("SquirrelMail Login"); + echo '<TITLE>'; + echo $org_name . ' - ' . _("Login"); echo "\n"; - echo "\n"; - - echo "
\n"; - echo "
\n"; + echo "\n"; + echo "\n"; + + $username_form_name = 'login_username'; + $password_form_name = 'secretkey'; + do_hook('login_top'); + + echo "
\n"; echo "
"; printf (_("SquirrelMail version %s"), $version); echo "
\n"; @@ -82,27 +114,35 @@ echo " \n"; echo _("Name:"); echo " \n"; - echo " \n"; + echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo _("Password:"); echo " \n"; - echo " \n"; - echo " \n"; + echo " \n"; + echo " \n"; + if ($rcptaddress != '') { + echo " \n"; + } + echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; - echo "
\n"; echo " \n"; echo " \n"; echo "\n"; echo "\n"; + do_hook('login_form'); echo "\n"; - do_hook("login_bottom"); + do_hook('login_bottom'); ?>