4 * Provides login mechanism for web service clients.
8 $includedir = "../includes";
10 include "$includedir/config.php";
11 include "$includedir/php-dbi.php";
12 include "$includedir/functions.php";
13 include "$includedir/$user_inc";
14 include "$includedir/connect.php";
16 load_global_settings ();
18 if ( ! empty ( $last_login ) )
21 include "$includedir/translate.php";
23 // calculate path for cookie
24 if ( empty ( $PHP_SELF ) )
25 $PHP_SELF = $_SERVER["PHP_SELF"];
26 $cookie_path = str_replace ( "login.php", "", $PHP_SELF );
27 //echo "Cookie path: $cookie_path\n";
31 if ( $single_user == "Y" ) {
32 // No login for single-user mode
33 $out .= "<error>No login required for single-user mode</error>\n";
34 } else if ( $use_http_auth ) {
35 // There is no login page when using HTTP authorization
36 $out .= "<error>No login required for HTTP authentication</error>\n";
38 if ( ! empty ( $login ) && ! empty ( $password ) ) {
39 $login = trim ( $login );
40 if ( user_valid_login ( $login, $password ) ) {
41 user_load_variables ( $login, "" );
42 // set login to expire in 365 days
43 srand((double) microtime() * 1000000);
44 $salt = chr( rand(ord('A'), ord('z'))) . chr( rand(ord('A'), ord('z')));
45 $encoded_login = encode_string ( $login . "|" . crypt($password, $salt) );
46 //SetCookie ( "webcalendar_session", $encoded_login, 0, $cookie_path );
47 $out .= " <cookieName>webcalendar_session</cookieName>\n";
48 $out .= " <cookieValue>$encoded_login</cookieValue>\n";
50 $out .= " <admin>1</admin>\n";
52 $out .= " <error>Invalid login</error>\n";