Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

05-04-2015 16:00

Olá!

Não sei deu para entender bem o que quis dizer no título do tópico, mas vou tentar explicar.

Eu tenho arquivos de textos em PDF, mas quero que sejam acessados através de uma caixa de login.

Tenho um XML com a seguinte estrutura:

<?xml version="1.0" encoding="ISO-8859-1" ?> <G_LINE> <GL_TIPO>LIVRO</GL_TIPO> <GL_TITULO>O AMOR VENCEU</GL_TITULO> <GL_SN>N</GL_SN> <GL_USUARIO>1365</GL_USUARIO> <GL_SENHA>4452K</GL_SENHA> <GL_COD_DOC>1365</GL_COD_DOC> <GL_FORMATO>PDF</GL_FORMATO> </G_LINE>

Então, a idéia é chamar o arquivo PDF por uma caixa de login, onde os campos Usuário e Senha fossem buscados no XML e se conferirem, abre o pdf na tela direto no navegador.

No XML acima, ao digitar o usuário e a senha na caixa de login, abriria então o arquivo 1365.pdf

Basicamente a idéia é esta.

Sei que não tem partes em PHP no código acima, mas a outra parte que tenho é em PHP e por isto postei na seção PHP, se estiver errado por favor me desculpem.

Alguém pode me ajudar?

Obrigada
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chamar um arquivo Zip ou PDF de um XML por formulário

05-04-2015 16:12

Pelo que entendi você precisa então per as linhas específicas GL_USUARIO E GL_SENHA comparando com o digitado no formulário.
Batendo as informações retorna a linha GL_COD_DOC. É isso?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

05-04-2015 16:14

Sim, batendo o usuário e a senha, já abriria direto na tela ou numa pop up o arquivo PDF.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chamar um arquivo Zip ou PDF de um XML por formulário

05-04-2015 16:39

Montei um exemplo

$xml -> GL_USUARIO // USUÁRIO $xml -> GL_SENHA // SENHA $xml -> GL_COD_DOC // ARQUIVO


<form action="teste.php" method="post"> usuario <input type="text" name="usuario" value="" /> <br /> senha <input type="text" name="senha" value="" /> <br /> <input type="submit" name="submit" /> </form>


