Ir para conteúdo
Samuel Costa2018

Resposta Automática de Email

Recommended Posts

Boa Tarde! Estou passando por problemas em relação a um sistema de PHP que utilizo. Esse sistema abre duas paginas de login uma para o acesso de administração e o outro de acesso a cliente, onde ele faz o cadastro e consegue acessar o sistema e cadastrar uma ordem de serviço. Como faço para que quando o cliente se cadastrar no sistema, automaticamente o próprio sistema recolhe os dados (Nome e Email) e envia uma resposta automática para o email (cadastrado) do cliente confirmando o cadastro dele. Sou leigo em relação a esse assunto, por isso preciso da ajuda de vocês. Desde já agradeço a atenção! (desculpe se for tópico errado)

 

Segue abaixo a linha de comando para vocês entenderem mais ou menos do que se trata. (Acredito que a linha de código descrita ,está no final de todas as linhas que estão abaixo porém deixei a linha completa pra vocês entenderem melhor do que se trata)

 

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Mine extends CI_Controller {

	
	public function __construct(){

		parent::__construct();
		$this->load->model('Conecte_model');

	}

	public function index(){

		$this->load->view('conecte/login');
		
	}

	public function sair(){
        $this->session->sess_destroy();
        redirect('mine');
    }

    public function login(){

        $this->load->library('form_validation');
        $this->form_validation->set_rules('email','Email','valid_email|required|trim');
        $this->form_validation->set_rules('documento','Documento','required|trim');
        $ajax = $this->input->get('ajax');
        if ($this->form_validation->run() == false) {
            
            if($ajax == true){
                $json = array('result' => false);
                echo json_encode($json);
            }
            else{
                $this->session->set_flashdata('error','Os dados de acesso estão incorretos.');
                redirect('mine');
            }
        } 
        else {

            $email = $this->input->post('email');
            $documento = $this->input->post('documento');


            $this->db->where('email',$email);
            $this->db->where('documento',$documento);
            $this->db->limit(1);
            $cliente = $this->db->get('clientes')->row();

            if(count($cliente) > 0){
                $dados = array('nome' => $cliente->nomeCliente, 'cliente_id' => $cliente->idClientes,'conectado' => TRUE);
                $this->session->set_userdata($dados);

                if($ajax == true){
                    $json = array('result' => true);
                    echo json_encode($json);
                }
                else{
                    redirect(site_url().'/mine');
                }               
            }
            else{
                
                
                if($ajax == true){
                    $json = array('result' => false);
                    echo json_encode($json);
                }
                else{
                    $this->session->set_flashdata('error','Os dados de acesso estão incorretos.');
                    redirect(site_url().'/mine');
                }
            }
            
        }
        
    }

	public function painel(){
		
        
		if(!session_id() || !$this->session->userdata('conectado') ){
        	redirect('mine');
        }

        $data['menuPainel'] = 'painel';
		$data['compras'] = $this->Conecte_model->getLastCompras($this->session->userdata('cliente_id'));
		$data['os'] = $this->Conecte_model->getLastOs($this->session->userdata('cliente_id'));
		$data['output'] = 'conecte/painel';
		$this->load->view('conecte/template',$data);

	}

	public function conta(){
		
		if(!session_id() || !$this->session->userdata('conectado') ){
        	redirect('mine');
        }

        $data['menuConta'] = 'conta';
        $data['result'] = $this->Conecte_model->getDados();
       
        $data['output'] = 'conecte/conta';
        $this->load->view('conecte/template',$data);
	}


    public function editarDados($id = null){

        if(!session_id() || !$this->session->userdata('conectado')){
            redirect('mine');
        }

        $data['menuConta'] = 'conta';

        $this->load->library('form_validation');
        $data['custom_error'] = '';

        if ($this->form_validation->run('clientes') == false) {
            $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
        } else {
            $data = array(
                'nomeCliente' => $this->input->post('nomeCliente'),
                'documento' => $this->input->post('documento'),
                'telefone' => $this->input->post('telefone'),
                'celular' => $this->input->post('celular'),
                'email' => $this->input->post('email'),
                'rua' => $this->input->post('rua'),
                'numero' => $this->input->post('numero'),
                'bairro' => $this->input->post('bairro'),
                'cidade' => $this->input->post('cidade'),
                'estado' => $this->input->post('estado'),
                'cep' => $this->input->post('cep')
            );

            if ($this->Conecte_model->edit('clientes', $data, 'idClientes', $this->input->post('idClientes')) == TRUE) {
                $this->session->set_flashdata('success','Dados editados com sucesso!');
                redirect(base_url() . 'index.php/mine/conta');
            } else {
                
            }
        }

        $data['result'] = $this->Conecte_model->getDados();
       
        $data['output'] = 'conecte/editar_dados';
        $this->load->view('conecte/template',$data);
    }

	public function compras(){
		
		if(!session_id() || !$this->session->userdata('conectado')){
        	redirect('mine');
        }

        $data['menuVendas'] = 'vendas';
		$this->load->library('pagination');
        
        
        $config['base_url'] = base_url().'index.php/mine/compras/';
        $config['total_rows'] = $this->Conecte_model->count('vendas',$this->session->userdata('cliente_id'));
        $config['per_page'] = 10;
        $config['next_link'] = 'Próxima';
        $config['prev_link'] = 'Anterior';
        $config['full_tag_open'] = '<div class="pagination alternate"><ul>';
        $config['full_tag_close'] = '</ul></div>';
        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';
        $config['cur_tag_open'] = '<li><a style="color: #2D335B"><b>';
        $config['cur_tag_close'] = '</b></a></li>';
        $config['prev_tag_open'] = '<li>';
        $config['prev_tag_close'] = '</li>';
        $config['next_tag_open'] = '<li>';
        $config['next_tag_close'] = '</li>';
        $config['first_link'] = 'Primeira';
        $config['last_link'] = 'Última';
        $config['first_tag_open'] = '<li>';
        $config['first_tag_close'] = '</li>';
        $config['last_tag_open'] = '<li>';
        $config['last_tag_close'] = '</li>';
        	
        $this->pagination->initialize($config); 	

		$data['results'] = $this->Conecte_model->getCompras('vendas','*','',$config['per_page'],$this->uri->segment(3),'','',$this->session->userdata('cliente_id'));
       
	    $data['output'] = 'conecte/compras';
       	$this->load->view('conecte/template',$data);

	}

	public function os(){
		
		if(!session_id() || !$this->session->userdata('conectado')){
        	redirect('mine');
        }

        $data['menuOs'] = 'os';
		$this->load->library('pagination');
        
        
        $config['base_url'] = base_url().'index.php/mine/os/';
        $config['total_rows'] = $this->Conecte_model->count('os',$this->session->userdata('cliente_id'));
        $config['per_page'] = 10;
        $config['next_link'] = 'Próxima';
        $config['prev_link'] = 'Anterior';
        $config['full_tag_open'] = '<div class="pagination alternate"><ul>';
        $config['full_tag_close'] = '</ul></div>';
        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';
        $config['cur_tag_open'] = '<li><a style="color: #2D335B"><b>';
        $config['cur_tag_close'] = '</b></a></li>';
        $config['prev_tag_open'] = '<li>';
        $config['prev_tag_close'] = '</li>';
        $config['next_tag_open'] = '<li>';
        $config['next_tag_close'] = '</li>';
        $config['first_link'] = 'Primeira';
        $config['last_link'] = 'Última';
        $config['first_tag_open'] = '<li>';
        $config['first_tag_close'] = '</li>';
        $config['last_tag_open'] = '<li>';
        $config['last_tag_close'] = '</li>';
        	
        $this->pagination->initialize($config); 	

		$data['results'] = $this->Conecte_model->getOs('os','*','',$config['per_page'],$this->uri->segment(3),'','',$this->session->userdata('cliente_id'));
       
	    $data['output'] = 'conecte/os';
       	$this->load->view('conecte/template',$data);
	}

	public function visualizarOs($id = null){
		
		if(!session_id() || !$this->session->userdata('conectado')){
        	redirect('mine');
        }

        $data['menuOs'] = 'os';
		$this->data['custom_error'] = '';
        $this->load->model('mapos_model');
        $this->load->model('os_model');
        $data['result'] = $this->os_model->getById($this->uri->segment(3));
        $data['produtos'] = $this->os_model->getProdutos($this->uri->segment(3));
        $data['servicos'] = $this->os_model->getServicos($this->uri->segment(3));
        $data['emitente'] = $this->mapos_model->getEmitente();

        if($data['result']->idClientes != $this->session->userdata('cliente_id')){
            $this->session->set_flashdata('error', 'Esta OS não pertence ao cliente logado.');
            redirect('mine/painel');
        }

        $data['output'] = 'conecte/visualizar_os';
        $this->load->view('conecte/template', $data);

    }
    
    public function imprimirOs($id = null){
        
        if(!session_id() || !$this->session->userdata('conectado')){
            redirect('mine');
        }

        $data['menuOs'] = 'os';
        $this->data['custom_error'] = '';
        $this->load->model('mapos_model');
        $this->load->model('os_model');
        $data['result'] = $this->os_model->getById($this->uri->segment(3));
        $data['produtos'] = $this->os_model->getProdutos($this->uri->segment(3));
        $data['servicos'] = $this->os_model->getServicos($this->uri->segment(3));
        $data['emitente'] = $this->mapos_model->getEmitente();

        if($data['result']->idClientes != $this->session->userdata('cliente_id')){
            $this->session->set_flashdata('error', 'Esta OS não pertence ao cliente logado.');
            redirect('mine/painel');
        }

        $this->load->view('conecte/imprimirOs', $data);

    }

	public function visualizarCompra($id = null){
		
		if(!session_id() || !$this->session->userdata('conectado') ){
        	redirect('mine');
        }

        $data['menuVendas'] = 'vendas';
		$data['custom_error'] = '';
        $this->load->model('mapos_model');
        $this->load->model('vendas_model');
        $data['result'] = $this->vendas_model->getById($this->uri->segment(3));
        $data['produtos'] = $this->vendas_model->getProdutos($this->uri->segment(3));
        $data['emitente'] = $this->mapos_model->getEmitente();

        if($data['result']->clientes_id != $this->session->userdata('cliente_id')){
            $this->session->set_flashdata('error', 'Esta OS não pertence ao cliente logado.');
            redirect('mine/painel');
        }


        $data['output'] = 'conecte/visualizar_compra';
        $this->load->view('conecte/template', $data);
    }
    
    public function imprimirCompra($id = null){
		
		if(!session_id() || !$this->session->userdata('conectado') ){
        	redirect('mine');
        }

        $data['menuVendas'] = 'vendas';
		$data['custom_error'] = '';
        $this->load->model('mapos_model');
        $this->load->model('vendas_model');
        $data['result'] = $this->vendas_model->getById($this->uri->segment(3));
        $data['produtos'] = $this->vendas_model->getProdutos($this->uri->segment(3));
        $data['emitente'] = $this->mapos_model->getEmitente();

        if($data['result']->clientes_id != $this->session->userdata('cliente_id')){
            $this->session->set_flashdata('error', 'Esta OS não pertence ao cliente logado.');
            redirect('mine/painel');
        }


        $this->load->view('conecte/imprimirVenda', $data);
	}


    public function minha_ordem_de_servico($y = null, $when = null){

        if(($y != null) && (is_numeric($y) )){

            // Do not forget this number -> 44023
            // function sending => y = (7653 * ID) + 44023
            // function recieving => x = (y - 44023) / 7653

            // Example ID = 2 | y = 59329

            $y = intval($y);
            $id = ($y - 44023) / 7653;


            $data['menuOs'] = 'os';
            $this->data['custom_error'] = '';
            $this->load->model('mapos_model');
            $this->load->model('os_model');
            $data['result'] = $this->os_model->getById($id);
            if($data['result'] == null){
                // Resposta em caso de não encontrar a ordem de serviço
                //$this->load->view('conecte/login');

            }
            else{

                $data['produtos'] = $this->os_model->getProdutos($id);
                $data['servicos'] = $this->os_model->getServicos($id);
                $data['emitente'] = $this->mapos_model->getEmitente();

                $this->load->view('conecte/minha_os', $data);

            }


        }

        else{
            // Resposta em caso de não encontrar a ordem de serviço
            //$this->load->view('conecte/');
        }

    }


    // Cadastro de OS pelo cliente
    public function adicionarOs(){

        $this->load->library('form_validation');

        $this->form_validation->set_rules('descricaoProduto', 'Descrição', 'required');
        $this->form_validation->set_rules('defeito', 'Defeito');
        $this->form_validation->set_rules('observacoes', 'Observações');


        if ($this->form_validation->run() == false) {
            $this->data['custom_error'] = (validation_errors() ? true : false);
        } else {

            $id = null;
            $usuario = $this->db->query('SELECT usuarios_id, count(*) as down FROM os GROUP BY usuarios_id ORDER BY down LIMIT 1')->row();
            if($usuario->usuarios_id == null){
                $this->db->where('situacao',1);
                $this->db->limit(1);
                $usuario = $this->db->get('usuarios')->row();

                if($usuario->idUsuarios == null){
                    $this->session->set_flashdata('error','Ocorreu um erro ao cadastrar a ordem de serviço, por favor contate o administrador do sistema.');
                    redirect('mine/os');
                }else{
                    $id = $usuario->idUsuarios;
                }
            }else{
                $id = $usuario->usuarios_id;
            }

            $data = array(
                'dataInicial' => date('Y-m-d'),
                'clientes_id' => $this->session->userdata('cliente_id'), //set_value('idCliente'),
                'usuarios_id' => $id, //set_value('idUsuario'),
                'dataFinal' => date('Y-m-d'),
                'descricaoProduto' => $this->input->post('descricaoProduto'),
                'defeito' => $this->input->post('defeito'),
                'status' => 'Aberto',
                'observacoes' => set_value('observacoes'),
                'faturado' => 0
            );

            if ( is_numeric($id = $this->Conecte_model->add('os', $data, true)) ) {
                $this->session->set_flashdata('success','OS adicionada com sucesso!');
                redirect('mine/detalhesOs/'.$id);

            } else {

                $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
            }
        }

        $data['output'] = 'conecte/adicionarOs';
        $this->load->view('conecte/template', $data);
    }

    public function detalhesOs($id = null){
        if(is_numeric($id) && $id != null){ 

            $this->load->model('mapos_model');
            $this->load->model('os_model');

            $this->data['result'] = $this->os_model->getById($id);
            $this->data['produtos'] = $this->os_model->getProdutos($id);
            $this->data['servicos'] = $this->os_model->getServicos($id);
            $this->data['anexos'] = $this->os_model->getAnexos($id);

            if($this->data['result']->idClientes != $this->session->userdata('cliente_id')){
                $this->session->set_flashdata('error', 'Esta OS não pertence ao cliente logado.');
                redirect('mine/painel');
            }
            
            $this->data['output'] = 'conecte/detalhes_os';
            $this->load->view('conecte/template', $this->data);
        }
        else{
            echo "teste";
        }
    }

    // método para clientes se cadastratem
    public function cadastrar()
    {

        $this->load->model('clientes_model','',TRUE);
        $this->load->library('form_validation');
        $this->data['custom_error'] = '';

        if ($this->form_validation->run('clientes') == false) {
            $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
        } else {
            $data = array(
                'nomeCliente' => set_value('nomeCliente'),
                'documento' => set_value('documento'),
                'telefone' => set_value('telefone'),
                'celular' => $this->input->post('celular'),
                'email' => set_value('email'),
                'rua' => set_value('rua'),
                'numero' => set_value('numero'),
                'bairro' => set_value('bairro'),
                'cidade' => set_value('cidade'),
                'estado' => set_value('estado'),
                'cep' => set_value('cep'),
                'dataCadastro' => date('Y-m-d')
            );

            if ($this->clientes_model->add('clientes', $data) == TRUE) {
                $this->session->set_flashdata('success','Cliente adicionado com sucesso!');
                redirect(base_url() . 'index.php/mine');
            } else {
                $this->session->set_flashdata('success','Cliente adicionado com sucesso!');
            }
        }
        $data = '';
        $this->load->view('conecte/cadastrar', $data);   
    }

}

