Link GitHub: Atestat-CodeIgniter
Salutare si bine v-am regasit! Astazi din pacate nu vom trece mai departe cu website-ul nostru deoarece am primit cateva comentarii in ultimul video in care ma trageati de maneca pentru ca am trecut mult prea rapid peste partea cu inregistrarea si autentificare.
Asa ca pentru a ma asigura ca ati inteles bine ultimul episod, astazi vom rezolva impreuna tema de data trecuta si vom creea o noua pagina de contact. Pagina de contact nu va fi functionala deoarece nu avem configurat un server care sa trimita e-mail-uri. Daca doriti sa testati partea cu e-mail-ul, va recomandam tutorialul lui VlogDeIT: Cum ne putem face un website public GRATUIT cu 000webhost.com
Butonul de logout
Primul subpunct din tema de data trecuta a fost realizarea unui buton de logout. Am vorbit in ultimul episod despre sesiuni si rolul acestora intr-o aplicatie web. Pentru a realiza functia de logout, tot ceea ce trebuie sa facem este sa stergem tot ceea ce am stocat in sesiune pana in prezent.
Daca userul nu are nimic setat “pe sesiune” inseamna ca este un user nou-venit sau un user ce tocmai s-a delogat.
public function logout() { $this->session->sess_destroy(); redirect('/login'); }
Afisarea rolului unui utilizator
Pentru a afisa rolul unui utilizator trebuie mai intai sa il stocam undeva. Asadar, atunci cand logarea s-a efectuat cu succes, voi stoca in sesiune si aceasta variabila (pe langa cele salvate deja anterior).
$uresult = $this->user_model->get_user($username, $parola); $sess_data = array('rol' => $uresult[0]->rol); $this->session->set_userdata($sess_data);
Acum ca am salvat rolul utilizatorului, trebuie sa il afisam in pagina noastra protejata. Avem doua metode: prima metoda este sa afisam direct in pagina variabila stocata pe sesiune, iar cea de a doua metoda este sa transimtem informatia atunci cand incarcam view-ul.
$data = new stdClass(); $data->rol = $this->session->userdata('rol'); $this->load->view('pages/protected', $data);
Mai departe trebuie sa afisam rolul, iar CodeIgniter ne vine in ajutor, deoarece are o scurtatura care ne permite sa nu mai scriem “echo” de fiecare data.
Rolul: <?=$rol?>
Pagina contact
Acum vom face pagina de contact. Procedeul seamana izbitor de mult cu cel al inregistrarii unui utilizator. Primul lucru pe care il facem este sa creeam un nou model (desii nu este necesar acest pas) – deoarece putem folosii un model deja existent.
<?php class Contact_model extends CI_Model { function insereaza_contact($data) { return $this->db->insert("contact", $data); } }
Iar mai departe vom scrie functia process_contact.
$this->form_validation->set_rules('name', 'Nume', 'trim|required|alpha|min_length[3]|max_length[30]'); $this->form_validation->set_rules('subject', 'Subiect', 'trim|required|alpha|min_length[3]|max_length[30]'); $this->form_validation->set_rules('email', 'E-Mail', 'trim|required|valid_email|min_length[3]|max_length[30]'); $this->form_validation->set_rules('message', 'Mesaj', 'trim|required|min_length[3]|max_length[30]');
Verificam mai intai ca toate campurile sa indeplineasca conditiile mentionate de noi.
Mai departe salvam informatiile introduse in formular si verificam daca ele se insereaza cu succes in tabel.
$contact_email = $this->input->post('email'); $contact_nume = $this->input->post('name'); $contact_subiect = $this->input->post('subject'); $contact_mesaj = $this->input->post('message'); $data = array( 'nume' => $contact_nume, 'email' => $contact_email, 'subiect' => $contact_subiect, 'mesaj' => $contact_mesaj ); $this->contact_model->insereaza_contact($data)