wordpress wp_signon 함수가 작동하지 않습니다.
사용자 로그인을 위해 wp_signon() 기능을 사용하고 있습니다.이렇게 하고 있습니다.
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = true;
$user = wp_signon( $creds, false );
로그인 후 홈페이지로 사용자를 보내고 싶습니다.
그러나 다음과 같은 오류가 발생합니다.
경고: 헤더 정보 - 에 의해 이미 전송된 헤더 정보(E:\xampp\htdocs\wpmoodle\wp-content\themes\twenten\header에서 출력이 시작됨)를 수정할 수 없습니다.php:12)의 E:\xampp\htdocs\wpmoodle\wp-incluggable.690번 전화로 php.
미리 감사드립니다.
wp_signon()
브라우저로 실제 페이지를 보내기 전에 실행해야 합니다.
그 이유는 어떤 부분이wp_signon()
인증 쿠키를 설정하는 것입니다.이것은 "Set-Cookie:..." 헤더를 출력함으로써 실행됩니다. -- 의 690 행을 보면,pluggable.php
, 당신의 오류가 어디에서 온 것인지, 당신은 그 선이 쿠키를 설정한다는 것을 알게 될 것입니다.
그래서.wp_signon()
머리글을 출력합니다. 머리글은 항상 내용보다 먼저 출력되어야 하기 때문에 이미 어떤 내용도 이미 전송할 수 없습니다.
그러나 오류는 당신이 이미 일부 출력을 보냈다는 것을 나타냅니다. -- 의 12번째 줄에.header.php
, 아마도 표준 WordPress 테마의 첫번째 HTML 중 일부일 것입니다.
이것은 기본적으로 당신이 당신의 몸을 움직일 필요가 있다는 것을 나타냅니다.wp_signon()
페이지 내용이 전송되기 전에 헤더를 출력할 수 있도록 워드프레스 처리 초기에 호출합니다.
필요한 사람이 있다면 다음은 제 해결책입니다.
function custom_login() {
if (isset($_POST['submit'])) {
$login_data = array();
$login_data['user_login'] = sanitize_user($_POST['username']);
$login_data['user_password'] = esc_attr($_POST['password']);
$user = wp_signon( $login_data, false );
if ( is_wp_error($user) ) {
echo $user->get_error_message();
} else {
wp_clear_auth_cookie();
do_action('wp_login', $user->ID);
wp_set_current_user($user->ID);
wp_set_auth_cookie($user->ID, true);
$redirect_to = $_SERVER['REQUEST_URI'];
wp_safe_redirect($redirect_to);
exit;
}
}
}
add_action( 'after_setup_theme', 'custom_login' );
언급URL : https://stackoverflow.com/questions/5335833/wordpress-wp-signon-function-not-working
'programing' 카테고리의 다른 글
워드프레스 - 게시물 카테고리를 추가하려면 페이지 새로 고침이 필요합니다. (0) | 2023.10.02 |
---|---|
특정 테이블 이름을 사용하는 Oracle 보기 목록 (0) | 2023.10.02 |
해시 및 범위 기본 키란 무엇입니까? (0) | 2023.10.02 |
Oracle Apex : PL/SQL Block의 자바스크립트 코드 (0) | 2023.10.02 |
Wordpress - 현재 범주 부모 가져오기 (0) | 2023.10.02 |