Suporte » Desenvolvendo com WordPress » Não gravar senha de página protegida.

  • Resolvido Paradise

    (@birobas)


    Olá,

    Criei uma página protegida por senha e está funcionando normalmente, mas eu quero que após sair da página sempre solicitar a senha para acessar novamente, hoje quando digito a senha ela fica gravada não sei se é cookie ou cache e não quero isso.

    Quero que sempre que acessar a página solicite a senha.

    Alguém poderia me ajudar nessa?

Visualizando 12 respostas - 1 até 12 (de um total de 12)
  • Moderador Felipe Elia

    (@felipeelia)

    Oi @birobas,

    Você pode usar o seguinte código no functions.php ou em um plugin para que a senha funcione somente durante a sessão do usuário, isto é, para que ela dure enquanto o navegador estiver aberto:

    function wpbr_78253_post_password_expires() {
    	return 0;
    }
    add_filter( 'post_password_expires', 'wpbr_78253_post_password_expires' );

    Se você quiser que a página seja exibida uma única vez, isto é, que o usuário precise digitar a senha novamente a cada vez que recarregar a página, use isto aqui:

    function wpbr_78253_post_password_expires() {
    	setcookie( 'wp-expire_postpass', 1, 0, COOKIEPATH );
    	return 0;
    }
    add_filter( 'post_password_expires', 'wpbr_78253_post_password_expires' );
    
    function wpbr_78253_init() {
    	if ( 1 == $_COOKIE['wp-expire_postpass'] ) {
    		setcookie( 'wp-postpass_' . COOKIEHASH, '', 0, COOKIEPATH );
    	}
    }
    add_action( 'init', 'wpbr_78253_init' );

    Testei aqui e funcionou direitinho. Você vai precisar limpar o cache do seu navegador para testar, ok?

    Não esqueça de voltar em caso de dúvida ou, se for o caso, para marcar seu tópico como resolvido.

    Bom dia Felipe.

    Inclui o código no arquivo functions. Porem meu site saiu fora do ar, tem algum lugar especifico onde colocar o codigo no arquivo?

    Atenciosamente

    Moderador Felipe Elia

    (@felipeelia)

    Oi @thomazlucas,

    Qual código você incluiu e o que aconteceu com o seu site? Tela branca?

    o segundo, o que faz com que o usuário precise digitar a senha novamente a cada vez que recarregar a página.

    Moderador Felipe Elia

    (@felipeelia)

    e o que aconteceu com o seu site? Tela branca?

    Aparece:

    Esta página não está funcionando
    HTTP ERROR 500

    Moderador Felipe Elia

    (@felipeelia)

    Você vai precisar saber o que está causando esse erro 500, para isso dê uma olhada nesta página da documentação.

    Para imprimir na tela você pode tentar usar o seguinte código no seu wp-config.php (logo no começo)

    define('WP_DEBUG', true);
    define('WP_DEBUG_DISPLAY', true);
    @ini_set('display_errors',1);

    pra mim apareceu isso aqui:

    Notice: Use of undefined constant REQUEST_URI – assumed ‘REQUEST_URI’ in /home/ihomeinc/public_html/wp-content/themes/composer-child/functions.php on line 73

    Moderador Felipe Elia

    (@felipeelia)

    Isso é só um Notice, que não deveria afetar o funcionamento do seu site.

    Você só acrescentou o segundo bloco de código ali em cima e deu esse erro 500? Tirando o código funciona normalmente?

    exatamente, ai eu tiro o código ele volta ao normal.

    Moderador Felipe Elia

    (@felipeelia)

    Entendi… resolve esse Notice aí e tenta ver se o erro vai mudando até se referir a esse trecho mesmo, é o jeito.

    Criador do tópico Paradise

    (@birobas)

    Olá @felipeelia, @thomazlucas,

    Eu resolvi esse problema da seguinte forma, eu criei um arquivo onde eu verifico a senha chamado senha.php e coloquei o seguinte código:

    <?php 
    
    	$Senha = '123'; // aqui tu coloca a senha que deseja
    
    	if(isset($_POST['entra'])) {
    		extract($_POST);
    		if($senha=="$Senha") {
    		echo "<script>
    		location.href='http://seusite.com.br/pagina/'; // Aqui e página para onde será direcionado o usuário
    		</script>";
    		} else {
    		echo "<script>
    		alert('Dados inválidos');
    		location.href='?';
    		</script>";
    		}
    	}
    ?>
    
    <form method="POST" action="">
    	<p><input name="senha" type="password"></p>
    	<p><input value="Entrar" type="submit" name="entra"></p>
    </form>

    e chamo esse arquivo em uma página com o <?php include("senha.php"); ?> e pronto!

    Espero ter ajudado!

Visualizando 12 respostas - 1 até 12 (de um total de 12)
  • O tópico ‘Não gravar senha de página protegida.’ está fechado para novas respostas.