Klient wymaga, aby wszystkie żądania GET/POST były rejestrowane i przechowywane przez 90 dni dla ich aplikacji. Napisałem HOOK, który wydaje się rejestrować niektóre z GETS/POSTS, ale jest mniej danych, niż się spodziewałem. Na przykład przy przesyłaniu danych formularzy wpisy nie są umieszczane w dzienniku. Czy ktoś napisał coś podobnego, co działa?Codeigniter - haczyk do zalogowania GET/POST REQUESTS
Oto moja wersja tej pory:
class Logging {
function __construct() {
$this->CI =& get_instance();
}
function index() {
$this->CI->load->model('Logging_m');
$this->CI->load->model('Portal_m');
//get POST and GET values for LOGGING
$post = trim(print_r($this->CI->input->post(), TRUE));
$get = trim(print_r($this->CI->input->get(), TRUE));
$this->CI->Logging_m->logPageView(array(
'portal_id' => $this->CI->Portal_m->getPortalId(),
'user_id' => (!$this->CI->User_m->getUserId() ? NULL : $this->CI->User_m->getUserId()),
'domain' => $_SERVER["SERVER_NAME"],
'page' => $_SERVER["REQUEST_URI"],
'post' => $post,
'get' => $get,
'ip' => $this->CI->input->ip_address(),
'datetime' => date('Y-m-d H:i:s')
));
}
}
Dane te są przechowywane w modelu o nazwie „Logging_m”, który wygląda tak:
<?php
class Logging_m extends CI_Model {
function __construct() {
parent::__construct();
}
function logPageView($data) {
$this->db->insert('port_logging', $data);
}
}
/* End of file logging_m.php */
/* Location: ./application/models/logging_m.php */
Czy możesz opublikować formularz, w którym brakuje jego działań. –
Interesujące pytanie +1. Czy możesz zrobić var_dump z formularza wejściowego i opublikować go obok logu dla tego samego wejścia, abyśmy mogli odszukać różnicę. – WebweaverD
Czy wszystkie wartości w tablicach są ustawione zgodnie z oczekiwaniami, czy jest to tylko informacja GET/POST? Ponadto, jestem po prostu ciekawy, dlaczego używasz print_r, aby zwrócić tablicę $ _POST, gdy $ this-> input-> post() już zwraca dane. Wydaje się, że nie czyścisz danych, tylko je przycinasz. To po prostu wydaje się zbędne. –