/* End of file conecte.php */
/* Location: ./application/controllers/conecte.php */

 

Editado por Samuel Costa2018
Deixar mais claro o que se trata

Compartilhar este post


Link para o post
Compartilhar em outros sites
21 horas atrás, Samuel Costa2018 disse:

[...]Sou leigo em relação a esse assunto, por isso preciso da ajuda de vocês[...]

 

A minha dúvida quanto a questão é: Você quer aprender ou quer o problema resolvido?

 

Dependendo da resposta, posso redirecionar aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quero um auxílio pois já tentei diversos códigos com essa função e não funcionou e já tou quase desistindo... se puder me dar alguma dica eu fico agradecido. (Leigo que eu falo é ter o básico do básico)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao que parece,  você está utilizando o CodeIgniter. Ele possui a própria biblioteca de envio de e-mail: https://www.codeigniter.com/user_guide/libraries/email.html

 

Se é para enviar o e-mai após o login, adicione dentro deste IF:

if(count($cliente) > 0){
    $dados = array('nome' => $cliente->nomeCliente, 'cliente_id' => $cliente->idClientes,'conectado' => TRUE);
    $this->session->set_userdata($dados);

    if($ajax == true){
        $json = array('result' => true);
        echo json_encode($json);
    }
    else{
        redirect(site_url().'/mine');
    }               
}

