I want to set up a comment system, at the time of opening xml php can, but at the time of saving a new message does not, besides not being able to save it also does not error. (Note: it is a bit urgent for CBT). Codes:
Open profile_php.php :
// isso está dentro de uma div.
$tipoUsuario = pegaTipoUsuario($conexao, $cpf);
$dom = new DOMDocument("1.0", "ISO-8859-7");
$root = lerXML($dom, $conexao, $cpfTec, $cpf, $tipoUsuario);
$dom = $_SESSION['dom'];
$ver = simplexml_import_dom($dom);
foreach ($ver as $xml):
if ($xml->cpf_origem == 1234) {
echo '<p align="center">' . $xml->mensagem . '</p>';
} else if ($xml->cpf_origem == $cpf) {
echo '<p align="right">' . $xml->mensagem . '</p>';
echo '<p align="right">' . $xml->data_envio . '</p>';
} else {
echo '<p align="left">' . $xml->mensagem . '</p>';
echo '<p align="left">' . $xml->data_envio . '</p>';
}
endforeach;
// Sim, está vindo post..
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$mensagem = $_POST['txtMsg'];
$msg = addMensagem($dom, $mensagem, $cpf);
$root->appendChild($msg);
$dom->appendChild($root);
# Para salvar o arquivo, descomente a linha
$dom->save("contatos.xml");
unset($_POST['txtMsg']);
// estou usando js aqui porque o header está dando erro..
echo '<script> window.location("pag_perfilAbertoTec.php"); </script>';
}
bank-messages.php
function addMensagem($documento, $mensagem, $cpf_origem) {
// criar msg
$msg = $documento->createElement("msg");
// criar nó data
$data = date('j/n/Y H:i:s');
$dataElm = $documento->createElement("data_envio", $data);
// criar nó origem
$cpf_origemElm = $documento->createElement("cpf_origem", $cpf_origem);
// criar nó mensagem (texto)
$mensagemElm = $documento->createElement("mensagem", $mensagem);
$msg->appendChild($dataElm);
$msg->appendChild($cpf_origemElm);
$msg->appendChild($mensagemElm);
return $msg;
}
//daqui vem o $root
function lerXML($dom, $conexao, $cpfCli, $cpfTec, $tipo) {
if ($tipo === 2) {
$sql = "select caminho_xml as xml from tbl_mensagem where cpf_cliente_fk = $cpfCli and cpf_tecnico_fk = $cpfTec";
} else {
$sql = "select caminho_xml as xml from tbl_mensagem where cpf_cliente_fk = $cpfTec and cpf_tecnico_fk = $cpfCli";
}
$return = mysqli_query($conexao, $sql);
$row = mysqli_fetch_array($return, MYSQLI_ASSOC);
$nomeArquivo = $row["xml"];
if (!file_exists($nomeArquivo)) {
$novonome = gerarNomeXML();
guardarXML($conexao, $novonome, $cpfCli, $cpfTec, $tipo);
$msg = addMensagem($dom, "Conectados!", null);
// criando nó principal
$root = $dom->createElement("mensagens");
// adiciona a mensagem ao root
$root->appendChild($msg);
// adiciona o root ao xml
$dom->appendChild($root);
// retirar os espaços em branco
$dom->preserveWhiteSpace = false;
// gerar código ??
$dom->formatOutput = true;
$_SESSION['nomeXML'] = $novonome;
$dom->save($novonome);
$_SESSION['dom'] = $dom;
return $root;
} else {
// carrega o arquivo
$dom->load($nomeArquivo);
$_SESSION['nomeXML'] = $nomeArquivo;
// recupera nó principal
$root = $dom->documentElement;
$_SESSION['dom'] = $dom;
return $root;
}
}
function guardarXML($conexao, $caminho, $cpfCli, $cpfTec, $tipo) {
if ($tipo == 2) {
$sql = "update tbl_mensagem set caminho_xml = '$caminho' where cpf_cliente_fk = $cpfTec and cpf_tecnico_fk = $cpfCli";
} else {
$sql = "update tbl_mensagem set caminho_xml = '$caminho' where cpf_cliente_fk = $cpfCli and cpf_tecnico_fk = $cpfTec";
}
$resultado = mysqli_query($conexao, $sql);
return $resultado;
}