Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafaeloliveiraz

Configurar função Form pela hora

Recommended Posts

Olá pessoal,

 

To com uma dificuldade aqui pra configurar as funções de um formulário.

Antes de mais nada vou mostrar o envio.php abaixo:

<?php

//     Nefux - Desenvolvimento de Web
//     Desenvolvido por Rafael Oliveira

    $nome     =   $_POST['nome']; 
    $ddd    =   $_POST['ddd']; 
    $telefone  =   $_POST['telefone']; 
    $cliente  =   $_POST['cliente'];
	$subject  =   "Ligue-me, quero SKY";
 
    $headers  = "From: meuemail@meudominio.com.br";

 
       $corpo = "Ligue-me \n";
       $corpo .= "Nome: " . $nome . "\n";
       $corpo .= "DDD: " . $ddd . "\n";
       $corpo .= "Telefone: " . $telefone . "\n";
	   $corpo .= "Cliente:" . $cliente . "\n";
 
       $email_to = 'meuemail@meudominio.com.br'; 
 
    $status = mail($email_to, $subject, $corpo, $headers);
    if($status) {
        echo "<script> alert('Obrigado, logo entraremos em contato.'); </script>"; 
    }
    else {
        echo "<script> alert('Falha ao enviar contato.'); </script>"; 
    }
    echo "<script> window.location.href = 'index.html'; </script>"; 
 
$url = "http://meuip/click.php?numero=".$ddd.$telefone;

file_get_contents($url);

?>

Se notarem, a função dele é enviar os dados do formulario para o e-mail descrito e além disso realizar uma ligação para o numero da pessoa que envia o formulário com esse codigo que esta localizado no final:

$url = "http://meuip/click.php?numero=".$ddd.$telefone;

file_get_contents($url);

A questão é a seguinte, eu preciso separar isso por horario agora, pois quando a pessoa envia o formulário o sistema automaticamente realiza a ligação para o telefone da pessoa mesmo depois do horario comercial, e nesse caso não tem ninguém para atender o cliente.

 

Preciso colocar uma função que limite a função de ligação de acordo com o horario programado, por exemplo:

 

Entre as 8:00 as 18:00 realizar a ligação, e após esse horario apenas enviar o e-mail.

 

Alguém tem ideia de como posso fazer isso?

 

Obrigado pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente é if e esle

<?php
date_default_timezone_set('America/Sao_Paulo');

$data = date('w');
$hora = date('h:i');
if($data == 0 || $data ==6 || $hora >=12 && $hora <=13 || $hora >=18 && $hora <8)
{
	echo "estou off";
	
} else {
	
	echo "estou on";
	
}

De uma estudada em Datetime e PHPMailer

 

Ps.: PHPMailer é uma classe mais robusta para envio de emails e autenticado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Williams

Agradeço muito por sua ajuda, já me deu uma grande luz esse codigo que você escreveu. Li sobre os artigos que me indicou, porém fiquei com uma pequena dúvida...

Se não for nenhum abuso poderia me dizer se entendi corretamente seu codigo?

 

 

Esse é referente aos dias da semana que permanece ativo? Por exemplo, de 2ª a 6ª.

$data == 0 || $data ==6 |

Aqui ele irá apontar como offline entre as 12:00 até as 13:00 e depois entre as 18:00 e as 8:00, certo?

$hora >=12 && $hora <=13 || $hora >=18 && $hora <8

Agora para programar as funções devo colocar onde esta o "Estou On" e "Estou off" certo?

 

Nesse caso, no "Estou On" colocar a função de ligação, e no "Estou off" colocar o envio de e-mail.

 

Entendi certo?

 

 

Mais uma vez, agradeço por sua ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi certo?

:thumbsup:

 

Mas caso ainda tenha dificuldades com ifs, use switch

 

A lógica sera esta:

<?php
date_default_timezone_set('America/Sao_Paulo');

switch ( date('w') ) {
	case 0:
	case 6:
		# Fechado
		break;
	
	default:

		# Defina o Horários que desejar
		switch ( date('h') ) {
			case 08:
			case 09:
			case 10:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
				# dentro do horario de expediente
				# include_once 'script.php';
				break;
			
			default:
				# fora do horario de expediente
				# include_once 'script.php';
				break;
		}

		break;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procure alguma biblioteca que faça validação de dias úteis, há um grande conteúdo referente a isto disponível para uso, tive o mesmo problema ao gerar guias de pagamentos cujo vencimento caia em sábados/domingos/feriados.

Depois disso, faça o tratamento do horário caso seja um dia útil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procure alguma biblioteca que faça validação de dias úteis, há um grande conteúdo referente a isto disponível para uso, tive o mesmo problema ao gerar guias de pagamentos cujo vencimento caia em sábados/domingos/feriados.

 

Depois disso, faça o tratamento do horário caso seja um dia útil.

 

Obrigado pela força Ruan, vou estudar isso também

Abraço!

<?php
date_default_timezone_set('America/Sao_Paulo');

switch ( date('w') ) {
	case 0:
	case 6:
		# Fechado
		break;
	
	default:

		# Defina o Horários que desejar
		switch ( date('h') ) {
			case 08:
			case 09:
			case 10:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
				# dentro do horario de expediente
				# include_once 'script.php';
				break;
			
			default:
				# fora do horario de expediente
				# include_once 'script.php';
				break;
		}

		break;
}

Williams, mais uma vez obrigado, consegui fazer funcionar com esse segundo codigo, ficou do jeito que eu precisava!

 

:joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.