Ele fica no método login.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De que forma você adiciou? Mostre-nos o que fez até o momento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Werlang
      Olá. Sou o criador da plataforma gladCode, onde você cria gladiadores desde sua aparência, atributos físicos e mentais até a programação de seu comportamento, e os coloca para lutar contra gladiadores de outros jogadores em uma arena virtual.A programação do comportamento deles conta com uma série de funções, e uma vez dentro da arena eles se comportam de maneira autônoma, sem intervenção de seu mestre.
      Segue o link para o vídeo promocional da plataforma:
       
       
      Visitem a gladCode no site https://gladcode.tk
      Ou a página do Facebook: https://www.facebook.com/gladcode/
      Seria uma honra ter a visita de vocês no site, bem como esclarecer todas suas dúvidas.
       
    • Por MateusOFCZ
      Olá, gostaria de saber como eu faço para mostrar uma imagem diferente ao acessar o site...
      Eu precisaria mostrar a imagem linkada, ou seja, quando clickar na imagem ela levará você para um link, porém cada imagem tem um link diferente, como faço isso?
      Caso você não tenha entendido seria uma espécie de "anúncios" em meu site, toda vez que reentrar nele irá mostrar uma imagem diferente, e essa imagem será linkada, e os links também serão diferentes um do outro.
    • Por Loconarrativo
      Bom, no meu form, eu peço para o cliente digitar um valor (esse valor em reais), mas para continuar eu preciso me certificar que a variável que contem o valor, tenha 16 dígitos ao total, então se a pessoa digita uma 1000.00, eu preciso completar com 9 zeros a esquerda (fica assim 0000000001000.00), para eu saber quantos dígitos tem na variável, eu faço
      $i = strlen( $_POST['valor']);   ai eu faço
      $u = 8 - $i ; eu tenho o numero de zeros que preciso colocar a esquerda, mas como eu transformo isso em vários zeros? 
    • Por scapedzn
      Olá pessoas! Estou com a seguinte dúvida. Estou fazendo um sistema que é um site onde será possível o cadastro de cursos online. O meu problema é o seguinte. O meu usuário logado salva junto com o nome do curso que ele enviou para o banco dados sua id única de cadastro. Portanto sempre quando ele adicionar qualquer curso, exemplo: aula 1 , junto com isso salva a mesma id de quando ele criou a conta dele, exemplo: 33. Sempre quando ele adicionar novo curso essa id é salva junto para eu saber qual usuário adicionou o novo curso. Porém eu gostaria de listar todos os cursos que o usuário cadastrou para ele mesmo ver. Ou seja, tenho de usar essa ID única dele para pegar todos os nomes de curso que ele adicionou. Não posso dar Select em toda a tabela pois se não ele irá trazer informações que outros usuários adicionaram. Gostaria de listar apenas as informações relacionadas diretamente com o id dele. Não sei se ficou Claro. Mas me ajudem por favor
    • Por hoppus182
      Estou desenvolvendo um trabalho para meu curso baseado no filme Black Mirror: Bandersnatch da Netflix, seguindo os moldes onde vão ser dados duas opção em forma de banner pra pessoa e se ela não escolher em 10 segundos, uma opção abre automaticamente.
      O código que gera a imagem esta a baixo, porém não consigo fazer com que uma opção seja selecionada e abra automaticamente após o final do tempo 

      <script type="text/javascript">
           ad_width = "300",
           ad_height = "250";
      </script>
      <script type="text/javascript" src="..."></script>
      <noscript><iframe src="..." width="300" height="250" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></noscript>
×

Informação importante

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