crawler 1 Denunciar post Postado Abril 11, 2007 E ai pessoal...beleza!! To montando um sisteminha que lista as pastas/arquivos e subpastas/arquivos de um servidor e eu procurei varios scripts na net, mas naum achei um que servisse de exemplo, por isso to desenvolvendo esse sisteminha, mas soh faltou uns detalhes básicos para funfar...e gostaria que vcs me dessem umas sugestões vejam o trecho da pagina pricipal que acessa o conteúdo das pastas: $resultadox = mysql_query($sqlx); $acesso = mysql_fetch_array($resultadox); if ($acesso[acesso] == "Administrador") { ?> _linenums:0'><?phprequire("valida.php");require("conecta.php");$sql = "SELECT * FROM upload";$resultado = mysql_query($sql);$usuario_atual = $_SESSION["nome_usuario"];$sqlx = "SELECT * FROM upload WHERE usuario='$usuario_atual'";$resultadox = mysql_query($sqlx);$acesso = mysql_fetch_array($resultadox);if ($acesso[acesso] == "Administrador") {?> aqui dentro da tabela na mesma pagina <?php while ($linha = mysql_fetch_array($resultado)){ if ($linha[acesso] == "Administrador") { print "<tr bgcolor=\"#E9E9E9\">"; print "<td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> $linha[nome]</font></td>"; print "<td><div align=\"center\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">$linha[email]<br></font></div></td>"; print "<td><div align=\"center\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">$linha[acesso]</font></div></td>"; print "<td><div align=\"center\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> - </font></div></td>"; print "<td><div align=\"center\"><a href=\"alterar.php?id=$linha[id]\"><img src=\"imagens/alterar.gif\" width=\"32\" height=\"32\" border=\"0\"></a></div></td>"; print "<td><div align=\"center\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> - </font></div></td>"; } else { print "<tr bgcolor=\"#E9E9E9\">"; print "<td><a href=\"conteudo.php?id=$linha[id]\"><img src=\"imagens/index_pasta.JPG\" width=\"17\" height=\"14\" border=\"0\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> $linha[nome]</font></a></td>"; print "<td><div align=\"center\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">$linha[email]<br></font></div></td>"; print "<td><div align=\"center\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">$linha[acesso]</font></div></td>"; print "<td><div align=\"center\"><a href=\"upload.php?id=$linha[id]\"><img src=\"imagens/seta.jpg\" width=\"23\" height=\"27\" border=\"0\"></a></div></td>"; print "<td><div align=\"center\"><a href=\"alterar.php?id=$linha[id]\"><img src=\"imagens/alterar.gif\" width=\"32\" height=\"32\" border=\"0\"></a></div></td>"; print "<td><div align=\"center\"><a href=\"deletar.php?id=$linha[id]\"><img src=\"imagens/sair.gif\" width=\"16\" height=\"16\" border=\"0\"></a></div></td></tr>"; } } ?> agora eu vou mostrar o codigo contido em conteudo.php que vai acessar o subconteudo: $resultado = mysql_query($sql); $linha = mysql_fetch_array($resultado); $usuario_atual = $_SESSION["nome_usuario"]; $sqlx = "SELECT * FROM upload WHERE usuario='$usuario_atual'"; $resultadox = mysql_query($sqlx); $acesso = mysql_fetch_array($resultadox); if ($acesso[acesso] == "Administrador") { ?> _linenums:0'><?phprequire("valida.php");require("conecta.php");require("config.php");$id = $_GET["id"];$sql = "SELECT * FROM upload WHERE id='$id'";$resultado = mysql_query($sql);$linha = mysql_fetch_array($resultado);$usuario_atual = $_SESSION["nome_usuario"];$sqlx = "SELECT * FROM upload WHERE usuario='$usuario_atual'";$resultadox = mysql_query($sqlx);$acesso = mysql_fetch_array($resultadox);if ($acesso[acesso] == "Administrador") {?> dentro da tabela: <td bgcolor=\"#E9E9E9\"><div align=\"center\"><a href=\"deletar_arq.php?arquivo=$linha[usuario]/$listar\"><img src=\"imagens/sair.gif\" width=\"16\" height=\"16\" border=\"0\"></a></div></td></tr>";} } if (empty($arquivos)){ echo "<tr><td bgcolor=\"#E9E9E9\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Não existem arquivos<br></font></td></tr>"; } else { foreach($arquivos as $listar){// lista os arquivos echo "<tr><td bgcolor=\"#E9E9E9\"><a href='$path/".$linha[usuario]."/$listar' target=\"_blank\"><img border=0 src='imagens/index_arq.JPG'>$listar</a><br></td> <td bgcolor=\"#E9E9E9\"><div align=\"center\"><a href=\"deletar_arq.php?arquivo=$linha[usuario]/$listar\"><img src=\"imagens/sair.gif\" width=\"16\" height=\"16\" border=\"0\"></a></div></td></tr> "; } } echo "<tr> <td bgcolor=\"#E9E9E9\"> </td> </tr> </table>"; ?> _linenums:0'><?php echo "<table width=\"50%\" border=\"1\" align=\"center\" cellpadding=\"0\" bordercolor=\"#FFFFFF\" cellspacing=\"0\"> <tr> <td bgcolor=\"#333333\"><div align=\"center\"><strong><font color=\"#FFFFFF\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Arquivos Disponíveis</font></strong></div></td> </tr> <tr> <td bgcolor=\"#E9E9E9\"> </td> <td bgcolor=\"#E9E9E9\"><strong><font color=\"#333333\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Deletar</font></strong></td> </tr>"; $connection = ftp_connect($host,21) or die("erro de conexao FTP<hr>"); // connection ftp_login($connection, $user, $pass); ftp_chdir($connection,"public_html/online/diretorio/$linha[usuario]");$diretorio = $path.$linha[usuario];$ponteiro = opendir($diretorio); // ponteiro que ira percorrer a pastawhile ($nome_itens = readdir($ponteiro)) { // monta o vetor com os itens da pasta $itens[] = $nome_itens;}sort($itens); // ordena o vetor de itensforeach ($itens as $listar) { //percorre o vetor para fazer a separacao entre arquivos e pastas if ($listar!="." && $listar!=".."){ // retira os itens "./" e "../" para que retorne apenas pastas e arquivos if (file_exists($listar)) { // checa se é um arquivo $arquivos[]=$listar; // caso VERDADEIRO adiciona o item ao vetor de arquivos } else{ $pastas[]=$listar;// caso FALSO adiciona o item ao vetor de pastas } }} if (empty($pastas)){echo "<tr><td bgcolor=\"#E9E9E9\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Não existem pastas<br></font></td></tr>"; } else {foreach($pastas as $listar){// lista as pastas echo "<tr><td bgcolor=\"#E9E9E9\"><a href='subconteudo.php?caminho=$listar' ><img border=0 src='imagens/index_pasta.JPG'>$listar</a><br></td> <td bgcolor=\"#E9E9E9\"><div align=\"center\"><a href=\"deletar_arq.php?arquivo=$linha[usuario]/$listar\"><img src=\"imagens/sair.gif\" width=\"16\" height=\"16\" border=\"0\"></a></div></td></tr>";} } if (empty($arquivos)){echo "<tr><td bgcolor=\"#E9E9E9\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Não existem arquivos<br></font></td></tr>";} else {foreach($arquivos as $listar){// lista os arquivos echo "<tr><td bgcolor=\"#E9E9E9\"><a href='$path/".$linha[usuario]."/$listar' target=\"_blank\"><img border=0 src='imagens/index_arq.JPG'>$listar</a><br></td> <td bgcolor=\"#E9E9E9\"><div align=\"center\"><a href=\"deletar_arq.php?arquivo=$linha[usuario]/$listar\"><img src=\"imagens/sair.gif\" width=\"16\" height=\"16\" border=\"0\"></a></div></td></tr> ";}}echo "<tr> <td bgcolor=\"#E9E9E9\"> </td> </tr></table>";?> Agora finalmente a pagina que está com erro, o subconteudo.php: <td bgcolor=\"#E9E9E9\"><div align=\"center\"><a href=\"deletar_arq.php?arquivo=$linha[usuario]/$listar\"><img src=\"imagens/sair.gif\" width=\"16\" height=\"16\" border=\"0\"></a></div></td></tr>";} } if (empty($arquivos)){ echo "<tr><td bgcolor=\"#E9E9E9\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Não existem arquivos<br></font></td></tr>"; } else { foreach($arquivos as $listar){// lista os arquivos echo "<tr><td bgcolor=\"#E9E9E9\"><a href='diretorio/".$linha[usuario]."/$listar' target=\"_blank\"><img border=0 src='imagens/index_arq.JPG'>$listar</a><br></td> <td bgcolor=\"#E9E9E9\"><div align=\"center\"><a href=\"deletar_arq.php?arquivo=$linha[usuario]/$listar\"><img src=\"imagens/sair.gif\" width=\"16\" height=\"16\" border=\"0\"></a></div></td></tr> "; } } echo "<tr> <td bgcolor=\"#E9E9E9\"> </td> </tr> </table>"; ?> _linenums:0'><?php echo "<table width=\"50%\" border=\"1\" align=\"center\" cellpadding=\"0\" bordercolor=\"#FFFFFF\" cellspacing=\"0\"> <tr> <td bgcolor=\"#333333\"><div align=\"center\"><strong><font color=\"#FFFFFF\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Arquivos Disponíveis</font></strong></div></td> </tr> <tr> <td bgcolor=\"#E9E9E9\"> </td> <td bgcolor=\"#E9E9E9\"><strong><font color=\"#333333\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Deletar</font></strong></td> </tr>"; $connection = ftp_connect($host,21) or die("erro de conexao FTP<hr>"); // connection ftp_login($connection, $user, $pass); ftp_chdir($connection,"public_html/online/diretorio/$linha[usuario]");$diretorio = "public_html/online/diretorio/$linha[usuario]";//$diretorio = getcwd(); // pega o endereco do diretorio$ponteiro = ($diretorio."/".$caminho); // ponteiro que ira percorrer a pastawhile ($nome_itens = readdir($ponteiro)) { // monta o vetor com os itens da pasta $itens[] = $nome_itens;}sort($itens); // ordena o vetor de itensforeach ($itens as $listar) { //percorre o vetor para fazer a separacao entre arquivos e pastas if ($listar!="." && $listar!=".."){ // retira os itens "./" e "../" para que retorne apenas pastas e arquivos if (file_exists($listar)) { // checa se é um arquivo $arquivos[]=$listar; // caso VERDADEIRO adiciona o item ao vetor de arquivos } else{ $pastas[]=$listar;// caso FALSO adiciona o item ao vetor de pastas } }} if (empty($pastas)){echo "<tr><td bgcolor=\"#E9E9E9\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Não existem pastas<br></font></td></tr>"; } else {foreach($pastas as $listar){// lista as pastas echo "<tr><td bgcolor=\"#E9E9E9\"><a href='$path/".$linha[usuario]."/$listar' ><img border=0 src='imagens/index_pasta.JPG'>$listar</a><br></td> <td bgcolor=\"#E9E9E9\"><div align=\"center\"><a href=\"deletar_arq.php?arquivo=$linha[usuario]/$listar\"><img src=\"imagens/sair.gif\" width=\"16\" height=\"16\" border=\"0\"></a></div></td></tr>";} } if (empty($arquivos)){echo "<tr><td bgcolor=\"#E9E9E9\"><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\">Não existem arquivos<br></font></td></tr>";} else {foreach($arquivos as $listar){// lista os arquivos echo "<tr><td bgcolor=\"#E9E9E9\"><a href='diretorio/".$linha[usuario]."/$listar' target=\"_blank\"><img border=0 src='imagens/index_arq.JPG'>$listar</a><br></td> <td bgcolor=\"#E9E9E9\"><div align=\"center\"><a href=\"deletar_arq.php?arquivo=$linha[usuario]/$listar\"><img src=\"imagens/sair.gif\" width=\"16\" height=\"16\" border=\"0\"></a></div></td></tr> ";}}echo "<tr> <td bgcolor=\"#E9E9E9\"> </td> </tr></table>";?> Vejam que no link para acessar o subconteudo eu passei a pasta em questao na variavel caminho e em subconteudo eu concatenei com o caminho completo...repare que não eh coisa complicada naum, pois o erro esta na linha onde esta a função 'readdir($ponteiro) 'em subconteudo.php onde esta o caminho que concatenei, espero que entendam de algum jeito a minha dúvida e que possam me ajudar....... qualquer dúvida com respeito ao código, perguntem, que eu explico detalhadamente Compartilhar este post Link para o post Compartilhar em outros sites
David Ramires 1 Denunciar post Postado Abril 11, 2007 isso pode ajudar para você montar seu sistema! Leitura de Diretórios, Sub-Diretórios, Arquivos, e suas variações. http://forum.imasters.com.br/index.php?sho...amp;hl=arquivos http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
crawler 1 Denunciar post Postado Abril 11, 2007 sim eh de uma coisa dessas que estou prescisando, vou dar uma analisada, se alguem entendeu o código eu vou postar o erro que apareceu no navegador: Warning: readdir(): supplied argument is not a valid Directory resource in /home/paralelo/public_html/online/subconteudo.php on line 121 Warning: sort() expects parameter 1 to be array, null given in /home/paralelo/public_html/online/subconteudo.php on line 127 Warning: Invalid argument supplied for foreach() in /home/paralelo/public_html/online/subconteudo.php on line 129 ai quem sabe alguem sabe me dizer se o caminho esta correto ou se eh algum erro de sintatica;;; Compartilhar este post Link para o post Compartilhar em outros sites
crawler 1 Denunciar post Postado Abril 11, 2007 Ei David Ramires, eu segui as dicas do nosso amigo thiago ferreira, e ja me livrei de um erro, agora na pagina tah aparecendo o erro relacionado a função sort() para o array $itens[] que recebe a variavel $nome_itens na linha 125,o seguinte erro acontece na pagina:Warning: sort() expects parameter 1 to be array, null given in /home/paralelo/public_html/online/subconteudo.php on line 130Warning: Invalid argument supplied for foreach() in /home/paralelo/public_html/online/subconteudo.php on line 132vou dar uma analisada nessa função, se alguem souber mais, por favor postem alguma coisa a respeito. Compartilhar este post Link para o post Compartilhar em outros sites
crucifier 0 Denunciar post Postado Abril 13, 2007 do sort e do foreach, se não me engano, quer dizer que não são arrays essas variaveisantes do sort, coloque em seu código, e teste:print_r($itens); Compartilhar este post Link para o post Compartilhar em outros sites