nilsonnq 0 Denunciar post Postado Agosto 21, 2013 Olá pessoal, acabei de me cadastrar no forúm, e desde já agradeço qualquer ajuda da comunidade. Pessoal meu problema é o seguinte eu vez ou outra tenho em mãos alguns scripts php, faço a instalação como criar bancos alterar alguns dados más é só....rsssss. Ultimamente estou tendo alguns problemas, tipo após efetuar todo procedimento de instalação e chamar a pagina recebo a seguinte mensagem, Esta página da web tem um loop de redirecionamento O que percebi é que existe um código,( <? include ("includes/arq_index.php"); ?>) na pagina index.php, quando eu retiro o mesmo a pagina carrega normalmente, mas algumas funções já deixam de funcionar Não sei se posso compartilhar o link aqui com vocês pois ainda não conheço todas as regras mas prometo que vou lê-las mais tarde. Por hora seria este minha dificuldade. Abraço a todos Nilson Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Agosto 21, 2013 Esse include direciona para algum lugar? Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Agosto 21, 2013 Loop infinito. Ou loop de redirecionamento para a mesma página. O que tem nessa página: includes/arq_index.phpv? Compartilhar este post Link para o post Compartilhar em outros sites
nilsonnq 0 Denunciar post Postado Agosto 21, 2013 Ok, colega obrigado pela resposta, verifiquei que direciona para arq_index.php, e dentro deste arquivo existem esses códigos: poderia por gentileza dar uma analisada para mim <? include ("includes/session.php"); include ("includes/config.php"); // INFORME AQUI O ID DO ADMIN $refid_admin = "adm"; // Se não for informado um ref id, é utilizado o id do admin if (!isset($ref)) { header("Location: $url_do_site?ref=$refid_admin"); return false; } // Incluindo o arquivo que faz a conexão com o mysql include "includes/mysql.php"; // Fazendo a consulta ao mysql $q1=mysql_query("SELECT * FROM ilh_users WHERE login='$ref' LIMIT 0,1"); // Se o usuário não existir, redireciona para a página do admin if(mysql_num_rows($q1) == "0") { header("Location: $url_do_site?ref=$refid_admin"); return false; } // Se o usuário existir, pega os dados while($linha=mysql_fetch_array($q1)) { $nomedapessoa = $linha['nome']; $emaildapessoa = $linha['email']; $fonefixo = $linha['fonefixo']; $fonemovel = $linha['fonemovel']; $cidade = $linha['cidade']; $estado = $linha['estado']; } // Registra os dados do usuário em uma sessão session_register("ref","nomedapessoa","emaildapessoa","fonefixo","fonemovel","cidade","estado"); if (preg_match( "/bcc:|cc:|multipart|\[url|Content-Type:/i", implode($_POST))) { $spam=true; } if (preg_match_all("/<a|http:/i", implode($_POST), $out) > 3) { $spam=true; } $spamwords = "/(aqui|lista|de|palavras|típicas|de|spam)/i"; if (preg_match($spamwords, implode($_POST))) { $spam=true; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Agosto 21, 2013 Ele vai redirecionar para a mesma página e ai vai chamar o include de novo, que vai redirecionar para mesma página e assim infinitamente, você tem que executar o include apenas quando iniciar pela primeira vez. Compartilhar este post Link para o post Compartilhar em outros sites
nilsonnq 0 Denunciar post Postado Agosto 21, 2013 Entendi, isso eu faço na primeira pagina no caso index.php com algum outro código, ou tenho que eliminar ou alterar os códigos da pagina arq_index.php tipos esses códigos (<? include ("includes/session.php"); include ("includes/config.php"); Desculpa minha ignorância nas perguntas. Pessoal esta é a sequencia exata dos códigos php..1- index.php dentro dela existe o seguinte código <? include ("includes/arq_index.php"); ?> em arq_index.php tem os códigos include ("includes/session.php"); include ("includes/config.php"); em session.php tem <? // Iniciando a sessão session_start(); include ("includes/config.php"); ?> em config.php tem <? $url_do_site = "link do meu site, não sei se pode postar aqui no fórum por isso não deixei aqui"; // Coloque a url do Site com o HTTP e a barra no final ?> Bom pelo que entendi esta com loop infinito e ao analisar esta sequência , quando ele chega em config.php ele volta para index.php e começa tudo de novo, então como faço para executar o include somente uma vez? Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Agosto 21, 2013 Não, você vai na sua página principal e coloca algo do tipo if(!isset($_GET)) { include.... } else { <codigo> } Compartilhar este post Link para o post Compartilhar em outros sites
nilsonnq 0 Denunciar post Postado Agosto 21, 2013 Olá amigo, fiz conforme você indicou acima: mas ainda não funcionou, Seria isso que era para fazer onde estava código ou fiz errado. if(!isset($_GET)) { include.... } else { <? include ("./includes/arq_index.php"); ?> } Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 21, 2013 Você tem o usuário admin cadastrado no banco de dados??? Compartilhar este post Link para o post Compartilhar em outros sites
nilsonnq 0 Denunciar post Postado Agosto 21, 2013 Sim amigo tenho sim Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 21, 2013 antes disso aqui... // Fazendo a consulta ao mysql $q1=mysql_query("SELECT * FROM ilh_users WHERE login='$ref' LIMIT 0,1"); coloque isso aqui [inline]die(var_dump($ref));[/inline] Independente de funcionar ou não, coloque aqui o resultado. Pesquise sobre a diretiva register_globals. Procure descobrir como obter a versão do PHP em execução e nos informe aqui também. Compartilhar este post Link para o post Compartilhar em outros sites
nilsonnq 0 Denunciar post Postado Agosto 21, 2013 Olá amigo fiz conforme dito acima ficando assim: die(var_dump($ref)); // Fazendo a consulta ao mysql $q1=mysql_query("SELECT * FROM ilh_users WHERE login='$ref' LIMIT 0,1"); este é o erro que aparece: Esta página da web tem um loop de redirecionamentoRecarregar Quando tiro o <? include ("./includes/arq_index.php"); ?> a pagina abre mas perde algumas funcionalidades por ex: chamar a pagia de cadastro com sucesso apos um cadastro. Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 21, 2013 Ta, faltou falar o que apareceu na tela. Se continuou dando o loop e etc. Eu entendi o que você precisa desde o primeiro post e sei solucionar o problema. Precisamos, agora, econtrá-lo. Compartilhar este post Link para o post Compartilhar em outros sites
nilsonnq 0 Denunciar post Postado Agosto 21, 2013 Eu não quero abusar da bondade de vocês mas como eu disse eu sou novo aqui e leigo no assunto, mas estou empenhado em resolver esse problema desde cedo quanto postei, estou atento a ajuda de todos, eu já revirei esse código e nada, as vezes dando uma olhadinha fica mais fácil entender por isso vou disponibilizar acesso ao meu pc, para que fiquem a vontade, Team Viewer usuario 169 976 729 senha 2j8g8b Olá amigo fiz conforme dito acima ficando assim: die(var_dump($ref)); // Fazendo a consulta ao mysql $q1=mysql_query("SELECT * FROM ilh_users WHERE login='$ref' LIMIT 0,1"); este é o erro que aparece:Esta página da web tem um loop de redirecionamentoRecarregar Quando tiro o <? include ("./includes/arq_index.php"); ?> a pagina abre mas perde algumas funcionalidades por ex: chamar a pagia de cadastro com sucesso apos um cadastro. Olá amigo continua dando o loop sai esta menssagem: Esta página da web tem um loop de redirecionamento Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 21, 2013 troque [inline]if (!isset($ref)) {[/inline] por [inline]if (!isset($_GET['ref'])) {[/inline] Conseguiu levantar a versão do PHP que você está usando e estudou sobre a diretiva que informei??? Compartilhar este post Link para o post Compartilhar em outros sites
nilsonnq 0 Denunciar post Postado Agosto 21, 2013 Agora Erro no servidor Desculpe eu tinha a substituição errada Agora esta assim: / Se não for informado um ref id, é utilizado o id do admin if (!isset($_GET['ref'])) { header("Location: $url_do_site?ref=$refid_admin"); return false; Erro Apresentado ao abrir a pagina : NULL Atualizando informação: Eu removi o código que tinha colocado anteriormente: die(var_dump($ref)); Então que estava dando : Esta página da web tem um loop de redirecionamento Ja não sai mais ou seja a pagina abre certinho, igual quando eu retirava o código: <? include ("./includes/arq_index.php"); ?> Então ao efetuar um cadastro de cliente não me retorna a pagina cadastro efetuado com sucesso. Ainda continuo na luta, erro voltou Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 21, 2013 A questão é que você está confiando numa diretiva do PHP que não é mais encorajada. desfazendo todas as modificações que nós fizemos até aqui para encontrar a causa do problema, isso aqui resolve: Antes // INFORME AQUI O ID DO ADMIN $refid_admin = "adm"; Depois // INFORME AQUI O ID DO ADMIN $refid_admin = "adm"; $ref = isset($_GET['ref']) ? $_GET['ref'] : $refid_admin; Mas aqui reside um problema. Como o @João Batista Neto costuma dizer, estamos tratando o sintoma, não a doença. Se mais alguma parte do seu código confiar em register_globals, você voltará a ter problemas, talvez até mais graves. Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Agosto 21, 2013 Não cara... if(!isset($_GET)) { O codigo do seu include aqui } else { outro código } Compartilhar este post Link para o post Compartilhar em outros sites
nilsonnq 0 Denunciar post Postado Agosto 21, 2013 Não cara... if(!isset($_GET)) { O codigo do seu include aqui } else { outro código } Amigo vou de confessar uma coisa to mais perdido que cego no escuro..rss mas enfim vou enviar novamente o código do arq_index.ph e você faz uma simulação pra mim. obrigado pela ajuda. Não cara... if(!isset($_GET)) { O codigo do seu include aqui } else { outro código } Amigo vou de confessar uma coisa to mais perdido que cego no escuro..rss mas enfim vou enviar novamente o código do arq_index.ph e você faz uma simulação pra mim. obrigado pela ajuda. <? include ("includes/session.php"); include ("includes/config.php"); // INFORME AQUI O ID DO ADMIN $refid_admin = "admin"; // Se não for informado um ref id, é utilizado o id do admin if (!isset($_POST['ref'])) { header("Location: $urldosite/?ref=$refid_admin"); return false; } // Incluindo o arquivo que faz a conexão com o mysql include "includes/mysql.php"; // Fazendo a consulta ao mysql $q1=mysql_query("SELECT * FROM ilh_users WHERE login='$ref' LIMIT 0,1"); // Se o usuário não existir, redireciona para a página do admin if(mysql_num_rows($q1) == "0") { header("Location: $url_do_site?ref=$refid_admin"); return false; } // Se o usuário existir, pega os dados while($linha=mysql_fetch_array($q1)) { $nomedapessoa = $linha['nome']; $emaildapessoa = $linha['email']; $fonefixo = $linha['fonefixo']; $fonemovel = $linha['fonemovel']; $cidade = $linha['cidade']; $estado = $linha['estado']; } // Registra os dados do usuário em uma sessão $_SESSION['ref'] = "$ref"; $_SESSION['nomedapessoa'] = "$nomedapessoa"; $_SESSION['emaildapessoa'] = "$emaildapessoa"; $_SESSION['fonefixo'] = "$fonefixo"; $_SESSION['fonemovel'] = "$fonemovel"; $_SESSION['cidade'] = "$cidade"; $_SESSION['estado'] = "$estado"; if (preg_match( "/bcc:|cc:|multipart|\[url|Content-Type:/i", implode($_POST))) { $spam=true; } if (preg_match_all("/<a|http:/i", implode($_POST), $out) > 3) { $spam=true; } $spamwords = "/(aqui|lista|de|palavras|típicas|de|spam)/i"; if (preg_match($spamwords, implode($_POST))) { $spam=true; } ?> A questão é que você está confiando numa diretiva do PHP que não é mais encorajada. desfazendo todas as modificações que nós fizemos até aqui para encontrar a causa do problema, isso aqui resolve: Antes // INFORME AQUI O ID DO ADMIN $refid_admin = "adm";Depois // INFORME AQUI O ID DO ADMIN $refid_admin = "adm"; $ref = isset($_GET['ref]) ? $_GET['ref'] : $refid_admin;Mas aqui reside um problema. Como o @João Batista Neto costuma dizer, estamos tratando o sintoma, não a doença. Se mais alguma parte do seu código confiar em register_globals, você voltará a ter problemas, talvez até mais graves. Efetuei as configurações citadas mas continua a mesma coisa, ATUALIZANDO INFORMAÇÕES: Bom a sempre uma luz no fim do túnel, o problema do loop infinito foi resolvido inserindo o código: if (!isset($_GET['ref'])) { no lugar de : if (!isset($ref)) {. Ai surgiu outro problema que era ao chamar o formulário de contato, ele voltava para pagina inicial ref=admin, então removi no topo da pagina contato.php um código : <? include ("./includes/arq_index.php"); ?> Mais essa etapa foi resolvida, agora ao chamar a pagina cadastro ela abre eu preencho os dados e quando vou enviar ela retorna para a pagina inicial abri a pagina cadastro e contem esse código: <? include ("includes/session.php"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 21, 2013 se esse problema foi resolvido, marque como resolvido e abra um novo tópico. Certifique-se de ser o mais detalhista e fornecer o máximo de informações possível no novo tópico. Compartilhar este post Link para o post Compartilhar em outros sites