Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
lcfantin

Php - Abrir Arquivo

Recommended Posts

Olá pessoal.

Estou começando a desvendar os segredos do PHP... já consegui alguns progressos, mas agora estou numa enrrascada.

Criei o banco no MySQL, fiz o form p/ logar e identificar os meus clientes, sem nenhum problema.

Criei um campo, onde informo o nome do arquivo que eu quero que o meu cliente "abra" no seu browser. É um arquivo tipo HTML, com dados do contrato, por exemplo.

Mas eu não consigo "abrir" esse arquivo, dá erro...

Uso o comando abaixo p/ abrir o arquivo que se encontra no campo " contrato ":

include $dados["contrato_usuario"];

Só que traz a mensagem de erro abaixo:

Warning: main(): Failed opening '' for inclusion (include_path='.;C:\Arquivos de programas\EasyPHP1-7\php\pear\') in c:\arquivos de programas\easyphp1-7\www\novabit\public_html\consulta_senha.php on line 22

Segue também, o código da página, p/ analise ( só da página que abre o arquivo ou melhor que deveria abrir o arquivo ):

<?php

// Verificador de sessão

require "verifica.php";

// Conexão com o banco de dados

require "comum.php";

echo "<center><font face=\"Verdana\" size=1><a href=\"sair.php\">Fechar sessão</a></center>

";

// Imprime mensagem " Consulta senha / e nome do usuário "

echo "<font face=\"Verdana\" size=1>Consulta Senha: " . $_SESSION["nome_usuario"] . "

\n";

// Traz a variavel " dados "

$dados = @mysql_fetch_array($result_id);

// Imprime o arquivo contrato em vídeo

include $dados["contrato_usuario"];

?>

O problema está aí, na linha: include $dados["contrato_usuario"];

Não consigo abrir o contrato.html

Por favor, me deem uma mãozinha, ok.

Desde já muito obrigado.

:ahh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável $dados["contrato_usuario"] parece estar vazia.

Além disso, o @mysql_fetch_array está escondendo o verdadeiro erro por causa do @ na frente da função.

Remova o "@" antes da função e verifique as queries (ou nos dê o código dos outros dois arquivos (principalmente o "comum.php")).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá FallenHawk.

Segue então os outros dois arquivos p/ ver se você pode me dar uma ajuda, ok.

comum.php

<?php

// Conecta-se com o MySQL

mysql_connect("localhost", "root");

// Seleciona banco de dados

mysql_select_db("clientes");

?>

verifica.php

<?php

// Inicia sessões

session_start();

// Verifica se existe os dados da sessão de login

if(!isset($_SESSION["id_usuario"]) || !isset($_SESSION["nome_usuario"]))

{

header("Location: index.php");

exit;

}

?>

até mais e obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok tem vários erros no seu código. Vamos lá: (PS: eu removi os <?php ?> por conveniência aqui, mas eles são necessários - não os remova!!)

Comum.php

// Conecta-se com o MySQL
$conexao = mysql_connect("localhost", "root");


// Seleciona banco de dados
mysql_select_db("clientes", $conexao);

Uma coisa importante a se notar... não confunda TABELA com Database... um database contém várias tabela e uma tabela contém vários campos e vários registros.

Então tenha certeza de que "clientes" é um database e não uma tabela ok.

Agora mais erros no seu arquivo que mostra o registro, na parte que diz "traz a variável dados" você não tem uma query ainda.

Substitua sua_tabela pela tabela que está dentro do seu database que contém o contrato. Substitua também o "id" pelo campo que contém o id do usuário:

// Faz a query
$result = mysql_query("SELECT contrato_usuario FROM sua_tabela WHERE id = $_SESSION['id_usuario']", $conexao);
// Traz a variável dados
$dados = mysql_fetch_array($result);

require $dados["contrato_usuario"];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá FallenHawk.

Após ter feito as alterações que você me passou, o sistema apresentou uma nova mensagem de erro:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\arquivos de programas\easyphp1-7\www\novabit\public_html\consulta_senha.php on line 15

o código da linha 15 é essa:

//faz a query

$result = mysql_query("SELECT contrato_usuario FROM aut_usuarios WHERE login = $_SESSION['login_usuario'] ", $conexao);

Obs:

contrato_usuario ---> campo na tabela onde está o nome do arquivo

aut_usuario ---> nome da tabela

Veja se voce, pode me dar uma ajuda, ok.

Obrigado. :help:

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado Originalmente por lcfantin@25 jul 2004, 14:27

//faz a query

$result = mysql_query("SELECT contrato_usuario FROM aut_usuarios WHERE login = $_SESSION['login_usuario'] ", $conexao);

você não pode usar uma array direto num query mysql por causa dos [ ] e '',

faca assim:

obs: use '' no valor da clausula. ex.: login='$o_login'

//faz a query

$o_login = $_SESSION['login_usuario'];

$result = mysql_query("SELECT contrato_usuario FROM aut_usuarios WHERE login='$o_login'", $conexao);

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado Originalmente por lcfantin@25 jul 2004, 14:27

//faz a query

$result = mysql_query("SELECT contrato_usuario FROM aut_usuarios WHERE login = $_SESSION['login_usuario'] ", $conexao);

Tipo.. se não me engano, na 'query', não são repassados os valores das variaves.. Quando for fazer um pedido com variaveis, constantes, etc, sempre faça-o fora da query... exemplo:

//faz a query

$query = "SELECT contrato_usuario FROM aut_usuarios WHERE login = ".$_SESSION['login_usuario'];

$result = mysql_query($query, $conexao);

Verifique também o caminho do arquivo, digamos que eles estrjam na pasta "contratos/nome_arquivo.htm", você teria que fazer o include assim: include("contratos/".$dados["contrato_usuario"]);

Verifique se tem a extensão do arquivo, se ele realmetne existe, etc.

Espero ter ajudado! :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pessoal, em primeiro lugar, obrigado a todos que me ajudaram a resolver esse problema...

Depois de muito bater cabeça, eu consegui fazer desse jeito:

<?php

// abro a sessão

require "verifica.php";

// faço a conexão com o banco de dados

require "comum.php";

/* no BD tem um campo com o nome do arquivo que eu quero abrir para

o meu cliente, por exemplo: senha_do_jose.doc , criei a variavel "

$consulta_doc " para receber o nome do arquivo que se encontra no BD no

campo " nome_arquivo " */

$consulta_doc = $_SESSION["nome_arquivo"];

// mando abrir o arquivo com o comando abaixo

header ("Location: $cconsulta_doc", "r");

?>

Se alguém tiver algum cometário, por favor, mas só sei que deu certinho...

:palmas:

Obrigado e até +

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×