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

(Resolvido) echo temporizado


Carlos Rocha

Pergunta

pessoal. Bom dia!

Gostaria de aposentar o alert javascript.

Então, queria saber se existe, em php, alguma função que mostra o echo (ou print) e, dentro de um tempo predefinido na função passe para a proxima linha do codigo que será header location.

Existe uma funçao que faça isso?

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

Serra, tentei da forma abaixo mas o script grava no banco normal e depois continua executando a linha do else tambem dando a mensagem de erro na consulta.

primeiro da mensage de enviado ok, redireciona, mas, como o redirect é para a mesma pagina, o script lê o else e da a mensagem de erro de gravaçao.

<?
if ($acao =="envia") {
$motivo = $_POST['motivo'];
$nome = $_POST['nome'];
$email = $_POST['email'];
$tel =  str_replace( ".", "", $_POST['tel']);
$texto = $_POST['texto'];

$sql =  "INSERT INTO contato(motivo, nome, email, tel, texto) VALUES('$motivo', '$nome', '$email', '$tel', '$texto')";
$consulta = $MySQL->query($sql);
            if($consulta){
                          echo "
                                <table align=\"center\" width=\"300\">
                                  <tr bgcolor=\"#6666FF\">
                                      <td align=\"center\" valign=\"middle\" colspan=\"3\">
                                      <font color=\"#FFFFFF\">Enviado OK!</font><br />
                                    </td>
                                  </tr>
                                </table>
                              ";
                          header("refresh: 5; cadastros.php");
                          break;
                         }
            else     {
                          echo "
                                <table align=\"center\" width=\"300\">
                                  <tr bgcolor=\"#6666FF\">
                                      <td align=\"center\" valign=\"middle\" colspan=\"3\">
                                      <font color=\"#FFFFFF\">Erro no envi!</font><br />
                                    </td>
                                  </tr>
                                </table>
                              ";
                          header("refresh: 5; cadastros.php");
                          break;
                      }
            }
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Então redirecione com o parâmetro $acao diferente, tipo sucesso:

if ($acao =="envia") {
$motivo = $_POST['motivo'];
$nome = $_POST['nome'];
$email = $_POST['email'];
$tel =  str_replace( ".", "", $_POST['tel']);
$texto = $_POST['texto'];

$sql =  "INSERT INTO contato(motivo, nome, email, tel, texto) VALUES('$motivo', '$nome', '$email', '$tel', '$texto')";
$consulta = $MySQL->query($sql);
            if($consulta){
                          echo "
                                <table align=\"center\" width=\"300\">
                                  <tr bgcolor=\"#6666FF\">
                                      <td align=\"center\" valign=\"middle\" colspan=\"3\">
                                      <font color=\"#FFFFFF\">Enviado OK!</font><br />
                                    </td>
                                  </tr>
                                </table>
                              ";
                          header("refresh: 5; cadastros.php?acao=sucesso");
                          break;
                         }
            else     {
                          echo "
                                <table align=\"center\" width=\"300\">
                                  <tr bgcolor=\"#6666FF\">
                                      <td align=\"center\" valign=\"middle\" colspan=\"3\">
                                      <font color=\"#FFFFFF\">Erro no envi!</font><br />
                                    </td>
                                  </tr>
                                </table>
                              ";
                          header("refresh: 5; cadastros.php");
                          break;
                      }
            }elseif($acao == 'sucesso'){
echo 'ok!!';
}

Link para o comentário
Compartilhar em outros sites

  • 0

Vou tentar.

mas antes, duas perguntas:

1) Se o script já rodou o if, porque esta rodando o else mesmo que a condição já foi satisfeita. Obs.: o $acao do action do form é envia e o location do header é só a pagina sem $acao.

2) Será que essa forma de redirecionamento é mesmo melhor que usar o alert do javascript?

Link para o comentário
Compartilhar em outros sites

  • 0

1 - O if foi satisfeito na ação anterior, quando você redireciona o PHP não tem como saber o que já foi feito ou não, processa a página novamente e como o IF não é mais verdadeiro vai para o else.

2 - Não tem nada de errado em fazer isto...

Link para o comentário
Compartilhar em outros sites

  • 0

Rapaz, fiz do jeito abaixo e ainda continuou dando refresh. direto.

<?
if ($_GET['acao'] =="ok") {
echo "
                                <table align=\"center\">
                                  <tr bgcolor=\"#6666FF\">
                                      <td align=\"center\" valign=\"middle\">
                                      <font color=\"#FFFFFF\">Enviado OK!</font><br />
                                      </td>
                                  </tr>
                                </table>
                              ";
                          header("refresh: 5; cadastros.php");
                          break;    
                          }
?>
<?                          
if ($_GET['acao'] =="erro") {
echo "
                                <table align=\"center\">
                                  <tr bgcolor=\"#6666FF\">
                                      <td align=\"center\" valign=\"middle\">
                                      <font color=\"#FFFFFF\">Erro no envio<br>Por favor, tente novamente!</font><br />
                                      </td>
                                  </tr>
                                </table>
                              ";
                          header("refresh: 5; cadastros.php");
                          break;    
                          }
