aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Atkinson <thefinn@users.sourceforge.net>2001-02-25 22:24:17 +0000
committerJames Atkinson <thefinn@users.sourceforge.net>2001-02-25 22:24:17 +0000
commit83b6163b4b75b7d06178dbf43719dbb1be1392d1 (patch)
treed9282fe685e4576ca054db212ec6bedfa90e2ed1
parent9bb944225afee2a39eb03827d805df17acfc77ec (diff)
downloadforums-83b6163b4b75b7d06178dbf43719dbb1be1392d1.tar
forums-83b6163b4b75b7d06178dbf43719dbb1be1392d1.tar.gz
forums-83b6163b4b75b7d06178dbf43719dbb1be1392d1.tar.bz2
forums-83b6163b4b75b7d06178dbf43719dbb1be1392d1.tar.xz
forums-83b6163b4b75b7d06178dbf43719dbb1be1392d1.zip
Added login/logout file and logic to login a user
git-svn-id: file:///svn/phpbb/trunk@65 89ea8834-ac86-4346-8a33-228a782c2dd0
-rw-r--r--phpBB/common.php4
-rw-r--r--phpBB/functions/auth.php155
-rw-r--r--phpBB/functions/error.php4
-rw-r--r--phpBB/login.php57
4 files changed, 141 insertions, 79 deletions
diff --git a/phpBB/common.php b/phpBB/common.php
index 55e9e2da3d..79d64b2403 100644
--- a/phpBB/common.php
+++ b/phpBB/common.php
@@ -70,7 +70,7 @@ else
}
// Check if user is banned
-if(!auth("ip ban", $db, "", "", "", "", "", USER_IP, "", "", ""))
+if(!auth("ip ban", $db, "", USER_IP))
{
error_die($db, BANNED);
}
@@ -85,7 +85,7 @@ if(isset($HTTP_COOKIE_VARS[$session_cookie]))
$user_logged_in = 1;
update_session_time($sessid, $db);
- if(!auth("username ban", $db, $userid, "", "", "", "", "", "", "", ""))
+ if(!auth("username ban", $db, $userid))
{
error_die($db, BANNED);
}
diff --git a/phpBB/functions/auth.php b/phpBB/functions/auth.php
index df4d99691d..6f355e2316 100644
--- a/phpBB/functions/auth.php
+++ b/phpBB/functions/auth.php
@@ -31,88 +31,89 @@
* TRUE if the user authorized
* FALSE if the user is not
*/
-function auth($type,
- $db,
- $user_id = "",
- $user_name = "",
- $user_pass = "",
- $user_level = "",
- $session_id = "",
- $user_ip = "",
- $forum_id = "",
- $topic_id = "",
- $post_id = "")
+function auth($type, $db, $id = "", $user_ip = "")
{
+ global $userdata;
switch($type)
{
case 'ip ban':
- $sql = "DELETE FROM ".BANLIST_TABLE."
- WHERE (ban_end < ". mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")).")
- AND (ban_end > 0)";
- $db->sql_query($sql);
- $sql = "SELECT ban_ip FROM ".BANLIST_TABLE;
- if($result = $db->sql_query($sql))
- {
- if($totalrows = $db->sql_numrows())
- {
- $iprow = $db->sql_fetchrowset($result);
- for($x = 0; $x < $totalrows; $x++)
- {
- $ip = $iprow[$x]["ban_ip"];
- if($ip[strlen($ip) - 1] == ".")
- {
- $db_ip = explode(".", $ip);
- $this_ip = explode(".", $user_ip);
-
- for($x = 0; $x < count($db_ip) - 1; $x++)
- {
- $my_ip .= $this_ip[$x] . ".";
- }
-
- if($my_ip == $ip)
- {
- return(FALSE);
- }
- }
- else
- {
- if($ipuser == $ip)
- {
- return(FALSE);
- }
- }
- }
- return(TRUE);
- }
- else
- {
- return(TRUE);
- }
- }
- return(TRUE);
- break;
+ $sql = "DELETE FROM ".BANLIST_TABLE."
+ WHERE (ban_end < ". mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")).")
+ AND (ban_end > 0)";
+ $db->sql_query($sql);
+ $sql = "SELECT ban_ip FROM ".BANLIST_TABLE;
+ if($result = $db->sql_query($sql))
+ {
+ if($totalrows = $db->sql_numrows($result))
+ {
+ $iprow = $db->sql_fetchrowset($result);
+ for($x = 0; $x < $totalrows; $x++)
+ {
+ $ip = $iprow[$x]["ban_ip"];
+ if($ip[strlen($ip) - 1] == ".")
+ {
+ $db_ip = explode(".", $ip);
+ $this_ip = explode(".", $user_ip);
+
+ for($x = 0; $x < count($db_ip) - 1; $x++)
+ {
+ $my_ip .= $this_ip[$x] . ".";
+ }
+
+ if($my_ip == $ip)
+ {
+ return(FALSE);
+ }
+ }
+ else
+ {
+ if($ipuser == $ip)
+ {
+ return(FALSE);
+ }
+ }
+ }
+ return(TRUE);
+ }
+ else
+ {
+ return(TRUE);
+ }
+ }
+ return(TRUE);
+ break;
case 'username ban':
- $sql = "DELETE FROM ".BANLIST_TABLE."
- WHERE (ban_end < ". mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")).")
- AND (ban_end > 0)";
- $db->sql_query($sql);
- $sql = "SELECT ban_userid FROM ".BANLIST_TABLE." WHERE ban_userid = '$user_id'";
- if($result = $db->sql_query($sql))
- {
- if($db->sql_numrows())
- {
- return(FALSE);
- }
- else
- {
- return(TRUE);
- }
- }
- else
- {
- return(TRUE);
- }
- break;
+ $sql = "DELETE FROM ".BANLIST_TABLE."
+ WHERE (ban_end < ". mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")).")
+ AND (ban_end > 0)";
+ $db->sql_query($sql);
+ $sql = "SELECT ban_userid FROM ".BANLIST_TABLE." WHERE ban_userid = '$user_id'";
+ if($result = $db->sql_query($sql))
+ {
+ if($db->sql_numrows($result))
+ {
+ return(FALSE);
+ }
+ else
+ {
+ return(TRUE);
+ }
+ }
+ else
+ {
+ return(TRUE);
+ }
+ break;
+ case 'login':
+ global $password;
+ if($userdata["user_password"] != md5($password))
+ {
+ return(FALSE);
+ }
+ else
+ {
+ return(TRUE);
+ }
}
}
diff --git a/phpBB/functions/error.php b/phpBB/functions/error.php
index 1b819f511b..1a21ab0023 100644
--- a/phpBB/functions/error.php
+++ b/phpBB/functions/error.php
@@ -56,6 +56,10 @@ function error_die($db, $error_code = "", $error_msg = "")
break;
case NO_POSTS:
$error_msg = "There are no posts in this forum. Click on the 'Post New Topic' link on this page to post one.";
+ break;
+ case LOGIN_FAILED:
+ $error_msg = "Login Failed. You have specified an incorrect username or password, please go back and try again.";
+ break;
}
}
if(DEBUG)
diff --git a/phpBB/login.php b/phpBB/login.php
new file mode 100644
index 0000000000..801782941f
--- /dev/null
+++ b/phpBB/login.php
@@ -0,0 +1,57 @@
+<?php
+/***************************************************************************
+ * login.php
+ * -------------------
+ * begin : Saturday, Feb 13, 2001
+ * copyright : (C) 2001 The phpBB Group
+ * email : support@phpbb.com
+ *
+ * $Id$
+ *
+ *
+ ***************************************************************************/
+
+
+/***************************************************************************
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ *
+ ***************************************************************************/
+include('extension.inc');
+include('common.'.$phpEx);
+
+if($submit)
+{
+ $userdata = get_userdata($username, $db);
+ if($userdata["error"])
+ {
+ error_die($db, LOGIN_FAILED);
+ }
+ else
+ {
+ if(!auth("login", $db))
+ {
+ error_die($db, LOGIN_FAILED);
+ }
+ else
+ {
+ $sessid = new_session($userdata[user_id], USER_IP, $session_cookie_time, $db);
+ set_session_cookie($sessid, $session_cookie_time, $session_cookie, "", "", 0);
+ header("Location: index.$phpEx");
+ }
+ }
+}
+else if($logout)
+{
+ if($user_logged_in)
+ {
+ end_user_session($userdata["user_id"], $db);
+ }
+ header("Location: index.$phpEx");
+}
+
+?>