Ir para conteúdo
Fórum Script Brasil
  • 0

Includes - Conteúdos


Guest Rastazituh

Pergunta

Guest Rastazituh

Bem, estou com um pequeno problema e ficaria muito grato se me ajudassem. É o seguinte:

Numa célula de uma tabela de um index2.php, inseir o seguinte código:

<?php include "$id.htm";?>
De seguida, linkei uma das opções do menu para:
?id=adduser

Que abriria, no local onde coloquei a include, a página adduser.htm. Ora, tudo funcionou: no index2.php, se clickarmos no link, abre, no local onde coloquei o include, o conteúdo da página adduser.htm. Até aí tudo bem. Contudo, o problema surge no próprio index2.php - no local onde coloquei o include aparece isto:

Warning: main(.htm): failed to open stream: No such file or directory in /home/dex/public_html/conteudos/index2.php on line 76

Warning: main(): Failed opening '.htm' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/dex/public_html/conteudos/index2.php on line 76

O que significa isto? Também enviei para o servidor uma página id.htm.

Assim que me puderem ajudar agradeço. Obrigado.

Link para o comentário
Compartilhar em outros sites

22 respostass a esta questão

Posts Recomendados

  • 0
Guest Rastazituh

Experimentei e apresenta o seguinte erro:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/dex/public_html/conteudos/index2.php on line 76

Devo também dizer, que após a pesquisa parece-me que isso se aplica a formulários. O meu problema não se prende com formulários, mas sim com a paginação.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Rastazituh

Continua a dar isto:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/dex/public_html/conteudos/index2.php on line 76

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, o ".htm", não faz parte da variável mas você precisa dele pra chamar o arquivo.

Se você chamar pelo arquivo "adduser", ele não vai achar, se chamar por "adduser.htm" ele vai achar. Entendeu?

<?php include $_GET['id'] . ".htm";?>

· http://br.php.net/manual/pt_BR/language.op....assignment.php

Dá uma estudada nos operadores do PHP, veja como concatenar, como funcionam as variáveis, porque eu acho que isso é importante pra caramba. Se você não entender isso legal, vai se enrolar mais adiante... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Rastazituh

Bem, não há dúvidas de que funcionou, mas volta a mesma mensagem:

Warning: main(.htm): failed to open stream: No such file or directory in /home/dex/public_html/conteudos/index2.php on line 76

Warning: main(): Failed opening '.htm' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/dex/public_html/conteudos/index2.php on line 76

Será que tenho de enviar algum main.htm para o servidor ?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Rastazituh

Aliás, o problema não se prende com a apresentação dos conteúdos - eles aparecem. Prende-se com a apresentação daquela mensagem na página base, ou seja, no index2.php

Link para o comentário
Compartilhar em outros sites

  • 0

Não, não! smile.gif

main() é uma função imaginária que o PHP cria em certos erros, não se preocupe com ela.

O problema, sabe qual é? Que, quando você entra na página, não existe "?id=". A página principal não tem isso.

Então o que você vai ter que fazer? Vai ter que colocar uma verificação antes do include, dizendo que só é pra incluir caso a variável id exista.

Monta o código aí e mostra pra gente... smile.gif

ps: Cadastre-se no fórum, cara smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

OK, acabo de me registar. Penso que é melhor registar-me mesmo porque provavelmente terei novas dúvdas no futuro e este é o Fórum de suporte de mais rápida assistência que conheço. Ah, se não entender algo nos meus textos pergunte-me, é porque sou de Portugal. wink.gif

Bem, então vamos rever o caso: aquela mensagem aparece porque o sistema procura algum ?id=... que esteja linkado para aparecer naquele mesmo local, ou seja, no próprio index2.php, certo ? Como não existe nenhuma indicação de link, apresenta aquela mensagem em substituição. OK ! Agora o que preciso é de adicionar uma linha de código antes de <?php include $_GET['id'] . ".htm";?> a dizer que este include só se aplica quando existirem links do tipo ?id=.... OK.

Segundo o livro de PHP que tenho à minha frente, tenho de escrever algo como:

<?php
  if ($condição)  {
     include  'pagina.php';
  } else  {
     include $variáveis;
}
?>

Ora, em $condição tenho de estabelecer que aquilo o include só ocorre na existência de links. Em variáveis, devo especificar algo nulo ? Não sei o que colocar especificamente em $condição e $variáveis.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Actualizando

Escrevi um código e praticamente resultou:

<?php
if (file_exists("$id.htm"))  {
    include $_GET['id'] . ".htm";
 } else  {
    include $_GET[''];
}
?>

Os conteúdos aparecem, e no index2.php a primeira parte da mensagem desapareceu; contudo, a segunda ainda é apresentada:

Warning: main(): Failed opening '' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/dex/public_html/conteudos/index2.php on line 80

Que modificação no código devo fazer ? Obrigado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...