PHDiniz 0 Denunciar post Postado Dezembro 26, 2008 Pessoal, preciso usar algum tipo de redirecionamento. Mas.. não sei se é pq to fazendo alguma coisa errada ou se dá problema mesmo. Em algumas áreas do meu site, eu preciso redirecionar uma pessoa pra tal lugar. Só que estou usando assim: echo "<meta http-equiv='refresh' content='0;página_x.php'>"; Só que esse código só funciona no Firefox, se eu entrar na página que tem esse código de cima com o IE, ele não redireciona. Alguem sabe pq? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Dezembro 26, 2008 mostre o código html gerado pelo php Compartilhar este post Link para o post Compartilhar em outros sites
PHDiniz 0 Denunciar post Postado Dezembro 26, 2008 Na verdade, não é necessário, eu só queria uma solução para enviar a pessoa pra uma outra página, sendo o código compatível com qualquer navegador. Eu tentei usar o Header("Location: ... ");, mas ele sempre diz: Warning: Cannot modify header information - headers already sent by Tem algum comando ou alguma coisa para eu usar sem que dê problema? ------------------------------------------------------------------- Esta página pode ser usada como exemplo: <? session_start(); @$login = $_SESSION['login']; @$senha = $_SESSION['senha']; if(!isset($_SESSION['login'])) { echo "Para acessar essa pagina é preciso esta logado!"; } else{ $Gms = mssql_fetch_row(mssql_query("select painelgm from memb_info where memb___id='".$login."'")); if($Gms[0] <= 0) { echo "Voce nao faz parte da Administração"; } else{ ?> <h1>Gerenciar Administradores/GMs</h1> <div class="qdestaques"> <form id="form2" name="form2" method="post" action="?go=geradmsite&act=adm"> <table width="293" height="127" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top"><table width="294" height="116" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="120" height="19">Conta</td> <td width="174"><select name="acc" id="acc"> <? $Accs = mssql_query("select Memb___id from MEMB_INFO WHERE vip = '0'"); for($p=0;$p<mssql_num_rows($Accs);$p++) { $Acc=mssql_fetch_row($Accs); echo '<option value='.$Acc[0].'>'.$Acc[0].'</option>'; } ?> </select></td> </tr> <tr> <td height="19"><span class="style3">Cargo no Site</span></td> <td><select name="cargosite" size="1" id="cargosite"> <option value="ns2" selected="selected">Selecione Um...</option> <option value="0">Usuário Normal</option> <option value="1">GM</option> <option value="2">Admin</option> </select></td> </tr> <tr> <td height="19"> </td> <td> </td> </tr> <tr> <td height="19" colspan="2"><input type="submit" name="button2" id="button2" value="Salvar" /></td> </tr> <tr> <td colspan="2"><br /> Consulte também: <a href="?go=geradmjogo"><strong>Ger. Admins</strong></a></td> </tr> </table></td> </tr> </table> </form> </div> <? } if ($act == 'adm') { $conta = $_POST['acc']; $cs = $_POST['cargosite']; $dados_login_vip_q = mssql_query("SELECT * FROM MEMB_INFO WHERE memb___id = '$acc'"); $dados_login_vip = mssql_fetch_array($dados_login_vip_q); if (empty($acc) || $cs == ns2) { echo "<script>alert('Você esqueceu algum Campo em Branco.')</script>"; } elseif (mssql_num_rows($dados_login_vip_q) <= 0) { echo "<script>alert('Esta Account não existe.')</script>"; header("Location: index.php "); } else { mssql_query("UPDATE MEMB_INFO SET painelgm='".$cs."' WHERE memb___id='".$conta."'"); echo "<div align='center'>Ok!<br><br></div>"; echo '<br>'; } } } ?> Preciso usar um código para redirecionar a pessoa para a página index (no caso). Não tenho problema com o site, somente com essa parte em vermelho, ou seja, só a parte do redirecionamento. O que fazer sem dar o erro de header? Que comando usar? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Dezembro 26, 2008 mostre o resultado html... Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 26, 2008 Se não me engano, você não pode usar header: location, depois de já ter enviado cabeçalhos HTML.. por isso dá o erro. e a linha da meta tag, tente assim: echo '<meta http-equiv="refresh" content="1;URL=página_x.php" />'; Compartilhar este post Link para o post Compartilhar em outros sites
PHDiniz 0 Denunciar post Postado Dezembro 26, 2008 William, muito obrigado, deu certo. Mas... só mais uma pergunta... Se no Content eu não usar o URL=, dá algum problema? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 26, 2008 Olha... nunca usei sem ^^ E o problema do header location? conseguiu resolver? coloca ele antes, de mandar os <html><head>... Compartilhar este post Link para o post Compartilhar em outros sites
Paulo de Tarso F. M. 24 Denunciar post Postado Dezembro 26, 2008 Se no Content eu não usar o URL=, dá algum problema?Não é que dá problema, o URL é um, digamos, atributo, necessário para funcionar... Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Dezembro 26, 2008 se nao colocar o URL, ele vai dar refresh na mesma pagina... Compartilhar este post Link para o post Compartilhar em outros sites
PHDiniz 0 Denunciar post Postado Dezembro 26, 2008 Entao Igor, eu sempre usei echo ".... content='0; algumapágina.php'>"; e sempre foi normalmente. =/ Sim William, consegui! Muito Obrigado! Dúvida resolvida! Compartilhar este post Link para o post Compartilhar em outros sites
mmb 0 Denunciar post Postado Dezembro 26, 2008 Você pode solucionar esse problema usando a função ob_start() no topo de sua página php, assim o header("Location: xx") não irá causar erros... Compartilhar este post Link para o post Compartilhar em outros sites
brcontainer 16 Denunciar post Postado Dezembro 26, 2008 Amigo header(); é uma função que deve vir antes de qualquer string. Vou tentar ser mais claro, você não pode fazer isso: <?php echo "texto"; header("Location: pagina.php"); ?> deve-se fazer assim: <?php header("Location: pagina.php"); echo "texto"; ?>-----------------------------------Não pode fazer assim: <p>asdasdasdasd</p> <?php header("Location: pagina.php"); echo "texto"; ?>assim é o certo: <?php header("Location: pagina.php"); echo "texto"; ?> <p>asdasdasdasd</p>--------------------------------------- Header e SESSION são funções que devem ser iniciadas no CABECARIO, o proprio nome diz HEADER=cabeçario. Strings(ECHO, PRINT, etc) São do CORPO o corpo nunca deve vir antes do cabeçario. Meu sinceramente já falaram bastante disso aqui no forum, usar o buscador as vezes não custa nada né? hehehehehe Leia a documentação PHP antes de usar uma função, vai lhe ajudar bastante amigo: http://br.php.net/manual/pt_BR/ http://br.php.net/tut.php Sobre a função HEADER: http://br.php.net/header Compartilhar este post Link para o post Compartilhar em outros sites