2016-06-12 8 views
0

Ich versuche PHP zu lernen und habe ein Login-System mit php-login.net (erweitertes Skript) eingerichtet. Das Skript verwendet eine Datei index.php zu überprüfen, ob der Benutzer in (über login.php) angemeldet istLearning PHP - Wie man die Datenbank von gelogged_in.php abfragt?

Innerhalb login.php, das Skript verwendet eine Funktion „Database“, um die Datenbank zu verbinden, wie

$this->db_connection = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME . ';charset=utf8', DB_USER, DB_PASS); 

Ein Beispiel Abfrage wird ausgeführt, wie:

$query = $this->db_connection->prepare('UPDATE users SET username = :user_name WHERE user_id = 1'); 
$query ->bindValue(':user_name ', $user_name , PDO::PARAM_STR); 
$query ->execute(); 
if ($query_update->rowCount() == 0) { 
    // Something here 
} else { 
    // Something else here 
} 

index.php überprüft, ob der Benutzer angemeldet ist und wenn angemeldet, lädt logged_in.php

Meine Frage ist: Wie wähle ich etwas aus der Datenbank innerhalb der geloggten_in.php. Sollte ich eine neue Db-Verbindung erstellen? Wenn das so ist, wie. Ich kann $ this-> db_connection-> nicht innerhalb von logged_in.php

referenzieren Auch, was ist eine gute Quelle, um Schritt für Schritt zu lernen. Ich habe versucht, , aber das ist nicht sinnvoll für mich.

Vielen Dank!

+0

Es hängt davon ab, was "lädt" bedeutet. –

+0

Ich würde vorschlagen, http://w3schools.com Um Daten aus der Datenbank über ausgewählte Abfragen lesen –

Antwort

-1

Verwenden Sie PHP-Frameworks. so dass es schnell und einfach geht. Hier anmelden ive Controller in codeigniter Framework verwendet

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



class Login extends CI_Controller { 



    public function __construct(){ 

     parent::__construct(); 

     $this->load->model('login_model', 'lm'); 

     $this->load->model('posts_model', 'pm'); 

     date_default_timezone_set('Asia/Hong_Kong'); 

    } 



    //check password in the database 

    public function check_database($password){ 

    $username = $this->input->post('username'); 

    $result = $this->lm->login($username, $password); 

    if($result){ 

     $sess_array = array(); 

     foreach($result as $row){ 

     $sess_array = array(

         'id'=>$row->user_id, 

         'username'=>$row->username,      

        ); 

     $this->session->set_userdata('loggedIn', $sess_array); 

     } 

     return true; 

    }else{ 

     $this->form_validation->set_message('check_database', 'Invalid Username or Password.'); 

     return false; 

    } 

    } 



    public function auth(){ 

     $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean'); 

     $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_database'); 

     if($this->form_validation->run() == FALSE){ 

      $this->index(); 

     }else{ 

      redirect('post'); 

     } 



    } 



    public function index(){ 

     $data['title'] = "Login here | OkDito.ph Cebu's # 1 Buy and Sell Website"; 

     $data['great_deals'] = $this->pm->greatdeals();//get all items 



     $data['getAllPendingPosts'] = $this->pm->getAllPendingPosts(); 

     $tmp_pending = array(); 

     $tmp_pending = $data['getAllPendingPosts']; 

     if(!empty($tmp_pending)){ 

      $pending = 1; 

     } 

     else{ 

      $pending = 0; 

     } 



     $data['pending'] = $pending; 



     if($this->session->userdata('loggedIn')){ 

      $login = $this->session->userdata('loggedIn'); 

      if(!empty($login)){ 

       redirect('post'); 

      } 

     } 

     else{ 

      $this->template_lib->set_view('index_view', 'login_view', $data,'',$data); 

     } 

    } 





} 

Modell

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

/* 

* User library for the Model..all commonly used functions should be placed here 

* @author: team gabayan 

* @created: 7/1/11 

*/ 

class Login_model extends CI_Model{ 



    //check if email exist in the database 

    public function email($email){ 

     $this->db->select(

       'tbl_users.email' 

       ) 

       ->from('tbl_users') 

       ->where('email', $email); 

     $q = $this->db->get(); 

     if($q->num_rows() == 1){ 

      return $q->result(); 

     }else{ 

      return false; 

     } 

    } 

hier. Hoffe, das hilft

public function login($username, $password){ 

    $sha_password = sha1($password); 

    $this->db->select(

       'tbl_users.user_id, 

       tbl_users.username, 

       tbl_users.password, 

       tbl_users.status 

       ' 

       ) 

       ->from('tbl_users') 

       ->where('tbl_users.username', $username) 

       ->where('tbl_users.password', $sha_password); 

     $query = $this->db->get(); 

     if($query->num_rows() == 1){ 

     return $query->result(); 

     }else{ 

     return false; 

     } 

    } 

} // endclass

/Dateiende Login_model.php/

/File Location: ./application/models/login_model.php/

+0

Ihr Login-Formular ist nicht sicher. Es wird dringend davon abgeraten, 'sha' für Passwörter zu verwenden, da' sha' zu schnell ist. Sie sollten [bcrypt] (http://php.net/manual/en/function.password-hash.php) wie folgt verwenden: '$ password = password_hash ($ password, PASSWORD_DEFAULT);'. – meun5

Verwandte Themen