info about link
: Javascript : PHP Index : MySQL :
wordpress existing user login
: Source : : Explanation : : Example : : Todo : : Feedback :

wordpress_existing_user_login.php

Provides login based on existing credentials in non-wordpress database-tables

Added: 2011-04-26 06:58:09

download

<?
/*
   Plugin Name: Existing User Login
   Plugin URI: http://devshed.excudo.net/scripts/php/source/wordpress+existing+user+login
   Description: Provides login based on the existing credentials of artcrafting-users
   Version: 0.1
   Author: Martijn Korse
   Author URI: http://devshed.excudo.net/



   Copyright 2010 Excudo  (email : marty@excudo.net)

    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.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

/***
 * Customize the following constants to your situation
 */

define("EXISTING_USER_LOGIN_DB_HOST""localhost");
define("EXISTING_USER_LOGIN_DB_USER""username");
define("EXISTING_USER_LOGIN_DB_PASS""password");
define("EXISTING_USER_LOGIN_DB_NAME""db name");

// name of the table that holds the username and password column
define("EXISTING_USER_LOGIN_DB_TABLE""Users");
// name of the column that holds the username
define("EXISTING_USER_LOGIN_DB_COL_USERNAME""Email");
// name of the column that holds the password
define("EXISTING_USER_LOGIN_DB_COL_PASSWORD""Pass");
// name of the key in the session which is used as a flag to indicate whether someone is logged in or not
define("EXISTING_USER_LOGIN_SESSION_KEY""artcrafting_blog");
/**
 * can be any of these values:
 * md5
 * sha1
 * crypt
 * (empty)
 */
define("EXISTING_USER_LOGIN_ENCRYPTION""md5");
/**
 * Posibility to define custom query.
 * This is only necessary when the basic solution doesn't fit your needs. Otherwise leave this constant undefined
 * The basic solution will execute a query that looks like this:
 *    SELECT * FROM [EXISTING_USER_LOGIN_DB_TABLE] WHERE [EXISTING_USER_LOGIN_DB_COL_USERNAME]=%s AND [EXISTING_USER_LOGIN_DB_COL_PASSWORD]=%s
 * where everything between square brackets is a constant and %s will be filled with either the username or password
 * An example of how to define a custom query has been included. Make sure that your version has %s two times and that the first one represents
 * the value of the username and the second that of the password
 */
#define("EXISTING_USER_LOGIN_QUERY", "SELECT * FROM Users WHERE Email=%s AND Pass=%s AND IsActive=1");
// uncomment and give a value when you want to use salt for the crypt function
#define("EXISTING_USER_LOGIN_ENCRYPTION_SALT", "");

/***
 * Don't modify anything below this point
 */
   
add_action'template_redirect''existing_user_login' );
   
   function 
existing_user_login()
   {
      @
session_start();
      
check_existing_user_logout();

      if ( ! 
is_existing_user_logged_in() )
      {
         
$redirectTo $_SERVER['REQUEST_URI'];
         
$redirectTo preg_replace("/([?]logout)(=){0,1}(.*)/""?"$redirectTo);
         include 
dirname(__FILE__)."/existing_user_login/loginform.php";
         exit;
        }
   }

   function 
check_existing_user_logout()
   {
      if (isset(
$_GET['logout']))
      {
         
$_SESSION[EXISTING_USER_LOGIN_SESSION_KEY] = false;
         unset(
$_SESSION[EXISTING_USER_LOGIN_SESSION_KEY]);
      }
   }

   function 
check_existing_user($user$pass)
   {
      
$link mysql_connect(EXISTING_USER_LOGIN_DB_HOSTEXISTING_USER_LOGIN_DB_USEREXISTING_USER_LOGIN_DB_PASS);
      if (!
$link) {
         die(
'Could not connected to database: ' mysql_error());
      }

      
// make foo the current db
      
$db_selected mysql_select_db(EXISTING_USER_LOGIN_DB_NAME$link);
      if (!
$db_selected) {
         die (
'Could not select database : ' mysql_error());
      }

      switch (
EXISTING_USER_LOGIN_ENCRYPTION)
      {
         case 
'md5' :
            
$pass md5($pass);
            break;
         case 
'sha1' :
            
$pass sha1($pass);
            break;
         case 
'crypt' :
            if (
defined("EXISTING_USER_LOGIN_ENCRYPTION_SALT"))
               
$pass crypt($passEXISTING_USER_LOGIN_ENCRYPTION_SALT);
            else
               
$pass crypt($pass);
            break;
         default :
            break;
      }
      if (
defined("EXISTING_USER_LOGIN_QUERY"))
      {
         
$query sprintf(EXISTING_USER_LOGIN_QUERY, , );
      }
      else
      {
         
$query "SELECT * ".
            
"FROM ".EXISTING_USER_LOGIN_DB_TABLE." ".
            
"WHERE ".EXISTING_USER_LOGIN_DB_COL_USERNAME."='".mysql_real_escape_string($user)."' ".
            
"AND ".EXISTING_USER_LOGIN_DB_COL_PASSWORD."='".mysql_real_escape_string($pass)."'";
      }
      if (!
$result mysql_query($query$link))
      {
         
mysql_close($link);
//         die("Could not execute query : ".$query."<br>\nerror: ".mysql_error());
         
die("Could not execute query");
      }
      else
      {
         
$return = (bool) mysql_num_rows($result);
         
mysql_close($link);
         return 
$return;
      }
   }

   function 
is_existing_user_logged_in()
   {
      if (!isset(
$_SESSION[EXISTING_USER_LOGIN_SESSION_KEY]) || true !== $_SESSION[EXISTING_USER_LOGIN_SESSION_KEY])
      {
         if (isset(
$_POST['username']) && isset($_POST['password']))
         {
            if (
check_existing_user($_POST['username'], $_POST['password']))
            {
               
$_SESSION[EXISTING_USER_LOGIN_SESSION_KEY] = true;
               if (isset(
$_POST['redirect']) && !empty($_POST['redirect']))
               {
                  
header("Location: ".$_POST['redirect']);
                  exit;
               }
               return 
true;
            }
            else
            {
               return 
false;
            }
         }
         else
         {
            return 
false;
         }
      }
      else
      {
         return 
True;
      }
   }
?>

download

=[Disclaimer]=     © 2005-2018 Excudo.net