vdepizzol 0 Denunciar post Postado Outubro 11, 2004 Olá, Estou atualizando o template do meu site e me deparei com o seguinte erro: quando eu incluo, na página INDEX.PHP o arquivo MENU-INFERIOR.PHP, ocorrem vários erros de variáveis que não existem. No entanto, essas variáveis existem, mas no INDEX. Como faço para que o MENU-INFERIOR leia as variáveis do INDEX? O código necessário está aí: INDEX.PHP PHP [/tr][tr]$versao_para_impressao = 1; // 1 (um) para SIM e 0 (zero) para NÃO //$comente_esta_pagina = 1; $recomende = 1; $adicionar_aos_favoritos = 1; $contribua_com_informacoes = 0; $relate_um_erro = 0; include("menu-inferior.php");[/tr] MENU-INFERIOR.PHP PHP [/tr][tr] if($versao_para_impressao == 1 || $comente_esta_pagina == 1 || $recomende == 1 || $adicionar_aos_favoritos == 1 || $contribua_com_informacoes == 1 || $relate_um_erro == 1) { echo '......'; } [/tr] Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Outubro 12, 2004 uhnn, estranho, tipo assim: Se na index.php, você colocar, definir: PHP [/tr][tr]<?php$valor1 = 1; $valor2 = 1; $valor3 = 4; .... include "pagina.php"; [/tr] Em Pagina.php: PHP [/tr][tr]<?phpecho $valor1; echo $valor2; echo $valor3;[/tr] Ele irá exibir normalmente os dados... Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Outubro 12, 2004 foi exatamente o que eu fiz, mas olha a única coisa que aparece (também achei muito extranho!): Notice: Undefined variable: versao_para_impressao in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 5 Notice: Undefined variable: comente_esta_pagina in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 5 Notice: Undefined variable: recomende in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 5 Notice: Undefined variable: adicionar_aos_favoritos in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 5 Notice: Undefined variable: contribua_com_informacoes in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 5 Notice: Undefined variable: relate_um_erro in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 5 Notice: Undefined variable: versao_para_impressao in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 12 Notice: Undefined variable: comente_esta_pagina in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 14 Notice: Undefined variable: recomende in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 17 Notice: Undefined variable: adicionar_aos_favoritos in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 20 Notice: Undefined variable: contribua_com_informacoes in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 23 Notice: Undefined variable: relate_um_erro in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 26 Notice: Undefined variable: versao_para_impressao in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 30 Notice: Undefined variable: comente_esta_pagina in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 30 Notice: Undefined variable: recomende in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 30 Notice: Undefined variable: adicionar_aos_favoritos in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 30 Notice: Undefined variable: contribua_com_informacoes in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 30 Notice: Undefined variable: relate_um_erro in c:\program files\easyphp1-7\www\templates\menu-inferior.php on line 30 Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Outubro 12, 2004 Será que tem alguma coisa a ver com o modo em que eu fiz o include? Olha como eu coloquei (o que não dá problema em nenhum dos outros seis includes): PHP [/tr][tr]<? include("http://".$_SERVER['HTTP_HOST']."/Templates/menu-inferior.php"); ?>[/tr] Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Outubro 12, 2004 uhn, tenta dar um include, normal: PHP [/tr][tr]pasta/arquivo.php[/tr] Mas sei Ñ, ta estranho!!! :huh: Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Outubro 12, 2004 Se eu for usar assim, dá errado, já que o link tem que estar a partir do site e não a partir do documento, uma vez que este seja usado para um template.Tem como incluir no php a partir do site? tipo <a href="/Templates/logo.gif"> ao invés de <a href"../Templates/logo.gif">? Se tiver como, o problema estará solucionado, já que funcionou se eu colocar o include normal como você falou... Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Outubro 12, 2004 é, dei uma olhada aqui e do jeito q você está incluindo ñ vai funcionar msm, só incluindo da forma q eu mencionei: PHP [/tr][tr]include "pasta/arquivo.php";[/tr] Isso se aplica mto bem ao seu caso, só fazer assim, ñ precisa fazer da maneira a qual está sendo feita por você. Dê br.php.net/include: Se "URL fopen wrappers" estão ativas no PHP (normalmente na configuração default), você pode especificar um arquivo utilizando uma URL (via HTTP ou qualquer outro wrapper suportado --- veja Apêndice L para uma lista dos protocolos) em vez de uma caminho local. Se o servidor apontado interpreta o arquivo informado como código PHP, variáveis podem ser passadas ao arquivo incluído na URL de requisição como num HTTP GET. Isto não é necessariamente a mesma coisa que incluir o arquivo e compartilhar o escopo de variável do arquivo principal: o script será executado no servidor remoto e apenas seu resultado será incluído no script local.Dá uma lida em:http://br.php.net/include/ q fala mta coisa sobre isso. Flwwwwww Compartilhar este post Link para o post Compartilhar em outros sites
Keitaro 0 Denunciar post Postado Outubro 12, 2004 nao é problema de include, uma vez que o codigo esta organizado da seguinte forma:+ index.php +--- menu-inferior.phpe ele esta lendo os erros do menu-inferior.phplogo esta funcionando normalmente a fusao.dentro desse menu-inferior.php, tem como ele esta feito? em funcoes? se estiver é necessário colocarglobal (...) + variaveis externas da funcao para tornal locais...se nao for esse o caso, o jeito eh você postar o codigo... Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Outubro 12, 2004 + index.php +--- menu-inferior.php e ele esta lendo os erros do menu-inferior.php logo esta funcionando normalmente a fusao. Se a pg q estiver sendo incluida, ñ importa onde esteja, estiver com erros, ñ recebendo os dados, por exemplo, irá resultar no erro em questão (Undefined variable), de qualquer modo, ou seja, isso Ñ tem nda a ver... incluindo, http, se ñ mexer no php.ini, ele Ñ irá receber os dados... Mas é claro, q se na pg incluida houver, class, function, enfim, tem q declarar, tbm... Flwwwwwwww Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Outubro 12, 2004 INDEX.PHP PHP [/tr][tr]<? include ("http://".$_SERVER['HTTP_HOST']."/Templates/header.php"); ?> <html> <head> <!-- TemplateBeginEditable name="doctitle" --> <title>Ibiracu.com</title> <!-- TemplateEndEditable --> <!-- TemplateInfo codeOutsideHTMLIsLocked="true" --> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <!-- TemplateBeginEditable name="head" --> <? // VARIÁVEIS PRÉ-DEFINIDAS $versao_para_impressao = 1; // 1 (um) para SIM e 0 (zero) para NÃO // $comente_esta_pagina = 1; $recomende = 1; $adicionar_aos_favoritos = 1; $contribua_com_informacoes = 0; $relate_um_erro = 0; ?> <!-- TemplateEndEditable --> <link href="/Templates/estilo.css" rel="stylesheet" type="text/css"> </head> <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <? include("http://".$_SERVER['HTTP_HOST']."/Templates/cabecalho.php"); ?> <? include("http://".$_SERVER['HTTP_HOST']."/Templates/linha.php"); ?> <MTO CÓDIGO HTML...> <? include("http://".$_SERVER['HTTP_HOST']."/Templates/menu-inferior.php"); ?> <? include("http://".$_SERVER['HTTP_HOST']."/Templates/linha.php"); ?> <? include("http://".$_SERVER['HTTP_HOST']."/Templates/rodape.php"); ?> </body> </html>[/tr] MENU-INFERIOR.PHP PHP [/tr][tr] <? if($versao_para_impressao == 1 || $comente_esta_pagina == 1 || $recomende == 1 || $adicionar_aos_favoritos == 1 || $contribua_com_informacoes == 1 || $relate_um_erro == 1) { echo '<table width="100%" border="0" cellpadding="5" cellspacing="0">'; echo '<tr bgcolor="F4F4F4">'; echo '<td colspan="2" class="corpo">'; } if($versao_para_impressao == 1) { echo '<a href="#"> Página para impressão</a>'; } if($comente_esta_pagina == 1) { if($versao_para_impressao == 1) { echo ' | '; } echo '<a href="#">Comente esta página</a>'; } if($recomende == 1) { if($versao_para_impressao == 1 || $comente_esta_pagina == 1) { echo ' | '; } echo '<a href="#">Recomende a um amigo</a>'; } if($adicionar_aos_favoritos == 1) { if($versao_para_impressao == 1 || $comente_esta_pagina == 1 || $recomende == 1) { echo ' | '; } echo '<a href="#">Adicionar aos favoritos</a>'; } if($contribua_com_informacoes == 1) { if($versao_para_impressao == 1 || $comente_esta_pagina == 1 || $recomende == 1 || $adicionar_aos_favoritos == 1) { echo ' | '; } echo '<a href="#">Contribua com informações</a>'; } if($relate_um_erro == 1) { if($versao_para_impressao == 1 || $comente_esta_pagina == 1 || $recomende == 1 || $adicionar_aos_favoritos == 1 || $contribua_com_informacoes == 1) { echo ' | '; } echo '<a href="#">Relate um Erro</a>'; } if($versao_para_impressao == 1 || $comente_esta_pagina == 1 || $recomende == 1 || $adicionar_aos_favoritos == 1 || $contribua_com_informacoes == 1 || $relate_um_erro == 1) { echo '</td>'; echo '</tr>'; echo '</table>'; } ?> [/tr] Compartilhar este post Link para o post Compartilhar em outros sites
Keitaro 0 Denunciar post Postado Outubro 12, 2004 acho q o problema esta resolvido com a solucao do michelsp inclua do metodo tradicional, se nao tera de mudar na config... :P bom, acabei aprendendo mais uma... ;Dflw Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Outubro 12, 2004 Consegui colocar o include a partir do site (como eu preciso) da seguinte maneira: enviando variáveis pela URL... PHP [/tr][tr] <? include("http://".$_SERVER['HTTP_HOST']."/Templates/menu-inferior.php?versao_para_impressao=".$versao_para_impressao."&comente_esta_pagina=".$comente_esta_pagina."&recomende=".$recomende."&adicionar_aos_favoritos=".$adicionar_aos_favoritos."&contribua_com_informacoes=".$contribua_com_informacoes."&relate_um_erro=".$relate_um_erro); ?>[/tr] :) Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Outubro 12, 2004 Não entendo pq você complica tanto uma coisa tão simples!!! hehehe Mas se funcionou e Ñ se importa de passar por $_GET, dados, informações q já estão disponiveis, sem problema!!! :D Flwwwwww Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Outubro 12, 2004 Eu até que tentei usar $_GET... mas ocorreu algum erro como "Undefined index"... ;) Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Outubro 12, 2004 Eu até que tentei usar $_GET... mas ocorreu algum erro como "Undefined index"... ;) você teria q resgatar os dados com $_GET, já q está passando os dados pelo link, eu disse, o q é desnecessário pois estes já estão disponiveis, acessando diretamente do arquivo q for incluido, se o include for feito da maneira correta...Usa o include normal, q funciona, Ñ importa se tem theme ou Ñ, já fiz sites com inumeros themes usando include, normal, o qual é totalmente aplicavel.Flwwwww Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Outubro 13, 2004 Este tipo de erro esta me parecendo mais da configuração do php. você utiliza qual versao de php? você usa o arquivo php.ini que ja vem padrão na instalação ou você alterou alguma coisa nele? você se lembra do q alterou nele? Esse include deveria funcionar pois na minha maquinha roda normal. Deve ser algum parametro que força a declaração de variaveis. Aqui ñ funciona se ñ usar do tipo: PHP [/tr][tr]include "pasta/arquivo.php";[/tr] Ele inclui, mas Ñ reconhece os parametros. php.ini original, só alterado parametros q ñ afetariam isso. Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Outubro 13, 2004 Consegui fazer funcionar :) e agora não pretendo mudar o código... mesmo porque ele está funcionando normalmente... :) t+ Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Outubro 15, 2004 Agora eu pretendo mudar o código :( ... tudo porque não funcionou do jeito que eu tentei... as páginas incluídas não se comunicavam! Era uma bagunça só! E eu não posso colocar como o pessoal falou, tipo PHP [/tr][tr]<? include("index.php"); ?>[/tr] porque como vai ser um template (aquele...DWT... do DW) não vai poder ser editável, então o caminho vai ficar errado se a página não estiver na mesma pasta do arquivo a ser incluído... A minha idéia é a seguinte... ele pega o $_SERVER['PHP_SELF'] do arquivo, conta quantas barras ele tem ( / ) e gera "../../" no caminho do include de acordo com o numero de pastas... Exemplificando: Tenho um arquivo TESTE.PHP dentro da pasta RASCUNHO. O $_SERVER['PHP_SELF'] deste arquivo é "rascunho/teste.php". Ao querer incluir o arquivo INDEX.PHP, que está dentro da pasta raiz, como a pasta RASCUNHO, ele geraria <? include("../index.php"); ?> porque, como houve apenas uma barra na variável php_self, ele voltou uma vez... Agora, a única dúvida minha é... qual função usar para calcular quantas barras tem o $_SERVER['PHP_SELF']? :( Compartilhar este post Link para o post Compartilhar em outros sites
vdepizzol 0 Denunciar post Postado Outubro 16, 2004 Consegui! Olha como eu fiz: PHP [/tr][tr]<?$pagina = $_SERVER['PHP_SELF']; $barras = explode("/", $pagina); $numero_de_barras = count($barras); $numero_de_barras = $numero_de_barras - 1; if($numero_de_barras == 1) { $barras = ""; } else if($numero_de_barras == 2) { $barras = "../"; } else if($numero_de_barras == 3) { $barras = "../../"; } else if($numero_de_barras == 4) { $barras = "../../../"; } else if($numero_de_barras == 5) { $barras = "../../../../"; } else if($numero_de_barras == 6) { $barras = "../../../../../"; } else if($numero_de_barras == 7) { $barras = "../../../../../../"; } include($barras.'Templates/header.php'); ?> [/tr] :) Compartilhar este post Link para o post Compartilhar em outros sites