Ir ao conteúdo
  • Cadastre-se
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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
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

×