Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniel_Portilho

Not Acceptable - 406

Recommended Posts

Prezados, bom dia!

Criei uma página na qual o usuário preenche o nome e e-mail. Esses dados são gravados num banco e em seguida um email é enviado e ele.

Neste email contém um link que, ao clicar, aponta para uma página que faz a seguinte verificação:

• Se o usuario estiver acessando via celular, a página o redirecionará para download de um arquivo EPUB (formato de ebook).

• Se o usuario estiver acessando via desktop, a página o redirecionará para download de um arquivo PDF.

--

O PROBLEMA é que esses dois últimos redirecionamentos estão se comportando de forma estranha. Está dando o erro 406 - not acceptable.

Já inseri esta instrução no meu htaccess, mas não funcionou:

<IfModule mod_security.c>
   SecFilterEngine Off
   SecFilterScanPOST Off
</IfModule>

Alguma luz??

Compartilhar este post


Link para o post
Compartilhar em outros sites

A quem precisar, consegui resolver!!!

Antes minha página fazia a verificação (se o user era dispositivo movel ou desktop) e o download via javascript.

Apaguei tudo e refiz só com PHP.

$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$ipad = strpos($_SERVER['HTTP_USER_AGENT'],"iPad");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
$symbian =  strpos($_SERVER['HTTP_USER_AGENT'],"Symbian");

if ($iphone || $ipad || $android || $palmpre || $ipod || $berry || $symbian == true) {

	/* Se este dispositivo for portátil, o usuário baixará o arquivo.epub */
	
	// Define o tempo máximo de execução em 0 para as conexões lentas
	set_time_limit(0);
	
	$aquivoNome = 'arquivo.epub'; // nome do arquivo que será enviado p/ download
	header('Content-Description: File Transfer');
	header('Content-Type: application/octet-stream');
	header('Content-Disposition: attachment; filename="'.basename($aquivoNome).'"'); 
	header('Content-Length: ' . filesize($aquivoNome));
	readfile($aquivoNome);
}
else {
	/* Se for computador (desktop), o usuário baixará o arquivo.pdf */
	
	// Define o tempo máximo de execução em 0 para as conexões lentas
	set_time_limit(0);
	
	$aquivoNome = 'arquivo.pdf'; // nome do arquivo que será enviado p/ download
	header('Content-Description: File Transfer');
	header('Content-Type: application/octet-stream');
	header('Content-Disposition: attachment; filename="'.basename($aquivoNome).'"'); 
	header('Content-Length: ' . filesize($aquivoNome));
	readfile($aquivoNome);
}

Desta forma sanei o problema do Error 406, NOT ACEPTABLE!

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.