|
|||
|
I am trying to get 123FC to integrate with our Ikonboard 3.12a software and having a few problems.
I was able to get the mysql connection working but it does not seem to recognize the password. Does anyone have any examples of how to get Ikonboard/Mysql working with FC 4.5 ? I might as well throw this in as well and that is once this is working I would like to auto authenticate the forum users to the chat. So if you have any help in that area this would a bonus. Lee |
|
|||
|
our password system just support md5,I guess Ikonboard use his own
password encryption method,so that's why you got "wrong password". You can use "url" on intergrate-other-database in default.xml and create a php/asp called login_chat.php.use this php to access your database,different number can get different result: $LOGIN_SUCCESS = 0; $LOGIN_PASSWD_ERROR = 1; $LOGIN_NICK_EXIST = 2; $LOGIN_ERROR = 3; $LOGIN_ERROR_NOUSERID = 4; $LOGIN_SUCCESS_ADMIN = 5; $LOGIN_NOT_ALLOW_GUEST = 6; $LOGIN_USER_BANED = 7; |
|
|||
|
Cloudy thanks for the reply. I have been doing some research on this and I believe that Ikonboard does use MD5. But the hash that they use "lowercase username+password".
Here is part of the code that I was told creates the hash. Code:
$login = strtolower($login); // Convert the username to lowercase $salt = $pass.$login; // Join it together with the password $code= md5($salt); // Encrypt it with MD5. Done! Lee |
|
|||
|
Hi Lee,
here is a sample for vbulletin forum, and the password is hashed by a salt, maybe you can refer it and create a new one for your forum: Code:
<?php
include "./includes/config.php";
$LOGIN_SUCCESS = 0;
$LOGIN_PASSWD_ERROR = 1;
$LOGIN_NICK_EXIST = 2;
$LOGIN_ERROR = 3;
$LOGIN_ERROR_NOUSERID = 4;
$LOGIN_SUCCESS_ADMIN = 5;
$LOGIN_NOT_ALLOW_GUEST = 6;
$LOGIN_USER_BANED = 7;
$db = new sql_db($servername, $dbusername, $dbpassword, $dbname, false);
if(!$db->db_connect_id)
{
echo $LOGIN_ERROR;
exit;
}
$username = isset($HTTP_GET_VARS['username']) ? trim(htmlspecialchars($HTTP_GET_VARS['username'])) : '';
$username = substr(str_replace("\\'", "'", $username), 0, 25);
$username = str_replace("'", "\\'", $username);
$password = isset($HTTP_GET_VARS['password']) ? $HTTP_GET_VARS['password'] : '';
$sql = "SELECT salt, password FROM " . $tableprefix . "user WHERE username = '".$username."'";
//echo $sql;exit;
if ( !($result = $db->sql_query($sql)) )
{
echo $LOGIN_ERROR."dd";
exit;
}
if( $row = $db->sql_fetchrow($result) )
{
$db_password = $row['password'];
if ($password == $db_password)
{
echo $LOGIN_SUCCESS;
exit;
}
else if (md5((md5($password) . $row['salt'])) == $db_password)
{
echo $LOGIN_SUCCESS;
exit;
}
else
{
echo $LOGIN_PASSWD_ERROR;
exit;
}
}
else
{
echo $LOGIN_ERROR_NOUSERID;
exit;
}
class sql_db
{
var $db_connect_id;
var $query_result;
var $row = array();
var $rowset = array();
var $num_queries = 0;
var $in_transaction = 0;
//
// Constructor
//
function sql_db($sqlserver, $sqluser, $sqlpassword, $database, $persistency = true)
{
$this->persistency = $persistency;
$this->user = $sqluser;
$this->password = $sqlpassword;
$this->server = $sqlserver;
$this->dbname = $database;
$this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password);
if( $this->db_connect_id )
{
if( $database != "" )
{
$this->dbname = $database;
$dbselect = mysql_select_db($this->dbname);
if( !$dbselect )
{
mysql_close($this->db_connect_id);
$this->db_connect_id = $dbselect;
}
}
return $this->db_connect_id;
}
else
{
return false;
}
}
//
// Other base methods
//
function sql_close()
{
if( $this->db_connect_id )
{
//
// Commit any remaining transactions
//
if( $this->in_transaction )
{
mysql_query("COMMIT", $this->db_connect_id);
}
return mysql_close($this->db_connect_id);
}
else
{
return false;
}
}
//
// Base query method
//
function sql_query($query = "", $transaction = FALSE)
{
//
// Remove any pre-existing queries
//
unset($this->query_result);
if( $query != "" )
{
$this->num_queries++;
if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction )
{
$result = mysql_query("BEGIN", $this->db_connect_id);
if(!$result)
{
return false;
}
$this->in_transaction = TRUE;
}
$this->query_result = mysql_query($query, $this->db_connect_id);
}
else
{
if( $transaction == END_TRANSACTION && $this->in_transaction )
{
$result = mysql_query("COMMIT", $this->db_connect_id);
}
}
if( $this->query_result )
{
unset($this->row[$this->query_result]);
unset($this->rowset[$this->query_result]);
if( $transaction == END_TRANSACTION && $this->in_transaction )
{
$this->in_transaction = FALSE;
if ( !mysql_query("COMMIT", $this->db_connect_id) )
{
mysql_query("ROLLBACK", $this->db_connect_id);
return false;
}
}
return $this->query_result;
}
else
{
if( $this->in_transaction )
{
mysql_query("ROLLBACK", $this->db_connect_id);
$this->in_transaction = FALSE;
}
return false;
}
}
//
// Other query methods
//
function sql_numrows($query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
return ( $query_id ) ? mysql_num_rows($query_id) : false;
}
function sql_affectedrows()
{
return ( $this->db_connect_id ) ? mysql_affected_rows($this->db_connect_id) : false;
}
function sql_numfields($query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
return ( $query_id ) ? mysql_num_fields($query_id) : false;
}
function sql_fieldname($offset, $query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
return ( $query_id ) ? mysql_field_name($query_id, $offset) : false;
}
function sql_fieldtype($offset, $query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
return ( $query_id ) ? mysql_field_type($query_id, $offset) : false;
}
function sql_fetchrow($query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
if( $query_id )
{
$this->row[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC);
return $this->row[$query_id];
}
else
{
return false;
}
}
function sql_fetchrowset($query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
if( $query_id )
{
unset($this->rowset[$query_id]);
unset($this->row[$query_id]);
while($this->rowset[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC))
{
$result[] = $this->rowset[$query_id];
}
return $result;
}
else
{
return false;
}
}
function sql_fetchfield($field, $rownum = -1, $query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
if( $query_id )
{
if( $rownum > -1 )
{
$result = mysql_result($query_id, $rownum, $field);
}
else
{
if( empty($this->row[$query_id]) && empty($this->rowset[$query_id]) )
{
if( $this->sql_fetchrow() )
{
$result = $this->row[$query_id][$field];
}
}
else
{
if( $this->rowset[$query_id] )
{
$result = $this->rowset[$query_id][$field];
}
else if( $this->row[$query_id] )
{
$result = $this->row[$query_id][$field];
}
}
}
return $result;
}
else
{
return false;
}
}
function sql_rowseek($rownum, $query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
return ( $query_id ) ? mysql_data_seek($query_id, $rownum) : false;
}
function sql_nextid()
{
return ( $this->db_connect_id ) ? mysql_insert_id($this->db_connect_id) : false;
}
function sql_freeresult($query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
if ( $query_id )
{
unset($this->row[$query_id]);
unset($this->rowset[$query_id]);
mysql_free_result($query_id);
return true;
}
else
{
return false;
}
}
function sql_error()
{
$result['message'] = mysql_error($this->db_connect_id);
$result['code'] = mysql_errno($this->db_connect_id);
return $result;
}
} // class sql_db
?>
|
|
|||
|
I think you guys are telling me how to build a watch when what is needed is the time of day.
![]() The ONLY thing that is needed is to be able to define the hash that is sent to 123Flashchat. There is no need to rewrite the Ikonboard routines because they indeed use MD5. The problem is you can not feed FC a hash other than the value in the %password% field. If FC would allow you to use ?init_password=%username%+%password% the problem would be solved. Ikonboard uses the lowercase user name + password as the hash to create the MD5 password. Lee |
![]() |
Was this information helpful? Yes No
| Thread Tools | |
| Display Modes | |
|
|