CodeIgniter를 기반으로하는 웹 사이트의 범용 헤더를 만들려고하는데 '로그인'링크를 전환 할 코드를 찾는 데 문제가 있습니다. .CodeIgniter에서 "Login"버튼을 사용자 이름으로 바꾸는 방법
이if(!$this->session->userdata($userSessionVar))
{
$data['header_output'] = "<li><a href='" . base_url() . "index.php/main/login'>Login</a></li>";
} else
{
$data['header_output'] = $this->session->data('userFirstName');
}
가 (난이 불완전 실현 기반 : 사용자가 로그인 한 후 (프로필 페이지에 대한 링크) 사용자 이름 컨트롤러 기능에서
, 나는 다음과 같은 코드를 시도했습니다 내 디자인에서는 테스트하는 것만으로 충분합니다.) $ userSessionVar는 로그인 한 후 "로그인"한 값을 보유하고 있습니다. 아마도 가장 좋은 방법은 아닙니다. 그리고 그것은 작동하지 않는 것 같습니다 (그리고 $ 데이터를보기로 전달합니다).
function check_login()
{
$CI =& get_instance();
$userSessionVar = 'logged_in';
if(! $CI->session->userdata($userSessionVar))
{
return false;
} return true;
}
을 그리고는 $ header_output 변수를 구성하기 위해 참/거짓 반환을 사용 : 나는 또한 사용자 지정 기능을 시도했습니다. 이들 중 어느 것도 작동하지 않는 것 같습니다. CodeIgniter를 처음 접했고 PHP/HTML/CSS 등의 중간 수준을 가지고 있습니다. 코드를 포함하지 않도록하는 방법에 대해 명확한 내용이 빠졌고 어떤 도움도 주시면 감사하겠습니다. 모든 컨트롤러 기능에서.
빠른 응답을 보내 주셔서 감사합니다. 난 주위에 내 머리를 잡으려고 - 사용자가 새 페이지를 방문 할 때마다 $ 사용자가 재설정됩니다, 또는 한 번만 그것은 사용자의 세션을 통해 지속됩니까? 그리고 모든 사용자 데이터를 세션에로드하는 것과 반대로이 기능의 장점은 무엇입니까? – tchaymore
@ tchaymore : 예, 모든 페이지로드시 데이터베이스에서 사용자 데이터를 다시로드합니다. 이것은 실행중인 다른 모든 데이터베이스 쿼리와 비교할 때 대개 사소한 것입니다. 가장 큰 장점은 다른 사용자가 설정 한 사용자 정보/권한이 요청간에 변경되는 경우 $ this-> auth-> me()가 항상 새로운 데이터를 반환한다는 것입니다. 세션에 저장하는 모든 데이터가 오래 될 수 있습니다. 또한 특히 데이터가 쿠키에 저장되는 경우 세션 데이터를 작게 유지하는 것이 좋습니다. 소규모 사이트에서이 인수는 설득력이 없을 수도 있지만, 어쨌든 코드가 더 단순 해집니다. –
설명해 주셔서 감사합니다.그러나이 코드는 "private $ user_data = false;"에 대해 "구문 분석 오류 : 구문 오류, 예기치 않은 T_PRIVATE"를 표시합니다. 선. – tchaymore