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.