Resposta Automática de Email
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 /
Discussão (6)
Carregando comentários...