estou tendo um problemão aqui, tenho um servidor de muonline , tenho um site que um colega meu desenvolveu, mas agora estou com uma versão nova e ela usa um databas em MD5, ai que mora o problema não consigo fazer com que ela faça o cadastro ou acesse os modulos , pois a mesma preciza de login e senha.
vou postar aqui a pg de inclusao e de verificação.
user.php
<?php
require_once($_SERVER['DOCUMENT_ROOT'] ."/includes/common.php");
/**
* Classe de manipulação do usuário
*
* Essa classe manipula o usuário corrente logado no sistema.
* @author Eduardo Schmidt & Oslain Vieira
* @version 1.0.0
*/
final class User
{
/**
* @var object $instance Armazena a instancia desta classe caso deseje que seja recuperado.
* @access private
*/
static private $instance;
public $AccountID = null;
/**
* @var object $db Guarda o objeto de acesso a base de dados
* @access private
*/
private $db = null;
/**
* Método construtor
*
* Este método recupera as informações do usuário caso ele esteja logado
* @return void
*/
public function __construct() {
$this->db = Database::GetGlobalInstance();
$this->AccountID = (!isset($_SESSION['AccountID'])) ? (null) : ($_SESSION['AccountID']);
}
/**
* GetGlobalInstance - Utilizado como método construtor
*
* Usa-se User::GetGlobalInstance() ao invés de new User() para evitar que sejam instanciadas
* diversos objetos User, evitando assim o desperdício de memória para o mesmo objeto.
* @return object User
* @access public
*/
static public function GetGlobalInstance() {
if (!isset(self::$instance)) {
$self_class = __CLASS__;
self::$instance = new $self_class;
}
return self::$instance;
}
/**
* Efetuar logon do usuário
*
* Está função efetua o logon do usuário $id no sistema
* @param integer $id Identificador do Usuário
* @return bool
*/
public function checklogon($user, $passwd) {
$user = stripslashes(str_replace("'", "", $user));
$passwd = stripslashes(str_replace("'", "", $passwd));
//
// sei que é aqui o problema!
$sql = "SELECT memb___id AS AccountID FROM MEMB_INFO WHERE memb__pwd='$passwd' AND memb___id='$user'";
//
//
$query = $this->db->query($sql);
if (mssql_num_rows($query) != 0) {
$fields = mssql_fetch_assoc($query);
$_SESSION['AccountID'] = $fields['AccountID'];
return true;
} else {
return false;
}
}
/**
* Efetuar logoff do usuário
*
* Está função remove o login do usuário
* @return bool
*/
public function logoff() {
if ($this->is_logged()) {
session_unregister('AccountID');
if (isset($_SESSION['shop'])) session_unregister('shop');
return true;
} else {
return false;
}
}
/**
* Método que verifica se um usuário está logado
*
* @return void
*/
public function is_logged() {
if (!empty($this->AccountID)) {
return true;
} else {
return false;
}
}
/**
* Verifica se o usuário está conectado no jogo
*
* @return bool
*/
function is_online($char=null) {
if ($char != null) {
$sql = "SELECT MEMB_STAT.ConnectStat AS ConnectStat FROM Memb_stat JOIN AccountCharacter ON Memb_stat.memb___id=AccountCharacter.ID JOIN Character ON AccountCharacter.GameIDC=Character.Name COLLATE Latin1_general_CI_AS WHERE MEMB_STAT.memb___id='".$this->AccountID."' AND Character.Name='$char'";
} else {
$sql = "SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='".$this->AccountID."'";
}
$query = $this->db->query($sql);
if (mssql_num_rows($query) != 0) {
$status = mssql_result($query, 0, 'ConnectStat');
return ($status == '1') ? (true) : (false);
} else return false;
}
/**
* Verifica se o usuário tem conta de VIP
*
* @return bool
*/
public function is_vip() {
if (!$this->is_logged()) return false;
$sql = "SELECT vip AS VIP FROM MEMB_INFO WHERE memb___id='".$this->AccountID."'";
$query = $this->db->query($sql);
return mssql_result($query, 0, 'VIP');
}
/**
* Verifica se a conta do usuário logado contem personagem de GM
*
* @return bool
*/
public function is_gm() {
if (!$this->is_logged()) return false;
$return = false;
$sql = "SELECT CtlCode FROM Character WHERE AccountID='".$this->AccountID."'";
$query = $this->db->query($sql);
while ($row = mssql_fetch_assoc($query))
if ($row['CtlCode'] == '8') { $return = true; break; }
return $return;
}
/**
* Retorna o nome do Personagem com atributo de GM
*
* @return string
*/
public function gm_name() {
if (!$this->is_gm()) return false;
$sql = "SELECT Name FROM Character WHERE AccountID='".$this->AccountID."' AND CtlCode='8'";
$query = $this->db->query($sql);
$name = '';
if (mssql_num_rows($query)) {
$name = mssql_result($query, 0, 'Name');
}
return $name;
}
}
?>register.php
<?php
require_once($_SERVER['DOCUMENT_ROOT'] ."/includes/common.php");
if (basename($_SERVER['REQUEST_URI']) == basename($_SERVER['SCRIPT_FILENAME']))
include_once($_SERVER['DOCUMENT_ROOT'] ."/htmlheader.php");
$success = false;
if (isset($_POST['ok'])) {
$alerts = array();
// verifica se os campos estão preenchidos
if (empty($_POST['login'])) $alerts[] = 'Preencha o campo "Login ID."';
if (empty($_POST['passwd'])) $alerts[] = 'Preencha o campo "Senha."';
if (empty($_POST['passwd_retry'])) $alerts[] = 'Preencha o campo "Confirme a Senha."';
if (empty($_POST['name'])) $alerts[] = 'Preencha o campo "Nome".';
if (empty($_POST['email'])) $alerts[] = 'Preencha o campo "E-mail".';
if (empty($_POST['code'])) $alerts[] = 'Preencha o campo "Código".';
// campos preenchidos, continuar as validações
if (count($alerts) == 0) {
if ($_POST['passwd'] <> $_POST['passwd_retry']) $alerts[] = 'As senhas informadas não conferem!';
if ($_POST['security_code'] <> $_POST['code']) $alerts[] = 'O código informado não bate.';
$login_check = $db->query("SELECT memb___id FROM MEMB_INFO WHERE memb___id='$_POST[login]'");
$email_check = $db->query("SELECT mail_addr FROM MEMB_INFO WHERE mail_addr='$_POST[email]'");
if (mssql_num_rows($login_check) == 1) $alerts[] = "'$_POST[login]' já está sendo utilizado por outro membro. Entre com um Login ID diferente!";
if (mssql_num_rows($email_check) == 1) $alerts[] = "'$_POST[email]' já está sendo utilizado por outro membro. Entre com um e-mail diferente!";
}
// validação concluida, inserir os dados do cadastro
if (count($alerts) == 0) {
$db->transaction(_DB_TRANS_OPEN_);
$db->query("SET IDENTITY_INSERT MEMB_INFO ON");
$db->query("INSERT INTO MEMB_INFO (memb_guid,memb___id,memb__pwd,memb_name,sno__numb,post_code,mail_addr,job__code,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code,vip) VALUES ('1','$_POST[login]','$_POST[passwd]','$_POST[name]','1','$_POST[uf]','$_POST[email]','1','2003-11-23','2003-11-23','2003-11-23','2003-11-23','1','0','1','0')");
$query_check = $db->query("SELECT memb___id FROM MEMB_INFO WHERE memb___id='$_POST[login]'");
if (mssql_num_rows($query_check) <> 0) {
$db->transaction(_DB_TRANS_COMMIT_);
$success = true;
} else {
$db->transaction(_DB_TRANS_ROLLBACK_);
}
}
}
if ($success == false) {
$security_code = rand(1, 9) . rand(1, 9) . rand(1, 9) . rand(1, 9);
include($_SERVER['DOCUMENT_ROOT'] ."/templates/register.php");
} else {
include($_SERVER['DOCUMENT_ROOT'] ."/templates/registerok.php");
}
if (basename($_SERVER['REQUEST_URI']) == basename($_SERVER['SCRIPT_FILENAME']))
include_once($_SERVER['DOCUMENT_ROOT'] ."/htmlfooter.php");
?>Ou segue abaixo o paginas de cadastro nos seus respectivos lugares.



Postagens
Não informado
