2017-09-26 1 views
0

Je crée un site Web dans CodeIgniter et je me demande comment je peux répercuter certaines données utilisateur en utilisant la ligne user_id et en faisant un écho sur la page de vue de profil?Obtenir les informations d'utilisateur avec code_utilisateur

Ceci est mon contrôleur auth (login et inscription)

<?php 

public function login() { 
//laad login view 

    $this->form_validation->set_rules('email', 'Email', 'required'); 
    $this->form_validation->set_rules('wachtwoord', 'Wachtwoord', 'required|min_length[5]'); 
    if ($this->form_validation->run() == TRUE) { 

     $email = $_POST['email']; 
     $wachtwoord = ($_POST['wachtwoord']); 


//check gebruiker in database 
     $this->db->select('*'); 
     $this->db->from('users'); 
     $this->db->where(array('email' => $email, 'wachtwoord' => $wachtwoord)); 
     $query = $this->db->get(); 

     $user = $query->row(); 
//Als gebruiker bestaat 
     if ($user->email) { 

//tijdelijke berichten wanneer ingelogd of inloggen niet gelukt 
      $this->session->set_flashdata("success", "U bent nu ingelogd"); 

      $_SESSION['user_logged'] = TRUE; 
      $_SESSION['user_id'] = $user->user_id; 
      $_SESSION['email'] = $user->email; 
      $_SESSION['voornaam'] = $user->voornaam; 
      $_SESSION['achternaam'] = $user->achternaam; 
      $_SESSION['woonplaats'] = $user->woonplaats; 
      $_SESSION['straat'] = $user->straat; 
      $_SESSION['huisnummer'] = $user->huisnummer; 
      $_SESSION['postcode'] = $user->postcode; 
      $_SESSION['beschrijving'] = $user->beschrijving; 
      $_SESSION['profiel_foto'] = $user->profiel_foto; 


//link naar profiel pagina 
      redirect("user/profile", "refresh"); 
     } else { 

      $this->session->set_flashdata('error', 'Invalid email or password'); 
//wanneer er een foutmelding is link weer naar de login pagina 
      redirect("https://kadokado-ferran10.c9users.io/auth/login", "refresh"); 
     } 
    } 
//laad login view 
    $this->load->view('login'); 
} 



public function register() { 

    if (isset($_POST['register'])) { 
     $this->form_validation->set_rules('email', 'Email', 'required'); 
     $this->form_validation->set_rules('voornaam', 'Voornaam', 'required'); 
     $this->form_validation->set_rules('wachtwoord', 'Wachtwoord', 'required|min_length[5]'); 
     $this->form_validation->set_rules('wachtwoord', 'Herhaal wachtwoord', 'required|min_length[5]|matches[wachtwoord]'); 
     $this->form_validation->set_rules('achternaam', 'Achternaam', 'required'); 
     $this->form_validation->set_rules('postcode', 'Postcode', 'required'); 
     $this->form_validation->set_rules('woonplaats', 'Woonplaats', 'required|min_length[3]'); 
     $this->form_validation->set_rules('beschrijving', 'Beschrijving', 'required|min_length[5]'); 
     $this->form_validation->set_rules('huisnummer', 'Huisnummer', 'required'); 
     $this->form_validation->set_rules('geboortedatum', 'Geboortedatum', 'required'); 
     $this->form_validation->set_rules('geslacht', 'Geslacht', 'required'); 
//If form validation true 
     if ($this->form_validation->run() == TRUE) { 
// echo 'form validated'; 


      $target_dir = "upload/"; 
      $target_file = $target_dir . time() . basename($_FILES["profiel_foto"]["name"]); 
      $imageFileType = pathinfo($target_file, PATHINFO_EXTENSION); 
      $imgName = time() . basename($_FILES["profiel_foto"]["name"]); 
      move_uploaded_file($_FILES["profiel_foto"]["tmp_name"], $target_file); 


//voeg gebruiker toe aan database 
      $data = array(
       'voornaam' => $_POST['voornaam'], 
       'achternaam' => $_POST['achternaam'], 
       'email' => $_POST['email'], 
       'wachtwoord' => ($_POST['wachtwoord']), 
       'startdatum' => date('Y-m-d'), 
       'postcode' => $_POST['postcode'], 
       'huisnummer' => $_POST['huisnummer'], 
       'woonplaats' => $_POST['woonplaats'], 
       'beschrijving' => $_POST['beschrijving'], 
       'geboortedatum' => $_POST['geboortedatum'], 
       'geslacht' => $_POST['geslacht'], 
       'profiel_foto' => $imgName 
      ); 
      $this->db->insert('users', $data); 

      $this->session->set_flashdata("success", "Uw account is nu geregistreerd, u kunt nu inloggen"); 
      redirect("auth/register", "refresh"); 
     } 
    } 
//Laad de registreer view 
    $this->load->view('register'); 
} 
?> 

permet donc de dire que je veux faire écho à la 2 lignes e-mail et Voornaam sur une page vue de profil. Comment puis je faire ça?

Répondre

1

il vous suffit de passer vos données dans votre contrôleur, et vous pouvez utiliser toutes les données à votre point de vue pour faire écho ce que vous voulez, les données $ doit être un tableau ou un objet:

$this->load->view('register',$data); 

Dans la vue, vous pouvez y accéder.

<?php $voornaam ?> 
<?php $email ?> 

Pour plus d'informations, vous pouvez lire la documentation officielle: https://www.codeigniter.com/user_guide/general/views.html

+0

obtenir une page blanche vierge lorsque j'essaie de charger mon fichier de profil d'affichage – lablanco

+0

ini_set ('display_errors', 1); ini_set ('display_startup_errors', 1); error_reporting (E_ALL); Voir ce lien pour plus d'informations: https://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display –

+0

activer toutes ces options, que j'ai mentionné ci-dessus. –

0
$this->load->view('register',$data); 

Mettez toutes les valeurs sous forme de tableau dans votre contrôleur.

Dans le fichier de vue. vous pouvez utiliser comme ci-dessous

<?=$voornaam ?> 
<?=achternaam ?> 
+0

Vous obtenez une page blanche vierge savez-vous pourquoi? – lablanco

+0

Avez-vous activé les erreurs? capable de déboguer? – Bira

+0

Comment activer les erreurs CI? – lablanco

0

Vous pouvez coller le code dans votre modèle

function get_user_by_id($id = null) 
{ 
    if($id!= null) 
    { 
     $condition = array('id' => $id); 
     $result = $this->main_model->get($condition, 'table-name'); 
      foreach($result as $row) 
      { 
       return $row->fname.' '.$row->lname; 
      } 
    } 
    else 
    { 


    $data = $this->session->userdata('session-name'); 
    $result = $this->main_model->get(array('id' => $data['id']), 'table-name'); 
    foreach($result as $row) 
    { 
     return $row->fname.' '.$row->lname; 
    } 
    } 
} 

et appeler aussi comme ci-dessous

echo $this->model_name->get_user_by_id(5); 

Si vous passer l'identifiant de l'utilisateur puis il retourne le nom d'utilisateur sinon il retourne le nom d'utilisateur de la session et vous devez changer le nom du champ de la base de données en fonction de vos besoins