Ir para conteúdo
Fórum Script Brasil

binhofa

Membros
  • Total de itens

    33
  • Registro em

  • Última visita

Posts postados por binhofa

  1. Resolvido Stoma!!!!

    Graças ao seu link e sua disponibilidade em ajudar, consegui resolver meu problema. Inclui as seguintes linhas em vermelho logo no inicio do código:

    if ($action == "download") {

    $file = base64_decode(varSet("file"));

    header("Content-disposition: attachment; filename=\"".basename($file)."\"");

    header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

    header('Content-Length: ' . filesize($file));
    header('Content-Transfer-Encoding: binary');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    ob_clean();
    flush();

    readfile(".$file");

    exit;

    A aplicação do ob_clean() e flush() foi aplicado errado anteriormente, mas dessa forma está correta.

    Stoma, muito obrigado mesmo.

    Abs

  2. No index.php apareceu o erro:

    _________________________________________________________________________________________________________________________

    Notice: A session had already been started - ignoring session_start() in /home/storage/1/02/23/dominio/public_html/pasta/index.php on line 2

    Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Sao_Paulo' for 'BRT/-3.0/no DST' instead in/home/storage/1/02/23/dominio/public_html/pasta/index.php on line 116

    _________________________________________________________________________________________________________________________

    No listar.php, listou os mesmos erros. Acredito que não seja a questão da data porque eu eliminei a linha de código que informava isso e o problema persistiu.

  3. Descobri o que causa o corrompimento do arquivo, mas não entendi o motivo e não achei a solução.

    Seguinte:

    Esse código que eu listei está dentro do arquivo listar.php na raiz do servidor. Tenho 100 pastas com vários arquivos dentro dela, inclusive um index.php dentro de cada uma delas. Esse arquivo index tem a seguinte linha de código:

    __________________________________________________________________________________

    <?
    session_start();
    if (!$_SESSION["s_login"])
    {
    }
    ?>
    <?php
    include("/home/storage/1/02/23/dominio/public_html/listar.php");
    ?>
    __________________________________________________________________________________
    Se ao invés de incluir o listar.php eu colocar o código inteiro, ele faz o download normalmente.... O problema é: imagina se precisar fazer uma alteração? Tenho que mudar de tooooooooodos os index.php das 100 pastas e acaba ficando inviável. Fiz um teste aqui e deu certo.
    Agora travei. Não consigo sair daqui. Consegue identificar o que seja?
    Obrigado e fico no aguardo.
  4. Olá a todos.

    Segue o código:

    _______________________________________________________________________________________

    <?php


    /*

    Script distribuído por brasilphp.net

    Qualquer dúvida, escreva para contato@brasilphp.net

    Para criação e manutenção de scripts e sistemas, escreva para contato@sobralsites.com

    */

    function varSet($VAR) { return isset($_GET[$VAR]) ? $_GET[$VAR] : ""; }

    $action = varSet("action");

    $pasta = base64_decode(varSet("pasta"));

    //Lista dos arquivos que não serão listados

    $denyFiles = array(".htaccess","thumbs.db");

    if ($action == "download") {

    $file = base64_decode(varSet("file"));

    header("Content-disposition: attachment; filename=\"".basename($file)."\"");

    readfile(".$file");

    exit;

    }

    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    <title>Listagem de Arquivos</title>

    <style type="text/css">

    body {

    font:11px Verdana, Arial, Helvetica, sans-serif;

    padding:0px;

    margin:0px;

    }

    a {

    text-decoration:none;

    color:#003366;

    }

    a:hover { color:#0099CC }

    .row1 { background-color:#F7F7F7 }

    .row2 { background-color:#EBEBEB }

    .rowOver { background-color:#C7DCFC }

    .extCell { font-weight:bold }

    </style>

    <script language="javascript" type="text/javascript">

    function over(Obj) {

    nClass = Obj.className

    Obj.className = "rowOver"

    Obj.onmouseout = function() {

    Obj.className = nClass

    }

    }

    </script>

    </head>

    <body>

    <?php

    if ($action == ""):

    $fdir = "./$pasta";

    chdir($fdir);

    $dir = opendir(".");

    while ($file = readdir($dir)) if (is_dir($file)) $dirs[] = $file; else $files[] = $file;

    $row = 2;

    ?>

    <table width="700" border="0" align="center" cellpadding="0" cellspacing="0">

    <tr>

    <td height="50px;"><strong>P.S:</strong> "listar.php" é o arquivo deste sistema</td>

    </tr>

    <tr>

    <td height="50px;"><strong>Exibindo:</strong> ROOT <?php echo empty($pasta) ? "" : $pasta; ?></td>

    </tr>

    </table>

    <table width="700" border="0" align="center" cellpadding="0" cellspacing="0">

    <tr style="font-weight:bold">

    <td width="55" height="20">&nbsp;</td>

    <td width="204">Nome</td>

    <td width="130">Tamanho</td>

    <td width="316">A&ccedil;&otilde;es</td>

    </tr>

    <?php if ($pasta != ""): ?>

    <tr class="row<?php echo $row; ?>" onmouseover="over(this)">

    <td align="center" width="55" height="20" class="extCell">[DIR]</td>

    <td><a href="?pasta=<?php echo base64_encode(substr("$pasta",0,strrpos($pasta,"/"))); ?>">..</a></td>

    <td>--</td>

    <td>&nbsp;</td>

    </tr>

    <?php endif; ?>

    <?php

    if (is_array($dirs)) :

    sort($dirs);

    foreach ($dirs as $nome):

    if ($nome == ".." || $nome == ".") continue;

    if ($row == 2) $row = 1; else $row = 2;

    ?>

    <tr class="row<?php echo $row; ?>" onmouseover="over(this)">

    <td align="center" width="55" height="20" class="extCell">[DIR]</td>

    <td><a href="?pasta=<?php echo base64_encode("$pasta/$nome"); ?>"><?php echo $nome; ?></a></td>

    <td>--</td>

    <td>&nbsp;</td>

    </tr>

    <?php

    endforeach;

    endif;

    ?>

    <?php

    if (is_array($files)):

    sort($files);

    foreach ($files as $nome):

    if (in_array(strtolower($nome),$denyFiles)) continue;

    if ($row == 2) $row = 1; else $row = 2;

    $tamanho = filesize("./$nome");

    $info = pathinfo("./$nome");

    ?>

    <tr class="row<?php echo $row; ?>" onmouseover="over(this)">

    <td align="center" width="55" height="20" class="extCell">[<?php echo strtoupper($info["extension"]); ?>]</td>

    <td><a href="?action=download&file=<?php echo base64_encode("$pasta/$nome"); ?>"><?php echo $nome; ?></a> </td>

    <td><?php echo $tamanho > 1048576 ? round($tamanho/1048576,2)." Mb" : round($tamanho/1024,2)." Kb"; ?></td>

    <td>&nbsp;</td>

    </tr>

    <?php

    endforeach;

    endif;

    ?>

    </table>

    <?php endif; ?>

    </body>

    </html>

    <?php closedir($dir); ?>

    ____________________________________________________________________________________________

    Minha dúvida: Quando efetuo o download de arquivos em Excel, ele corrompe. Sabe me dizer como resolvo isso? Tentei de tudo, mas não consegui solucionar.

    Obrigado e fico no aguardo.
  5. Boa tarde pessoal.

    Me ajudem? Tenho uma pasta JOÃO SILVA no meu servidor e dentro dela possuem diversos arquivos. Como resultado, gostaria que apresentasse da seguinte forma:

    ------------------------------------------------------------------------------------------------

    JOÃO SILVA (nome da pasta como título)

    - arquivo01.pdf

    - arquivo02.pdf (de vários arquivos, apresente somente arquivos em PDF)

    ------------------------------------------------------------------------------------------------

    Como complemento, gostaria que quando fosse criada a outra pasta JORGE PEREIRA e tivesse arquivos dentro dele, o sistema atualiza automaticamente e apresenta:

    ------------------------------------------------------------------------------------------------

    JOÃO SILVA (nome da pasta como título)

    - arquivo01.pdf

    - arquivo02.pdf (de vários arquivos, apresente somente arquivos em PDF)

    JORGE PEREIRA (nome da pasta como título)

    - arquivo01.pdf

    - arquivo02.pdf (de vários arquivos, apresente somente arquivos em PDF)

    ------------------------------------------------------------------------------------------------

    Podem me ajudar?
    Obrigado pessoal! Fico no aguardo.
  6. Olá pessoal,

    Segue o código:

    ___________________

    <?php
    If (isset($_POST['txtdest']))
    {
    require_once('class.phpmailer.php');
    $nome = $_POST['txtnome'];
    $destino = $_POST['txtdest'];
    $assunto = "Contato - Site";
    $mensagem = $_POST['txtmsg'];
    $mailer = new PHPMailer();
    $mailer->IsSMTP();
    $mailer->SMTPDebug = 1;
    $mailer->Port = 587; //Indica a porta de conexao para a saida de e-mails
    $mailer->Host = 'smtp.site.com.br'; //smtp.dominio.com.br
    $mailer->SMTPAuth = true; //define se havera ou não autenticacao no SMTP
    $mailer->Username = 'contato@emailautenticado.com.br'; //Informe o e-mai o completo
    $mailer->Password = '123456'; //Senha da caixa postal
    $mailer->FromName = $destino; //Nome que sera exibido para o destinatario
    $mailer->From = 'contato@emailautenticado.com.br'; //Obrigatorio ser a mesma caixa postal indicada em "username"
    $mailer->AddAddress($destino,$nome); //Destinatarios
    $mailer->Subject = $assunto;
    $mailer->Body = $mensagem;
    $mailer->Send();
    print "Mensagem enviada com sucesso!";
    }
    else
    { ?>
    <html>
    <body>
    <form id="form" name="form" method="POST" action="index.php">
    <h2 align="center" style="text-decoration: underline"> TESTE</h2>
    <table width="450px" align="center" border="0">
    <tr>
    <td align="right">Nome</td>
    <td><input id="txtnome" name="txtnome" type="text" /></td>
    </tr>
    <tr>
    <td align="right">Solicitante</td>
    <td><input id="txtdest" name="txtdest" type="text" /></td>
    </tr>
    <tr>
    <td align="right">Mensagem:</td>
    <td><textarea id="txtmsg" name="txtmsg" rows="5" cols="20"></textarea></td>
    </tr>
    <tr>
    <td align="center" colspan="2"><input id="btEnviar" type="submit" value="Enviar" /></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    <?php } ?>
    _________________________
    Minha dúvida: Esse formulário autenticado quando é enviado pelo meu site, ele chega pra mim como se eu quem estivesse enviado (ou seja, com meu endereço de email) e não com o endereço do solicitante. Como resolver essa questão?
    Obrigado e abraços pessoal. Fico no aguardo.
  7. Olá pessoal,

    Como faço para copiar um conteúdo de uma variável (em texto) para que eu, simplesmente, dê um "COLAR" em outro local?

    $texto = "Texto da Variável";

    SET CLIPBOARD($texto);

    .

    .

    .

    Aí vou no Word, por exemplo e só dou um CTRL+V e aparece Texto da Variável

    É uma coisa simples, mas realmente não consegui achar na net em nenhum lugar.

    Valeu pessoal

  8. Olá pessoal, tudo bem?

    Posso pedir a ajuda de vocês novamente? Segue meu código:

    ________________________________________________________________

    USERS.PHP

    <?
    $usuarios = array(
    "usuario_a" => array("key" => "senha_a","pasta" => "pasta01/arquivos.php"),
    "usuario_b" => array("key" => "senha_b","pasta" => "pasta02/arquivos.php"),
    );
    ?>
    _______________________________________________________________________________________________
    Minha duvida: Como faço para, quando o usuário criar no botão "MANUTENCAO.PHP" ele me fornece somente os campos de Usuário, Senha e Pasta para fazer uma busca e efetuar as alterações......... Algo do tipo:
    ______________________________________________________________________________________________
    MANUTENCAO.PHP (Ficticio)
    Localize pelo usuário: <aqui ele digita em uma textbox>
    Se localizou:
    Senha: <aqui ALTERA a senha>
    Pasta: <aqui ALTERA o caminho da pasta>
    Salvar alterações
    Se NÃO localizou:
    Senha: <aqui CADASTRA uma senha>
    Pasta: <aqui CADASTRA um direcionamento para uma pasta>
    Criar novo login
    ______________________________________________________________________________________________
    O meu arquivo USERS.PHP ficará assim (se caso for um novo login):

    ________________________________________________________________

    USERS.PHP

    <?
    $usuarios = array(
    "usuario_a" => array("key" => "senha_a","pasta" => "pasta01/arquivos.php"),
    "usuario_b" => array("key" => "senha_b","pasta" => "pasta02/arquivos.php"),
    "usuario_c" => array("key" => "senha_c","pasta" => "pasta03/arquivos.php"),
    );
    ?>
    _______________________________________________________________________________________________
    Obrigado e fico no aguardo. Valeu galera!!!!!
    :D
  9. Consegui........... :D

    Fiz assim:

    ______________________________________________________________________________________________________________

    INDEX.PHP

    <?
    session_start();
    include("users.php");
    //verificação de login e senha
    if (isset($_POST['login']) && isset($_POST['senha'])) {
    if (array_key_exists($_POST['login'], $usuarios)) {
    if ($usuarios[$_POST['login']]['key'] == $_POST['senha']){
    session_start();
    $_SESSION['s_login'] = $_POST['login'];
    header('location:'. $usuarios[$_POST['login']]['pasta']); // vai para a pasta
    }
    else { $erro = 'Senha incorreta.'; }
    }
    else { $erro = 'Login inválido.'; }
    }
    ?>
    <body background="images/fundo.jpg" style="background-attachment: fixed">
    <form method="post">
    <div align="center">
    <table border="0" cellspacing="0" cellpadding="0">
    <tr><td align="left"><b><font face="Verdana" size="2">Login:&nbsp;&nbsp;&nbsp;&nbsp;
    </font></b></td><td width="148"><input type="text" name="login" /></td></tr>
    <tr><td align="left"><b><font size="2" face="Verdana">Senha:&nbsp;&nbsp;&nbsp;&nbsp;
    </font></b></td><td width="148"><input type="password" name="senha" /></td></tr>
    <tr><td colspan="2">
    <p align="center"><br /><font color="#FFFFFF"><input type="submit" value="Enviar" /></font><p align="center">&nbsp;</td></tr>
    </table>
    </div>
    </form>

    ______________________________________________________________________________________________________________

    ARQUIVOS.PHP (em outra pasta)

    <?
    session_start();
    if (!$_SESSION["s_login"])
    {
    header('Location: ../index.php');
    }
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Language" content="pt-br">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    </head>
    <body>
    <p>Está logado<a href="logoff.php"><br><br>Sair</a></p>
    </body>
    </html>

    ______________________________________________________________________________________________________________

    LOGOFF.PHP (Na mesma pasta do Arquivos.php)

    <?
    session_start();
    $_SESSION = array();
    if(isset($_COOKIE[s_login])){
    setcookie(s_login, '', time() - 1000, '/');
    }
    session_destroy();
    header("Location: ../index.php");

    ?>

    ______________________________________________________________________________________________________________

    Vale lembrar que há um INCLUDE de usuario e senha senao ele não valida

    USERS.PHP (na mesma pasta de arquivos.php)

    <?
    $usuarios = array(
    "usuario_a" => array("key" => "senha_a","pasta" => "pasta01/arquivos.php"),
    "usuario_b" => array("key" => "senha_b","pasta" => "pasta02/arquivos.php"),
    );
    ?>
    ________________________________________________________________________________________________________
    Espero ter ajudado de alguma forma alguém. Ainda estou na caça da URL amigável, que nada mais é do que criptografar a URL.... (Ex.: a pasta www.dominio.com.br/pasta01/arquivos.php deve-se transformar em www.dominio.com.br/wdfgAGHRTY56y). Alguém descobriu?
    Abraços gente.
  10. Pessoal, ainda estou descobrindo como faz para mudar a URL, mas ainda não consegui sucesso.

    Naquele script, estou tendo um problema com o LOGOFF. Ele não está destruindo a sessão. Seguem os códigos:

    __________________________________________________________________________________________________________

    INDEX.PHP (na raiz)

    <?
    include("users.php");
    //verificação de login e senha
    if (isset($_POST['login']) && isset($_POST['senha'])) {
    if (array_key_exists($_POST['login'], $usuarios)) {
    if ($usuarios[$_POST['login']]['key'] == $_POST['senha']){
    session_start();
    $_SESSION['s_login'] = $_POST['login'];
    header('location:'. $usuarios[$_POST['login']]['pasta']); // vai para a pasta
    }
    else { $erro = 'Senha incorreta.'; }
    }
    else { $erro = 'Login inválido.'; }
    }
    ?>
    <body>
    <form method="post">
    <div align="center">
    <table border="0" cellspacing="0" cellpadding="0">
    <tr><td align="left"><b><font face="Verdana" size="2">Login:&nbsp;&nbsp;&nbsp;&nbsp;
    </font></b></td><td width="148"><input type="text" name="login" /></td></tr>
    <tr><td align="left"><b><font size="2" face="Verdana">Senha:&nbsp;&nbsp;&nbsp;&nbsp;
    </font></b></td><td width="148"><input type="password" name="senha" /></td></tr>
    <tr><td colspan="2">
    <p align="center"><br /><font color="#FFFFFF"><input type="submit" value="Enviar" /></font><p align="center">&nbsp;</td></tr>
    </table>
    </div>
    </form>
    __________________________________________________________________________________________________________
    Se o login foi joao, será encaminhada para a pasta www.dominio.com.br/pasta/joao/arquivos.php
    __________________________________________________________________________________________________________
    LOGOFF.PHP (na raiz)
    <?php
    session_start();
    $_SESSION = array();
    unset($_SESSION);
    session_destroy();
    header("Location: index.php");
    ?>
    __________________________________________________________________________________________________________
    Ele volta para o index.php, solicitando Usuario e senha normalmente, mas quando copio o endereço www.dominio.com.br/pasta/joao/arquivos.php, eu consigo ver normalmente o conteúdo
    alguém pode me ajudar? O que pode ser?

    Obrigado mais uma vez e fico no aguardo.

  11. AEEEEEEEEEEEEE.... :D :D :D :D :D ... Muito bom Sandro!!!! Parabéns. Tive que fazer um ajuste, retirando o "action=testes.php" e funfou!!!

    Agora só mais um detalhe pra ficar perfeito: Quando eu digito o login e senha do cliente_x, o endereço fica www.nomedosite.com.br/cliente_x/arquivos/index.php. Como faço para o endereço ficar assim: www.nomedosite.com.br/asdTsklw90jM (ele cria automaticamente um outro nome, escondendo a pasta do cliente), e tendo o mesmo efeito de como se estivesse na pasta?

    Nossa, vai me ajudar muito se isso der certo.

    Fico no aguardo. Obrigado mais uma vez!!!!!!!!!!!! ;) ;) :) :) ;)

  12. Oi Sandro,

    Tive que só corrigir alguns detalhes de virgula e colchete, mas tudo resolvido. O problema é que continua dando o mesmo erro. Ele está indo diretamente para a pasta_y.

    _____________________________________________________________________________________________________________

    <?
    // definindo seus usuarios via array:
    $usuarios = array('cliente_x' => 'teste');
    $usuarios = array('cliente_y' => 'teste2');
    // definindo senhas usuarios via array:
    $usuarios['cliente_x']['key'] = 'senha';
    $usuarios['cliente_y']['key'] = 'senha2';
    // definindo pastas dos usuarios via array:
    $usuarios['cliente_x']['pasta'] = 'pasta_x';
    $usuarios['cliente_y']['pasta'] = 'pasta_y';
    if ($usuarios = array('cliente_x' => 'teste'))
    { header('location: pasta_x');}
    if ($usuarios = array('cliente_y' => 'teste2'))
    { header('location: pasta_y'); }
    //verificacao de login e senha
    if (isset($_POST['login']) && isset($_POST['senha'])) {
    if (array_key_exists($_POST['login'], $usuarios)) { // se existe $_POST['login'] dentro de usuarios
    if ($usuarios($_POST['login']['key'] == $_POST['senha'])) { // se a senha do usuario estiver correta, define a sessao
    session_start();
    $_SESSION['login'] = $_POST['login']; // guarda o login na sessao
    header('location:'. $usuarios[$_POST['login']]['pasta']); // vai para a pasta
    }
    else { $erro = 'Senha incorreta.'; }
    }
    else { $erro = 'Login invalido.'; }
    }
    ?>
    <body>
    <form method="POST" action="index.php">
    <? if ($erro!='') echo $erro;?>
    <table>
    <tr>
    <td>Usuario:</td>
    <td width="148"><input type="text" name="login" /></td>
    </tr>
    <tr>
    <td align="left">Senha:</td>
    <td width="148"><input type="password" name="senha" /></td>
    </tr>
    <tr>
    <td colspan="2">
    <p align="center"><br />
    <input type="submit" value="Enviar" />
    </p>
    </td>
    </tr>
    </table>
    </form>
    _____________________________________________________________________________________________________________

    O que pode ser agora?

    Valeu... fico no aguardo!

×
×
  • Criar Novo...