2017-09-26 11 views
0

私はCodeIgniterでWebサイトを作っていますが、user_id行を使用してユーザーデータをエコーし​​て、プロファイルビューページにエコーする方法が不思議です。user_idでユーザー情報を取得するcodeigniter

これは、だから私は、プロファイルビューページに2行のメールとvoornaamをエコーし​​たいと言うことができます私の認証コントローラ(ログインと登録)

<?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'); 
} 
?> 

です。どうやってやるの?

答えて

1

のように使用することができます。

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

あなたはそれにアクセスできます。詳しい情報については

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

あなたは公式ドキュメント読むことができます: はhttps://www.codeigniter.com/user_guide/general/views.html

+0

ビュープロファイルファイルを読み込もうとすると空白のページが表示される – lablanco

+0

ini_set( 'display_errors'、1);ini_set( 'display_startup_errors'、1); error_reporting(E_ALL); 詳細については、このリンクを参照してください:https://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display –

+0

上記のすべてのオプションをオンにしてください。 –

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

コントローラーにすべての値を配列として入れます。

ビューファイル内。あなたは自分のコントローラにデータを渡すために、次にあなたが欲しいものは何でもエコーするためにあなたのビューにすべてのデータを使用することができ、$データが配列またはオブジェクトである必要があります持って怒鳴る

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

空白のページが表示される理由は何ですか? – lablanco

+0

あなたはエラーを有効にしておきますか?デバッグできますか? – Bira

+0

CIエラーをオンにするにはどうすればよいですか? – lablanco

0

あなたは、あなたのモデル

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; 
    } 
    } 
} 

にコードを貼り付けしても呼び出すことができますが好きな人であれば

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

以下それ以外の場合はusernameを返します。セッションのユーザー名を に戻し、必要に応じてデータベースのフィールド名を変更する必要があります。

関連する問題