NoX1911 0 Denunciar post Postado Julho 9, 2008 Olá pessoal, Estou com um bendito problema aqui, na verdade estou me deparando com isso quase todos os dias. Alguns projetos antigos que eu tenho em PHP nao estão funcionando como funcionavam antes. Alguns nao usam a tag <?php, mas sim <?, essas nao funcionam de jeito nenhum. Mas o caso agora é o seguinte: Faço uma chamada pelo link usando por exemplo: adm/redireciona.php?id=index redireciona.php <?php if ($id=="index") require("principal.php"); <? principal.php <p>Será que funciona!?</p> Sempre usei esse codigo e agora não quer funcionar. Será que é a versão nova do PHP? Estou usando a 5.2.6. Preciso de alguma extensão para isso? Valew! Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Julho 9, 2008 Você sempre terá que usar o $_GET pra pegar um valor via URL, ou $_POST para pegar valores de formulários com método POST, então logo ficaria assim: <?php if ($_GET['id']=='index') require('principal.php'); ?> Entendeu ? Compartilhar este post Link para o post Compartilhar em outros sites
jcarloz 0 Denunciar post Postado Julho 9, 2008 Os dois erros dependem da configuração do PHP, você pode rodar um CODE <?php phpinfo(); ?> pra comparar as configurações. O problema das tags é por causa da configuração short_open_tag que deve tá como off. Pra funcionar com <? ?> short_open_tag precisa ficar on e você precisaria mexer arquivo de configuração do PHP do servidor. Mas já vou adiantando que li ontem que eles pretendem acabar com o <? ?> apartir do PHP 6.0 (parece que isso complica um pouco na hora de mexer com arquivos .xml), então o ideal é já utilizar tudo como <?php ?>. Sobre o código que não funciona eu acho que tem relação com uma outra configuração chamada register_globals, quando esse register_globals tá como on na sua configuração do PHP, qualquer valor que você passar como parâmetro vai automaticamente para uma variável (no seu caso id=index vira uma variavel $id com valor "index"). No PHP4 isso funcionava por padrão e facilitava bastante o desenvolvimento, mas no PHP5 foi desabilitado porque isso gera problema de segurança (você pode sobrescrever qualquer variavel da página passando valores como parametros). Então pra funcionar no PHP5 eu alteraria teu código do redireciona.php pra algo como: CODE <?php if ($_REQUEST['id']=="index") require("principal.php"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Julho 9, 2008 <?php if ($_REQUEST['id']=="index") require("principal.php"); ?> Prefira usar o método correto, referente ao tipo de dados, é mais seguro, nesse request ai, tanto faz vim do post como do get ele pegaria do mesmo jeito, eu acho inseguro. Compartilhar este post Link para o post Compartilhar em outros sites
NoX1911 0 Denunciar post Postado Julho 9, 2008 Perfeito. Usei o $_GET['id']=='index' ;) Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Julho 9, 2008 é bom fazer um tratamento se um usuario digitar adm/redireciona.php?idmodificado=index ou adm/redireciona.php?id=valor qualquer Compartilhar este post Link para o post Compartilhar em outros sites