Viper33 1 Denunciar post Postado Março 9, 2014 Exato, não apareceu a mensagem header already sent, Hinom. E sem usar o tmp, mas colocando o breakpoint retorna isso: /home/u970889492/public_html/conexao/conexao.php11394398834 Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 10, 2014 im, isso significa que não há problema no servidor. ao menos, 99% de chances de ser algum problema em algum arquivo do seu sistema não há mágica... vá criando pontos de depuração (breakpoints) para caçar a fonte dos erros.. Compartilhar este post Link para o post Compartilhar em outros sites
paulinhosupriano 103 Denunciar post Postado Março 10, 2014 Primeiramente e verificar se na inclusão dos arquivos estão corretos. ./ sendo ../ ou o dirname() Verifique de acordo com sua raiz / /conexao /classes /arquivos /index.php /funcoes.php assim pense.... index.php irá incluir o conexão? se sim verifique se o verifique como utiliza os começa o seu PHP <? e necessário ativar uma função no servidor de produção. <?php seria o recomendável. o arquivos index.php tem a inclusão ou o requerimento correto? <?php require_once 'conexao/conexao.php'; // ou está require_once './conexao/conexao.php'; e assim irá tirar muitos dos erros que vir em seu código postado. Compartilhar este post Link para o post Compartilhar em outros sites
Alexandre Angelo Zanatta 0 Denunciar post Postado Março 10, 2014 Aqui tmb aconteceu isso o hostinger deve ter broqueado essas sessões pra conta free só pode por que antes funcionava normalmente e no servidor local funciona 100% acredito que não é erro em código, não pode um código que funcionou durante 8 meses no servidor (antes dessas alterações), estár errado Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 10, 2014 #23, #24.. leia todos os posts o erro está nos códigos e não no server.. se fosse erro no server, o teste não funcionaria. está bem claro o erro nos scripts do autor do tópico. Não há bloqueio algum de sessões e nem sei se isso existe.. esse erro sempre existiu.. a diferença é que provavelmente a setagem anterior do host ocultava os erros críticos e warnings e também, provavelmente todos que estão reclamando possuem sistemas muito mal escritos. Compartilhar este post Link para o post Compartilhar em outros sites
Viper33 1 Denunciar post Postado Março 10, 2014 Hinom, Se o Host antes ocultava os erros, então justifica toda a dificuldade de resolver o problema pois aí estava um dos detalhes que nos deixavam em dúvida, pois como disse o amigo aí em cima, antes o mesmo arquivo funcionava e localmente também. E há sim bloqueio de funcionamento da tag session, pois essa informação me foi passada pelo suporte deles. Me falaram que as tags session já estão em funcionamento. Como pelo seu código foi possível ver que o servidor está funcionando normalmente, realmente só sobrou o fato do problema ser no meu código. E acabo de receber uma informação do suporte dizendo que o problema está no arquivo ope.php. Me disseram que estou fechando uma abertura ({) da linha 6 somente na linha 46. Estou verificando. <?php error_reporting( E_ALL ); ini_set( 'display_errors', 1); require_once("./conexao/conexao.php"); if(isset($_POST['acao'])) { $usuario = ($_POST['usuario']); $senha = ($_POST['senha']); if($usuario=="") { echo '<script>alert("Informe o seu login.");location.href="./frm_loginadm.php";</script>'; } if($senha=="") { echo '<script>alert("Informe a sua senha.");location.href="./frm_loginadm.php";</script>'; } else if(!empty($usuario) and !empty($senha)); { $sql= ("select * from usuario where login = ? and senha = ?"); $verifica= $pdo->prepare($sql); $verifica->bindValue(1,$usuario); $verifica->bindValue(2,$senha); $verifica->execute(); if($verifica->rowCount()>0) { $_SESSION['usuario'] = $usuario; $_SESSION['senha'] = $senha; /*if (headers_sent($filename, $linenum)) { echo '<br />' . PHP_EOL . $filename . '<br />' .PHP_EOL . $linenum;*/ } echo '<br />' .PHP_EOL . time(); exit; header("location:./adm/index.php"); } else { unset ($_SESSION['usuario']); unset ($_SESSION['senha']); echo '<script>alert("Usuário ou senha inváidos"); location.href="./frm_loginadm.php";</script>'; } } } ?> E paulinhosupriano estou verificando todas as suas dicas novamente. Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Março 10, 2014 Palpite:Sempre que um arquivo terminar com código php, retire o [inline]?>[/inline] php da última linha.Pode me enviar o arquivo conexao.php por zip, gist, pastebin ou coisa parecida??? Lembre-se de alterar o endereço do servidor e senha antes de fazê-lo.Se não quiser, verifique novamente se este arquivo foi salvo sem BOM e se você começa [inline]<?php[/inline] logo na primeira linha e primeira coluna.Checagem cautelosa, também, para possíveis falhas como a que já foi encontrada de... ?> <?php Seu arquivo ope.php ainda vai te dar umas dores de cabeça, já que você tem uma linha de encerramento de cabeçalhos (linha 18, um echo) antes de uma linha de envio de cabeçalhos (101). Compartilhar este post Link para o post Compartilhar em outros sites
webdevbr 35 Denunciar post Postado Março 10, 2014 Tem um } a mais no final do arquivo. e como o post acima disse, não feche a tag ?> em arquivos só com PHP, isso previne dores de cabeça depois ;) <?php error_reporting( E_ALL ); ini_set( 'display_errors', 1); require_once("./conexao/conexao.php"); if(isset($_POST['acao'])) { $usuario = ($_POST['usuario']); $senha = ($_POST['senha']); if($usuario=="") { echo '<script>alert("Informe o seu login.");location.href="./frm_loginadm.php";</script>'; } if($senha=="") { echo '<script>alert("Informe a sua senha.");location.href="./frm_loginadm.php";</script>'; } else if(!empty($usuario) and !empty($senha)); { $sql= ("select * from usuario where login = ? and senha = ?"); $verifica= $pdo->prepare($sql); $verifica->bindValue(1,$usuario); $verifica->bindValue(2,$senha); $verifica->execute(); if($verifica->rowCount()>0) { $_SESSION['usuario'] = $usuario; $_SESSION['senha'] = $senha; // Redireciona, SEM NENHUM OUTPUT antes // Header corrigida. formato incorreto (HTTP invalido) //header("location:./adm/index.php"); header("Location: adm/index.php"); } } else { unset ($_SESSION['usuario']); unset ($_SESSION['senha']); echo '<script>alert("Usuário ou senha inváidos"); location.href="./frm_loginadm.php";</script>'; } } Compartilhar este post Link para o post Compartilhar em outros sites
paulinhosupriano 103 Denunciar post Postado Março 10, 2014 /* Seu código reformulado, caso tenha algum erro, verifique sua conexão, se o $pdo está recebendo a conexão de maneira correta. */ <?php session_start(); // se o arquivo tiver um nivel abaixo // require_once ("../conexao/conexao.php"); // Se o arquivo não tiver um nivel abaixo. // require_once ("conexao/conexao.php"); if (file_exists("../conexao/conexao.php")): require_once "../conexao/conexao.php"; else: if (file_exists("conexao/conexao.php")): require_once "conexao/conexao.php"; else: echo utf8_decode('Erro ao incluir o arquivo de conexão, verifique o nível de inclusão do mesmo.'); exit(0); endif; endif; if (isset($_POST['acao'])) { $usuario = ($_POST['usuario'] == '') ? null : $_POST['usuario']; $senha = ($_POST['senha'] == '') ? null : $_POST['senha']; if (is_null($usuario) || is_null($senha)): echo 'E necessário o usuário e senha para acessar.'; else: $sql = "SELECT * FROM usuario WHERE login = ? AND senha = ?"; $executar = $pdo->prepare($sql); $executar->execute(array($usuario, $senha) ); if ($executar->rowCount() == 0): echo 'Usuário ou senha inválidos!'; else: $_SESSION['usuario'] = $usuario; $_SESSION['senha'] = $senha; if (file_exists('adm/index.php')): header("Location: adm/index.php"); else: if (file_exists('../adm/index.php')): header("Location: ../adm/index.php"); else: echo 'Erro, não foi encontrado o arquivo para direcionamento.'; endif; endif; endif; endif; } ?> Hinom, Se o Host antes ocultava os erros, então justifica toda a dificuldade de resolver o problema pois aí estava um dos detalhes que nos deixavam em dúvida, pois como disse o amigo aí em cima, antes o mesmo arquivo funcionava e localmente também. E há sim bloqueio de funcionamento da tag session, pois essa informação me foi passada pelo suporte deles. Me falaram que as tags session já estão em funcionamento. Como pelo seu código foi possível ver que o servidor está funcionando normalmente, realmente só sobrou o fato do problema ser no meu código. E acabo de receber uma informação do suporte dizendo que o problema está no arquivo ope.php. Me disseram que estou fechando uma abertura ({) da linha 6 somente na linha 46. Estou verificando. <?php error_reporting( E_ALL ); ini_set( 'display_errors', 1); require_once("./conexao/conexao.php"); if(isset($_POST['acao'])) { $usuario = ($_POST['usuario']); $senha = ($_POST['senha']); if($usuario=="") { echo '<script>alert("Informe o seu login.");location.href="./frm_loginadm.php";</script>'; } if($senha=="") { echo '<script>alert("Informe a sua senha.");location.href="./frm_loginadm.php";</script>'; } else if(!empty($usuario) and !empty($senha)); { $sql= ("select * from usuario where login = ? and senha = ?"); $verifica= $pdo->prepare($sql); $verifica->bindValue(1,$usuario); $verifica->bindValue(2,$senha); $verifica->execute(); if($verifica->rowCount()>0) { $_SESSION['usuario'] = $usuario; $_SESSION['senha'] = $senha; /*if (headers_sent($filename, $linenum)) { echo '<br />' . PHP_EOL . $filename . '<br />' .PHP_EOL . $linenum;*/ } echo '<br />' .PHP_EOL . time(); exit; header("location:./adm/index.php"); } else { unset ($_SESSION['usuario']); unset ($_SESSION['senha']); echo '<script>alert("Usuário ou senha inváidos"); location.href="./frm_loginadm.php";</script>'; } } } ?> E paulinhosupriano estou verificando todas as suas dicas novamente. Compartilhar este post Link para o post Compartilhar em outros sites
Alexandre Angelo Zanatta 0 Denunciar post Postado Março 10, 2014 Bom contribuindo, eu achei aqui o que tava acontecendo eu fiz um include na parte de login, chamava um php externo ae quando eu tentava fazer o session_regenerate_id ja estava enviado e não conseguia modificar o header tive que remover o include e joga todo o código html antes de enviar ae deu certo Compartilhar este post Link para o post Compartilhar em outros sites
Viper33 1 Denunciar post Postado Março 10, 2014 Finalmente resolvido!!!!! paulinhosupriano resolveu meu problema. O arquivo final ficou desse jeito: <?php session_start(); if (file_exists("conexao/conexao.php")): require_once "conexao/conexao.php"; else: echo utf8_decode('Erro ao incluir o arquivo de conexão, verifique o nível de inclusão do mesmo.'); exit(0); endif; if (isset($_POST['acao'])) { $usuario = ($_POST['usuario'] == '') ? null : $_POST['usuario']; $senha = ($_POST['senha'] == '') ? null : $_POST['senha']; if (is_null($usuario) || is_null($senha)): echo '<script>alert("É necessário digitar o usuário e senha!"); location.href="./frm_loginadm.php";</script>'; else: $sql = "SELECT * FROM usuario WHERE login = ? AND senha = ?"; $executar = $pdo->prepare($sql); $executar->execute(array($usuario, $senha) ); if ($executar->rowCount() == 0): echo '<script>alert("Usuário ou senha inváidos!"); location.href="./frm_loginadm.php";</script>'; else: $_SESSION['usuario'] = $usuario; $_SESSION['senha'] = $senha; if (file_exists('adm/index.php')): header("Location: adm/index.php"); else: echo 'Erro, não foi encontrado o arquivo para direcionamento.'; endif; endif; endif; } ?> Aproveitei também a dica do webdevbr e verifiquei o arquivo de conexão. Reparei que ao baixar os arquivos do site e editá-los no meu computador um ou outro arquivo ficavam com BOM. Obrigado a todos pelo tempo dedicado e pela solidariedade. Me ajudaram demais. Estava há dias e mais dias sem entender o motivo do problema. Compartilhar este post Link para o post Compartilhar em outros sites
Viper33 1 Denunciar post Postado Março 10, 2014 Só para corrigir, a dica do BOM foi dada pelo Evandro Oliveira. Compartilhar este post Link para o post Compartilhar em outros sites