<?php if(isset($_POST['submit'])) { // NOME DO XML ABAIXO $string = file_get_contents("xml.xml"); $xml = simplexml_load_string($string); if($xml -> GL_USUARIO==$_POST['usuario'] && $xml -> GL_SENHA==$_POST['senha']) { echo "<a href=\"".$xml -> GL_COD_DOC.".pdf\">".$xml -> GL_COD_DOC."</a>"; // ARQUIVO } else { echo "dados incorreto"; } } ?>

1
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

05-04-2015 17:28

Oi web!

No seu modelo funciona certinho, mas deste jeito, eu teria que informar na linha, o arquivo que quero que seja aberto.

Esqueci de dizer que no diretório, tem vários arquivos de usuários diferentes, por isso a idéia de chamar cada um com senha, assim só pode ler os textos, ou o autor ou quem ele passar a senha daquele texto específico.

Por exemplo, no diretório, tem sempre 2 arquivos de cada texto, sendo um, o arquivo XML e o outro, o arquivo PDF:

12345.XML
12345.pdf

Eu já tinha um script assim, mas quando os textos eram feitos em arquivos txt.
Mas aí começamos a fazer em pdf, para podermos colocar formatação nas fontes, inserir imagens, etc e ficar mais bonitinho.

Antes tínhamos 2 códigos também:

login.php
ver_texto.php


Neste ver_texto.php, havia um script que rastreava o diretório e aí ao bater os campos de usuário e senha, abria apenas o arquivo a que se referia estes campos.

Vou colocar abaixo como era, mas antes era pra arquivos txt e se baseava nas linhas contidas nestes arquivos mesmo:

<?     $LOGIN = htmlspecialchars(stripslashes($_POST['LOGIN']));     $PASS = htmlspecialchars(stripslashes($_POST['PASS']));     $dir = ".";     if (is_dir($dir)){       if ($dh = opendir($dir)){       while (($arquivo = readdir($dh)) !== false){       if(is_file($arquivo))       {       $divide = explode(".",$arquivo);       $total = (count($divide) - 1);       if($divide[$total]=='txt')       {       //echo "ARQUIVO: ".$arquivo."<BR>\n";       $arquivo_loop = file($arquivo);       $usuario=$arquivo_loop[3];       $senha=$arquivo_loop[4];       $linha10=$arquivo_loop[5];       //echo "Usuário: ".$usuario."<BR>\n";       //echo "Senha: ". $senha."<BR>\n";              if(trim($usuario)==$LOGIN AND trim($senha)==$PASS)       {       //echo "<A HREF='".$arquivo."'>Ver Texto</A>";       $arquivo_loop = file($arquivo);       $count = count($arquivo_loop);       //include 'header.php';       echo '<div align="center"><center><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="800" id="AutoNumber1"><tr><td width="379" height="70"><p align="center"><b><font face="Tahoma" size="4">Texto</font></b></p><pre>';       for($i=5; $i<=count($arquivo_loop); $i++)       {       echo $arquivo_loop[$i]."";       }       echo "</pre></td></tr></table></center></div>";       echo '<center><a href="#" onclick="window.print();"><img border="0" src="print1.gif" width="43" height="40"></a></center>';       }       }     }     }     closedir($dh);     }     }     ?>     <?       //include 'footer.php';     ?>

Já tentei adaptar o código acima, mas não faço nem idéia de como fazer, se alguém puder dar uma ajudinha fico agradecida!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chamar um arquivo Zip ou PDF de um XML por formulário

05-04-2015 20:06

Montei um novo exemplo, dessa vez percorrendo todos os arquivos .xml de uma pasta chamada xml/

<?php if(isset($_POST['submit'])) { //////////////////////////////////////////////////////// $diretorio = "xml"; $true = false; // *.txt são os formatos de arquivos a serem alterados foreach (glob("$diretorio/*.xml") as $arquivo) { $p1 = explode("/", $arquivo); $p2 = explode(".", $p1[1]); $string = file_get_contents($diretorio."/".$p2[0].".".$p2[1]); $xml = simplexml_load_string($string); if($xml -> GL_USUARIO==$_POST['usuario'] && $xml -> GL_SENHA==$_POST['senha']) { echo "<a href=\"".$xml -> GL_COD_DOC.".pdf\">".$xml -> GL_COD_DOC."</a><br />"; // ARQUIVO $true = true; } else { //echo "dados incorreto"; } } //////////////////////////////////////////////////////// if($true==false) { echo "dados incorreto"; } } ?>

1
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

05-04-2015 21:08

Oi web, obrigada pela ajuda!

Ai, desculpa, não tinha visto que o código tinha mudado... :$

Agora sim, deu certinho!

Muito obrigada pela ajuda! :clap:
0
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

05-04-2015 22:54

Oi web!

Me baseando no código, tentei criar um sisteminha de busca para facilitar no caso de alguém ter mais de um texto e ficou assim:

busca.php

<form action="ver_textos2.php" method="post"> Pesquisa por Nome: <input type="text" name="nome" value="" /> <br />   <input type="submit" name="submit" /> </form>

ver_textos2.php

<?php if(isset($_POST['submit'])) { //////////////////////////////////////////////////////// $diretorio = "xml"; $true = false; // *.txt são os formatos de arquivos a serem alterados foreach (glob("$diretorio/*.XML") as $arquivo) { $p1 = explode("/", $arquivo); $p2 = explode(".", $p1[1]); $string = file_get_contents($diretorio."/".$p2[0].".".$p2[1]); $xml = simplexml_load_string($string); if($xml -> GL_NOME==$_POST['nome']) { echo "<a href=\"".$xml -> GL_COD_DOC.".pdf\">".$xml -> GL_COD_DOC."</a><br />"; // ARQUIVO $true = true; } else { //echo "dados incorretos"; } } //////////////////////////////////////////////////////// if($true==false) { echo "dados incorreto"; } } ?>

Assim, simulou uma pesquisa por Nome de Autor e se a autora tiver mais de um texto, ele é exibido na página de resultados.

Eu queria deixar este campo de resultado mais aprimorado, pra ficar mais ou menos assim dentro de uma tabela:

Resultados:

Texto Data e Hora da Postagem Nome do Autor

O campo texto é o que já é retornado na busca, então pensei em usar a função DATE do php desta forma:

date('d/m/Y h:ia')

Mas neste caso, ela atualiza o horário obviamente a cada visualização e eu queria que exibisse o horário em que o texto foi postado no servidor apenas.
Dei uma olhada no manual do PHP mas não sei como utilizar direito esta função e qual o parâmetro correto para exibir a hora em que o texto foi postado.

Se não for abusar e puder dar uma dica de como formatar isso eu fico imensamente agradecida!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chamar um arquivo Zip ou PDF de um XML por formulário

05-04-2015 23:24

A questão da data do arquivo, não sei se você diz a data da última modificação. Se for, é a função filetime
http://php.net/manual/pt_BR/function.filemtime.php

A questão de organizar em tabelas é assim. Vamos supor que você queira puxar duas informações do arquivo:

Depois de

if(isset($_POST['submit'])) { 

Adiciona

echo "<table> <tr> <td>coluna1</td> <td>coluna2</td> </tr>"; 

Onde está o echo do href, você vai ter que formatar dentro de uma linha da tabela, tipo

echo "<tr> <td><a href=\"".$xml -> GL_COD_DOC.".pdf\">".$xml -> GL_COD_DOC."</a></td> <td>outra info</td> </tr>"; 

O antes do fechamento do submit que é antes do fechamento da última chave você adiciona

echo "</table>";

1
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

12-04-2015 18:36

Oi web, obrigada pela ajuda!

Fiz umas alterações e ficou bem legal, mas não sei onde estou errando agora, pois aparecem várias tabelas repetindo os dados:

<style fprolloverstyle>A:hover {color: #FF9900; font-family: Tahoma; font-size: 10 pt; text-decoration: none} </style> <style> a {text-decoration:none;} </style> <script language='javascript'>      function abrirpopup(URL){          window.open( URL ,'leitura','fullscreen=0,menubar=0,location=0,status=0,directories=0,resizable=0,scrollbars=1,width=850,height=600');      } </script> <?php // Definir o horário brasileiro: date_default_timezone_set('Brazil/East');   if(isset($_POST['submit'])) {   //////////////////////////////////////////////////////// $diretorio = "xml"; $true = false;   // *.txt são os formatos de arquivos a serem alterados foreach (glob("$diretorio/*.XML") as $arquivo) { $p1 = explode("/", $arquivo); $p2 = explode(".", $p1[1]);   $string = file_get_contents($diretorio."/".$p2[0].".".$p2[1]); $xml = simplexml_load_string($string);    // Exibir o resultado da pesquisa em uma tabela echo '<style>td { padding-right: 10px; }</style>'; echo '<strong><h2>Meus Textos:</h2></strong>'; echo '<div align="center">   <center>   <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="536" height="42" id="AutoNumber1">'; echo '<tr>                 <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Texto</b></font></td>         <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Data do Envio</b></font></td>         <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Remover</b></font></td>           </tr>'; if($xml -> GL_TITULO==$_POST['nome']) { echo "<tr><td width=\"139\" height=\"25\" bgcolor=\"#E3E8EC\"><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a href='javascript:abrirpopup(\"".$xml -> GL_COD_DOC.".pdf\");'>".$xml -> GL_COD_DOC."</a>\n&nbsp;&nbsp;&nbsp;&nbsp;<font face=\"tahoma\" size=\"2\"></td>\n"; echo '<td width=\"139\" height=\"25\" align="left">', date('d/m/Y h:ia', filemtime($arquivo)), "</td>\n"; // ARQUIVO echo "<td width=\"139\" height=\"25\" align='left'><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a title='Deletar Texto' href='delete.php?arquivo={$arquivo}'><img border=\"0\" src=\"delete.png\" width=\"16\" height=\"16\">  Excluir Texto</a>\n&nbsp;&nbsp;&nbsp;&nbsp;</font></td></tr>\n"; $true = true; } else { //echo "Dados incorretos"; }   } ////////////////////////////////////////////////////////   if($true==false) { echo "<b><font face=\"tahoma\" size=\"2\" color=\"red\">Dados Incorretos</font></b>"; } echo '</table>'; } ?>

Está ficando assim:

Imagem
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chamar um arquivo Zip ou PDF de um XML por formulário

12-04-2015 20:04

Eu fiz um teste com seu código, e achei esse bloco

echo '<tr>                 <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Texto</b></font></td>         <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Data do Envio</b></font></td>         <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Remover</b></font></td>           </tr>'; 

Ele aparece antes dessa linha

if($xml -> GL_TITULO==$_POST['nome']) { 

Ele é mostrado tendo resultado ou não. Então, quantos arquivos tiver vai ser quantas vezes ele vai repetir.
Faz o seguinte, puxa esse bloco todo lá para o topo, após o if do submit

Vai ficar assim

<?php // Definir o horário brasileiro: date_default_timezone_set('Brazil/East'); if(isset($_POST['submit'])) {  // Exibir o resultado da pesquisa em uma tabela echo '<style>td { padding-right: 10px; }</style>'; echo '<strong><h2>Meus Textos:</h2></strong>'; echo '<div align="center">   <center>   <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="536" height="42" id="AutoNumber1">'; echo '<tr>                 <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Texto</b></font></td>         <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Data do Envio</b></font></td>         <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Remover</b></font></td>           </tr>'; //////////////////////////////////////////////////////// $diretorio = "xml"; $true = false; // *.txt são os formatos de arquivos a serem alterados foreach (glob("$diretorio/*.xml") as $arquivo) { $p1 = explode("/", $arquivo); $p2 = explode(".", $p1[1]); $string = file_get_contents($diretorio."/".$p2[0].".".$p2[1]); $xml = simplexml_load_string($string); if($xml -> GL_USUARIO==$_POST['nome']) { echo "<tr><td width=\"139\" height=\"25\" bgcolor=\"#E3E8EC\"><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a href='javascript:abrirpopup(\"".$xml -> GL_COD_DOC.".pdf\");'>".$xml -> GL_COD_DOC."</a>\n&nbsp;&nbsp;&nbsp;&nbsp;<font face=\"tahoma\" size=\"2\"></td>\n"; echo '<td width=\"139\" height=\"25\" align="left">', date('d/m/Y h:ia', filemtime($arquivo)), "</td>\n"; // ARQUIVO echo "<td width=\"139\" height=\"25\" align='left'><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a title='Deletar Texto' href='delete.php?arquivo={$arquivo}'><img border=\"0\" src=\"delete.png\" width=\"16\" height=\"16\">  Excluir Texto</a>\n&nbsp;&nbsp;&nbsp;&nbsp;</font></td></tr>\n"; $true = true; } else { //echo "Dados incorretos"; } } //////////////////////////////////////////////////////// if($true==false) { echo "<b><font face=\"tahoma\" size=\"2\" color=\"red\">Dados Incorretos</font></b>"; } echo '</table>'; } ?>

Dessa forma o bloco do título da tabela aparece somente uma vez.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

13-04-2015 17:00

Oi web!

Fazendo assim deu certinho e aparece corretamente dentro das tabelas, obrigada!

Estava uma bagunça aqui nas pastas, com arquivos repetidos que estava usando para fazer estes testes e quando fiz uma limpeza, vi que haviam arquivos com o mesmo nome fora do diretório XML.

Apaguei os arquivos que estavam fora do diretório, testei novamente o script e vi que não estava mais dando certo, pois apesar de encontrar os arquivos no diretório e exibi-los corretamente, quando vc clica não aparece nada, pois busca no diretório atual sem entrar no diretório XML.

Vou postar o código como está agora:

<style fprolloverstyle>A:hover {color: #FF9900; font-family: Tahoma; font-size: 10 pt; text-decoration: none} </style> <style> a {text-decoration:none;} </style> <script language='javascript'>      function abrirpopup(URL){          window.open( URL ,'leitura','fullscreen=0,menubar=0,location=0,status=0,directories=0,resizable=0,scrollbars=1,width=850,height=600');      } </script> <?php // Definir o horário brasileiro: date_default_timezone_set('Brazil/East');   if(isset($_POST['submit'])) {  // Exibir o resultado da pesquisa em uma tabela echo '<style>td { padding-right: 10px; }</style>'; echo '<strong><h2><center>Meus Textos:</center></h2></strong>'; echo '<div align="center">   <center>   <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="606" height="42" id="AutoNumber1">'; echo '<tr>         <td width="260" height="25" align="center"><font face="Tahoma" size="2"><b>Texto</b></font></td>         <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Data do Envio</b></font></td>         <td width="80" height="25" align="center"><font face="Tahoma" size="2"><b>Remover</b></font></td>         </tr>';  //////////////////////////////////////////////////////// $diretorio = "xml"; $true = false;   // *.txt são os formatos de arquivos a serem alterados foreach (glob("$diretorio/*.XML") as $arquivo) { $p1 = explode("/", $arquivo); $p2 = explode(".", $p1[1]);   $string = file_get_contents($diretorio."/".$p2[0].".".$p2[1]); $xml = simplexml_load_string($string);   if($xml -> GL_TITULO==$_POST['nome']) { echo "<tr><td width=\"260\" height=\"25\" bgcolor=\"#E3E8EC\"><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a href='javascript:abrirpopup(\"".$xml -> GL_COD_DOC.".pdf\");'>".$xml -> GL_COD_DOC."</a>\n&nbsp;&nbsp;&nbsp;&nbsp;</font></td>\n"; echo "<td width=\"139\" height=\"25\" align=\"center\"><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\">", date('d/m/Y h:ia', filemtime($arquivo)), "</td>\n"; // DATA DO ARQUIVO echo "<td width=\"80\" height=\"25\" align=\"center\"><font face=\"tahoma\" size=\"2\"><a title='Deletar Texto' href='delete.php?arquivo={$arquivo}'><img border=\"0\" src=\"delete.png\" width=\"16\" height=\"16\">  Excluir Texto</a>\n&nbsp;&nbsp;&nbsp;&nbsp;</font></td></tr>\n"; $true = true; } else { //echo "Dados incorretos"; }   } ////////////////////////////////////////////////////////   if($true==false) { echo "<b><font face=\"tahoma\" size=\"2\" color=\"red\">Dados Incorretos</font></b>"; } echo '</table>'; } ?>

Não sei se consegui ser clara, mas basicamente, o que acontece é que ele faz a pesquisa corretamente dentro do diretório XML e mostra dentro das tabelas os arquivos, mas, quando o link é clicado, não encontra nada, pois tenta exibir o arquivo no diretório atual, sem entrar novamente no diretório definido em $diretorio = "xml";
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chamar um arquivo Zip ou PDF de um XML por formulário

13-04-2015 17:09

Pelo que entendi você abre o arquivo nesse link

<a href='javascript:abrirpopup(\"".$xml -> GL_COD_DOC.".pdf\");'>

Já que o arquivo está na pasta xml, deveria ficar assim

<a href='javascript:abrirpopup(\"xml/".$xml -> GL_COD_DOC.".pdf\");'>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

13-04-2015 17:32

Nossa, eu quase tinha feito certo, mas não tinha me atentado para as aspas depois da barra... rsrs

Agora deu certinho mesmo, obrigada!

Mas agora me surgiu uma dúvida...
E se eu quiser deixar todos os arquivos na mesma pasta XML, inclusive estes 2:

busca.php
ver_textos2.php (que é este código postado)

Ali ficou definido que $diretorio = "xml";

Mas se todos os arquivos estivessem na mesma pasta, como eu faria neste caso, pois o diretório aparece em outras partes:

$diretorio = "xml"; $true = false;   // *.txt são os formatos de arquivos a serem alterados foreach (glob("$diretorio/*.XML") as $arquivo) { $p1 = explode("/", $arquivo); $p2 = explode(".", $p1[1]);   $string = file_get_contents($diretorio."/".$p2[0].".".$p2[1]); $xml = simplexml_load_string($string);

Sei que estas perguntas podem parecer bobas para muita gente, mas estou tentando aprender e entender cada coisa que estou fazendo, espero que me entendam. :$
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chamar um arquivo Zip ou PDF de um XML por formulário

13-04-2015 17:34

Tenta assim

foreach (glob("/*.XML") as $arquivo) {

Talvez seja necessário dar permissão 777 no diretório atual, onde roda o script.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

13-04-2015 17:44

Testei assim e não deu, aparece em branco escrito Dados Incorretos.
Não teria que alterar também ali onde ficou definido que $diretorio = "xml";?

Eu estou fazendo pelo Xampp mesmo.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chamar um arquivo Zip ou PDF de um XML por formulário

13-04-2015 17:48

Correto. Porque outras partes do script usa o $diretorio.
Então melhor seria alterar direto

$diretorio = "/"; 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

13-04-2015 17:55

Fiz assim também, mas não deu certo, retorna em branco com Dados Incorretos:

$diretorio = "/"; $true = false;   // *.txt são os formatos de arquivos a serem alterados foreach (glob("/*.XML") as $arquivo) { $p1 = explode("/", $arquivo); $p2 = explode(".", $p1[1]);   $string = file_get_contents($diretorio."/".$p2[0].".".$p2[1]); $xml = simplexml_load_string($string); 

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Chamar um arquivo Zip ou PDF de um XML por formulário

13-04-2015 18:03

Vai precisar usar o seguinte:

$diretorio = "./"; $true = false; // *.txt são os formatos de arquivos a serem alterados foreach (glob($diretorio."*.xml") as $arquivo) { $string = file_get_contents($arquivo); $xml = simplexml_load_string($string); 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Chamar um arquivo Zip ou PDF de um XML por formulário

13-04-2015 18:27

Oi web!

Agora funcionou certinho! :clap:

Vou tentar adaptar a paginação que já tinha aqui do meu outro script e posto aqui também pois pode ser útil para mais alguém.

Obrigada por sua atenção e desculpe por tantas perguntas! :)
0
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Re: Chamar um arquivo Zip ou PDF de um XML por formulário

14-05-2015 16:15

Oi web, tudo bem?

Tentei usar o mesmo script de paginação que tinha antes, mas não estou conseguindo fazer funcionar. ;(

<style fprolloverstyle>A:hover {color: #FF9900; font-family: Tahoma; font-size: 10 pt; text-decoration: none} </style> <style> a {text-decoration:none;} </style> <script language='javascript'> function abrirpopup(URL){ window.open( URL ,'leitura','fullscreen=0,menubar=0,location=0,status=0,directories=0,resizable=0,scrollbars=1,width=850,height=600'); } </script> <?php // Definir o horário brasileiro: date_default_timezone_set('Brazil/East'); if(isset($_POST['submit'])) { // Exibir o resultado da pesquisa em uma tabela echo '<style>td { padding-right: 10px; }</style>'; echo '<strong><h2><center>Meus Textos:</center></h2></strong>'; echo '<div align="center"> <center> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="606" height="42" id="AutoNumber1">'; echo '<tr> <td width="260" height="25" align="center"><font face="Tahoma" size="2"><b>Texto</b></font></td> <td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Data do Envio</b></font></td> <td width="80" height="25" align="center"><font face="Tahoma" size="2"><b>Remover</b></font></td> </tr>'; //////////////////////////////////////////////////////// // Inicia a Paginação: $pagina = (!empty($_GET['pagina'])?$_GET['pagina']:"0"); $pontoinicial = $pagina * 10; $names = array_keys($files); $totalArquivo = sizeof($names); $totalPaginas = ceil($totalArquivo /10); for ( $i = $pontoinicial ; $i < $pontoinicial + 10 && $i < $totalArquivo; $i++){ $name = preg_replace('/\.[^.]*$/', '', $names[$i]); ////////////// $diretorio = "./"; $true = false; // *.txt são os formatos de arquivos a serem alterados foreach (glob($diretorio."*.xml") as $arquivo) { $string = file_get_contents($arquivo); $xml = simplexml_load_string($string); if($xml -> GL_TITULO==$_POST['nome']) { echo "<tr><td width=\"260\" height=\"25\" bgcolor=\"#E3E8EC\"><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a href='javascript:abrirpopup(\"".$xml -> GL_COD_DOC.".pdf\");'>".$xml -> GL_COD_DOC."</a></font></td>\n"; echo "<td width=\"139\" height=\"25\" align=\"center\"><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\">", date('d/m/Y h:ia', filemtime($arquivo)), "</td>\n"; // DATA DO ARQUIVO echo "<td width=\"80\" height=\"25\" align=\"center\"><font face=\"tahoma\" size=\"2\"><a title='Deletar Texto' href='delete.php?arquivo={$arquivo}'><img border=\"0\" src=\"delete.png\" width=\"16\" height=\"16\"> Excluir Texto</a></font></td></tr>\n"; $true = true; } else { //echo "Dados incorretos"; } } //////////////////////////////////////////////////////// if($true==false) { echo "<b><font face=\"tahoma\" size=\"2\" color=\"red\">Dados Incorretos</font></b>"; } } echo "<tr>"; echo "<td colspan='3'>"; for ( $pag = 0; $pag < $totalPaginas ; $pag++ ){ echo "| <a href='?pagina=$pag'>".($pag+1)."</a>"; } echo " | </td>"; echo "</tr>"; echo '</table>'; } ?>

Substitui "$name" e "$names" por "$arquivo" e "$arquivos" mas não funciona.
Pesquisei sobre "array_keys($files)" e também tentei alterar mas não dá certo.
Queria entender como funciona realmente este script de paginação para poder fazer funcionar direitinho.

Se puder dar uma ajudinha de novo eu fico agradecida! :$
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Chamar um arquivo Zip ou PDF de um XML por formulário

14-05-2015 16:29

O array_keys serve para retornar as chaves de um array, por exemplo:

<?php $files = Array('a','b','c','d'); print_r(array_keys($files)); // RESULTADO Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 ) ?>

http://php.net/manual/pt_BR/function.array-keys.php

No seu script você não definiu $files.

Veja se tem o script original e verifica de onde vem esses valores. Ele é necessário para a contagem do for.
1
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Re: Chamar um arquivo Zip ou PDF de um XML por formulário

14-05-2015 16:50

No script original está apenas assim:

$files = array();

Substitui para:

$files = array($arquivo);

E substitui onde está $name e $names para $arquivo e $arquivos, mesmo assim não deu certo.
Ele até mostra no final uma numeração como se fosse paginar, mas fica só na página 1 não importando quantos arquivos existem no diretório e mesmo assim, ele retorna um erro de variável indefinida justamente nesta linha $files = array();
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Chamar um arquivo Zip ou PDF de um XML por formulário

14-05-2015 17:03

Se você voltar o array novamente, o script vai mostrar já alguma informação

$files = array(); $names = array_keys($files);

Só que como não tem nenhum valor no array, $totalArquivo vai sempre retornar 0.

Você misturou os dois scripts.
Pelo que entendi você quer retornar os dados da busca da palavra no xml de forma paginada.
Adaptar a paginação nesse script da busca pelo nome está meio complicado. Meio sem lógica.
1
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Re: Chamar um arquivo Zip ou PDF de um XML por formulário

14-05-2015 17:12

Sim, quando defino:

$files = array($arquivo);



Retorna os arquivos do diretório e aparece lá embaixo o número 1 como se fosse paginar mas não pagina e em cima, aparece o erro de variável indefinida mesmo assim.

É, estou tentando adaptar o script de paginação para paginar estes arquivos, pois não achei nada que pudesse servir, a maioria que achei é até parecido mas para bancos de dados.

O script original era para quando os arquivos eram em TXT e era um script para listar os arquivos de um diretório.

Era assim:

// Define um array para armazenar os arquivos $files = array(); // Diretório atual $d = dir('.'); // Percorre todos os arquivos while(false !== ($file = $d->read())){ // Se o arquivo não é este arquivo, e não começa com "." ou "~" // e não termina em LCK, então guarde-o para exibição futura. if(($file{0} != '.') && ($file{0} != '~') && (substr($file, -3) != 'LCK') && (substr($file, -3) != 'php') && (substr($file, -3) != 'jpg') && (substr($file, -3) != 'png') && (substr($file, -3) != 'gif') && (substr($file, -3) != 'htm') && (substr($file, -3) != 'txt') && (substr($file, -3) != 'TXT') && (substr($file, -3) != 'XML') && (substr($file, -3) != 'html') && (substr($file, -3) != 'images') && ($file != basename($_SERVER['PHP_SELF'])) ) { // Guarda o nome do arquivo e dados completos de uma chamada // à stat() $files[$file] = stat($file); } } // Fecha o diretório $d->close(); //// // Ordenar os arquivos em ordem alfabética ksort($files); // Definir o horário brasileiro: date_default_timezone_set('Brazil/East'); $pagina = (!empty($_GET['pagina'])?$_GET['pagina']:"0"); $pontoinicial = $pagina * 10; $names = array_keys($files); $totalArquivo = sizeof($names); $totalPaginas = ceil($totalArquivo /10); for ( $i = $pontoinicial ; $i < $pontoinicial + 10 && $i < $totalArquivo; $i++){ $name_link = $names[$i]; $stats = $files[$names[$i]]; $name = preg_replace('/\.[^.]*$/', '', $names[$i]); /////

0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado