Duvida PHP com XML

Enviada por mycontato 
mycontato
Duvida PHP com XML
22 de September de 2011 às 12:53PM
Olá Pessoal. Tranquilo ?

Primeiro quero agradecer por estar lendo esse tópico, obrigado.

Eu estou estudando PHP com XML, com o simplexml e me surgiu uma duvida.

Eu possuo essa estrutura XML, chamado logados.xml

<?xml version="1.0"?>
<root><usuarios><nome>admin</nome><status>1</status></usuarios>
<usuarios><nome>maria</nome><status>2</status></usuarios>
<usuarios><nome>joao</nome><status>1</status></usuarios>
<usuarios><nome>joaquim</nome><status>3</status></usuarios>
<usuarios><nome>marcio</nome><status>4</status></usuarios></root>



Eu gostaria que quando o usuário clicar em logoff, automaticamente o PHP visse que esta logado pelo $_SESSION['MM_Username'];, e fizesse uma busca dentro do arquivo logados.xml, e deletar somente o conjunto de registro e filhos do xml, do usuário que esta fazendo logoff.

Isso é possivel ? Toda ajuda será bem vinda, se puderem contribuir com algum codigo, para eu já começar meus estudos, agradeço de verdade.

Obrigado pela força.
Marcos Regis
Re: Duvida PHP com XML
22 de September de 2011 às 01:17PM
Antes de postar código uma pergunta. Por que precisa usar XML para isso?
mycontato
Re: Duvida PHP com XML
22 de September de 2011 às 01:57PM
Primeiramente, obrigado pelo retorno.

É um sistema de messenger, que exibe o status do usuário na lista do messenger, quando o usuário logar, grava no logado.xml, o username dele, dai o PHP verifica, se ele esta na lista, ele esta online, se ele não estiver na lista ele esta offline, dai que precisar deletar ao fazer logoff, pois são muitos usuários acessando esse sistema, e BD estã fora do escopo do projeto.

Por isso estou usando o xml, pois a unica finalidade é informar se o usuário esta online ou offline no sistema.
Marcos Regis
Re: Duvida PHP com XML
23 de September de 2011 às 02:33PM
cara tem um monte de alternativas melhores do que XML.
XML não é para isso. O custo de abrir, parsear, alterar e salvar um XML é muito grande.
Não precisa de um banco de verdade. Você pode usar SQLite para isso ou usar qq outro tipo de informação de forma mais simples.

Aqui um exemplo usando dados serializados.

$logados=array();

if(is_file(sys_get_temp_dir().'/logados.tmp')){
// Ler o conteudo do arquivo
$logados = unserialize(file_get_contents(sys_get_temp_dir().'/logados.tmp'));
}

verifica se está logado
if(issest($logados[$_SESSION['MM_Username']] && $logados[$_SESSION['MM_Username']]['status']=='logado'){
// está logado
}

// fazendo logoff

unset($logados[$_SESSION['MM_Username']]);

// salvando os dados
file_put_contents(sys_get_temp_dir().'/logados.tmp'),serialize($logados));
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.