Jump to content


Oslain

Member Since 09/05/2007
Offline Last Active 25/05/2007, 10:59
-----

Topics I've Started

Pagina De Cadastro Muonline (md5)

24/05/2007, 12:28

Olá Pessoal!!!


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.

Problema No Top Do Oscommerce (parte 1)

09/05/2007, 18:43

estou com este problema e não consigo resolvel, se tiver alguem aí com bondade em me ajudar a resolver obrigado

Warning: session_save_path() [function.session-save-path]: SAFE MODE Restriction in effect. The script whose uid is 1135 is not allowed to access /tmp owned by uid 0 in /htdocs/home/xxxx/www/xxxxx/admin/includes/functions/sessions.php on line 110

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /htdocs/home/xxxxx/www/xxxxx/admin/includes/functions/sessions.php:110) in /htdocs/home/xxxxx/www/xxxxx/admin/includes/functions/sessions.php on line 67

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /htdocs/home/xxxxx/www/xxxxx/admin/includes/functions/sessions.php:110) in /htdocs/home/xxxxx/www/xxxxx/admin/includes/functions/sessions.php on line 67

IPB Skin By Virteq