Ir ao conteúdo

Problema depois de ter passado pro host


eric123

Posts recomendados

Postado

Olá pessoal, passei meu site para o modelo MVC. E ontem depois de algumas modificações mandei ele para a hospedagem. O estranho é q quando o usuario vai logar e logo "entra", o sistema redireciona para a pagina "?controle=Login&acao=autenticar" e fica a pagina em branco.

Suspeito daqueles espaços em branco q ficam antes do "<?php", porém realmente encontrei num arquivo(LoginController.php), que é responsavel pela autenticação, um caractere diferente antes do <?php, identifiquei-o pelo netBeans e em seguida apaguei e salvei, mandei pro host e continuou com o mesmo problema. Até ja abri outros arquivos do site e também abri no gedit e notepade++, mas nada de dar certo!

Alguem me ajuda nisso??

Obs.: Não é problema por causa do MVC, pois ja funcionava bem antes de eu fazer algumas alterações em algumas classes, tanto que roda em minha máquina local, mas ao subir pro host não!

  • Membro VIP
Postado

Como você pode ter tanta certeza de que não é problema da MVC? Como ela está estruturada? O arquivo .htaccess foi reconfigurado ao subir pro host? A própria MVC tem alguma configuração?

Por ex, na minha MVC eu tenho algo assim:

Eu defino o projeto (diretório raiz) do meu sistema, além de fazer o redirecionamento também pelo mesmo diretório.

No localhost fica:

http://localhost/projeto

Já no online, eu não quero que apareça "projeto", portanto configuro diferente. No online ficaria apenas

http://endereco.com.br/

Você precisa ir no controle e debugar. Colocar um die('teste'); na primeira linha da controle que está (ou deveria estar) sendo chamada. Se não aparecer, ela não está sendo chamada. Aí você precisa fazer "engenharia reversa": voltar passo a passo e debugar o "motor" da MVC que chama a controle.

O que pode te ajudar é ativar o error_reporting para mostrar todos os erros. As vezes o erro existe, é fácil, mas não está sendo exibido por causa dele..

Postado

Mog. Lucas

Eu trabalho na raiz, mas mesmo se nao trabalhasse eu ja estou ciente disto.

No meu index.php, onde tem a seguinte codificação:


<?php
error_reporting(E_ALL);
require_once 'lib/Application.php';
$o_Application = new Application();
$o_Application->dispatch();
?>

ele nao exibe erros, mas no "online", como você se refere a hospedagem, ele gera arquivo .log de erro e la diz:

[29-Oct-2013 14:20:53 UTC] PHP Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/vcladm/public_html/lib/Conexao.php:29) in /home/vcladm/public_html/controllers/PrincipalController.php on line 4

[29-Oct-2013 14:21:00 UTC] PHP Notice: Undefined index: Login in /home/vcladm/public_html/controllers/LoginController.php on line 22

[29-Oct-2013 14:21:00 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/vcladm/public_html/lib/Conexao.php:29) in /home/vcladm/public_html/lib/Application.php on line 99

O erro de 14:20:00 são ao acessar a index (acessar o site normal). Ja erros de 14:21:00 são quando o usuario tenta logar (autenticar)

Parece ser erro de espaço em branco ou caracter invalido antes de <?php

O q você acha?

  • Membro VIP
Postado

O erro é o de 'cannot modify header information' mesmo, ou seja, algum espaço em branco ou output gerado mesmo antes de um Header().

Nas duas linhas o output começou no mesmo arquivo.. você já checou ele? /home/vcladm/public_html/lib/Conexao.php Linha 29

Postado

Resolvido rsrs...

Bom, é o seguinte:

Em lib/Conexao.php 29, ele encontrava após o '?>' uma linha abaixo (em branco).

E a mesma coisa em models/FuncionarioModel.php, continha uma linha abaixo de '?>' em branco. Q tava causando o problema.

Solucionado! Obrigado :D

MogLucas

Gostaria de tirar mais uma dúvida, se souber...

Depois que passei o site para MVC, o layout ficou todo desconfigurado no IE, antes de eu passar para o MVC ele rodava certinho! Sabe o porque disso?

  • Membro VIP
Postado

É difícil dizer sem ter acesso ao código.. você está testando em qual versão do IE? Experimente adicionar o seguinte header:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Postado

Como você ja conhece o MVC.

Sabe que tem uma classe no diretorio "controllers" que se chama PrincipalController.php

que é responsavel por setar uma View('principal.php'), por exemplo. No meu caso esta pagina principal é como se fosse toda a estrutura da minha index com todo o html, e um <link href="estilo.css" /> o estilo para formatar a pagina.

A minha pagina "principal.php" está codificada da seguinte forma:


<?php
$v_params = $this->getParams();
$v_login = $v_params['v_login'];
$o_usuario = $v_params['o_usuario'];
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Venceslau Corporation</title>
<link href="template/css/estilo.css" rel="stylesheet" type="text/css" />
<link href="template/css/menu.css" rel="stylesheet" type="text/css" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
(DIVS)
</body>
</html>

Ela carrega tudo correto, as imagens aparecem e tudo mais, porém ela nao formata, como se nao fosse compatível, mas a verdade é q fiz o layout (HTML+CSS) em cima 4 nevegadores e entre eles o IE 9 (o qual utilizo na minha máquina), e veio rodando normal, mas ao passar pro mvc (da forma apresentada acima), começou a ficar desformatado.

Entretanto, eu ja ulizava o header q você me passou...

  • Membro VIP
Postado

Você sabe dizer se o css chega a ser encontrado? Aparentemente está ocorrendo erro 404 no IE por algum motivo bizarro. Pode ser redirecionamento por htaccess (se você utilizar), pode ser falta/uso da tag <base>.. você pode tentar o caminho absoluto..

Postado

Sim ele chega, tanto que algumas coisas q defini no css aparece, mas a maioria nao...

Na minha hospedagem nao encontro na raiz o "htacess". Desconheço também a tag <base>. E como seria esse caminho absoluto?

___________________________________EDITADO__________________________________________

Consegui arrumar. O que eu estava fazendo era chamar os estilos antes dos metas. Ai ele nao "ajeitava" o css para compatibilizar no IE9. :D

Emtão ficaria assim:


<?php
$v_params = $this->getParams();
$v_login = $v_params['v_login'];
$o_usuario = $v_params['o_usuario'];
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Venceslau Corporation</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="template/css/estilo.css" rel="stylesheet" type="text/css" />
<link href="template/css/menu.css" rel="stylesheet" type="text/css" />
</head>
<body>
(DIVS)
</body>
</html>

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...