?>
<?
if ($_GET['acao'] =="envia") {
$motivo = $_POST['motivo'];
$nome = $_POST['nome'];
$email = $_POST['email'];
$tel =  str_replace( ".", "", $_POST['tel']);
$texto = $_POST['texto'];

$sql =  "INSERT INTO contato(motivo, nome, email, tel, texto) VALUES('$motivo', '$nome', '$email', '$tel', '$texto')";
$consulta = $MySQL->query($sql);
            if($consulta){ header("location:?acao=ok");    }
            else         { header("location:?acao=erro");  }
            }
?>


<table align="center" width="95%">
  <tr bgcolor="#6666FF">
      <td align="center" valign="middle" colspan="3">
      <font color="#FFFFFF">Cadastros:::::: <?=$titulo_site;?> ::::::</font><br />
    </td>
  </tr>
  <tr>
    <td align="left" colspan="2">
    Para acessar a nossa área de cadastros, é necessário que você também esteja cadastrado no nosso site. <br />
    Então, pedimos que você escolha abaixo a área que representa você e nos passe seus dados de contato que rapidamente, entraremos em contato para coletarmos junto a você, os outros dados necessários ao cadastro.<br />
    Feito isso, nós estaremos te encaminhando, através dos meios de contato informados por você abaixo, a senha  de acesso, que podera ser alterada posteriormente.<br />
    Caso o assunto não seja nenhum dos relacionados abaixo, clique <a href="contato.php?acao=deficiente">AQUI</a> e nos envie um email com outro assunto.
    </td>
  </tr>
  <tr>
    <td align=center>
      <table align="center">
        <tr><td align="center" colspan="2">dEficiente interessado em obter o cadastro:</td></tr>
        <form action="?acao=envia" method="post" name="contatodeficiente">
        <tr>
            <td>Nome:</td>
            <td><input type="text" name="nome" value="" / size="31"></td>
         </tr>        
        <tr>
            <td>Email:</td>
            <td><input type="text" name="email" value="" / size="31"></td>
         </tr>        
        <tr>
            <td>Telefone:</td>
            <td><input type="text" name="tel" onkeypress="return mascara(event,this,'##.####.####');" value="" size="31" maxlength="12">            </td>
         </tr>        
        <tr>
            <td>Texto:</td>
            <td><textarea name="texto" id="texto" style="width:220; height:200"></textarea></td>
         </tr>        
        <tr>
            <td align="center" colspan="2"><input type="button" value="Enviar" onclick="validacontatodeficiente();"></td>
         </tr>  
         <input type="hidden" name="motivo"  value="1"   />
         </form>
      </table>
    </td>
    <td align=center>
      <table align="center">
        <tr><td align="center" colspan="2">Empresários com Interesse em mão de obra dEficiente::</td></tr>
        <form action="?acao=envia" method="post" name="contatoempresa">
        <tr>
            <td>Nome:</td>
            <td><input type="text" name="nome" value="" / size="31"></td>
         </tr>        
        <tr>
            <td>Email:</td>
            <td><input type="text" name="email" value="" / size="31"></td>
         </tr>        
        <tr>
            <td>Telefone:</td>
            <td><input type="text" name="tel" onkeypress="return mascara(event,this,'##.####.####');" value="" size="31" maxlength="12">            </td>
         </tr>        
        <tr>
            <td>Texto:</td>
            <td><textarea name="texto" id="texto" style="width:220; height:200"></textarea></td>
         </tr>        
        <tr>
            <td align="center" colspan="2"><input type="button" value="Enviar" onclick="validacontatoempresa();"></td>
         </tr>  
         <input type="hidden" name="motivo"  value="2"   />
         </form>
      </table>
    </td>    
  </tr>
</table>

Tenta ae:

http://www.carcleo.com/gapde/cadastros.php

Vai na form da esquerda. Deficientes e v~e o que esta acontecendo.

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

  • 0

Sabe o que estou observando.

header("refresh: 3; ?acao=contato");
 break;
Aqui está dando refresh na pagina, e eu precisava era que redirecionasse. Dai tentei assim:
sleep(5);
   header("location:?acao=contato");
   break;

Desta forma redireciona correto mas antes dos 5 segundos, só mostra o fundo azul da pagina sem nada nela.

Link para o comentário
Compartilhar em outros sites

  • 0

Descobri.

O problema era na chamada da funçao

Estava fazendo assim:

header("refresh: 3; acao=contato");
quando o certo é assim:
header("refresh: 3; url='?acao=contato'");
Mas agora esta dando o bendido do erro de header:
Warning: Cannot modify header information - headers already sent by (output started at /home/c27202/public_html/gapde/global/config/conexao.php:1) in /home/c27202/public_html/gapde/cadastros_conteudo.php on line 21

tem como resolver isso tambem?

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

  • 0

Seguro é, se deve ser usado ou não, ai depende do seu público alvo, eu prefiro utilizar javascript, além de disponibilizar um link para o usuário do tipo "se não quer esperar, clique aqui", mas ai varia do gosto de cada um.

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...