Ir para conteúdo
Fórum Script Brasil
  • 0

Erro No Login


Tiago Gomes

Pergunta

Boas.

Tou com um problema.

É o seguinte tinha um site funcionando em Windows e agora passei para linux, na altura do login tenho este erro:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/login/login.php:509) in /var/www/login/login.php on line 137

A linha 137 é esta : header('refresh: 0; url= ./site/main.php') ;

Espero pela vossa ajuda.

Obrigado ;)

Editado por Tiago Gomes
Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

Pois é, em algum lugar anterior a essa linha já está sendo enviado algum cabeçalho...

tenta na linha anterior ao header ...

colocar:

ob_start();

Se não ... faz por JavaScript

comenta a linha do header e coloca:

echo('<script>');

echo("window.location = 'main.php'");

echo('</script>');

t+

Link para o comentário
Compartilhar em outros sites

  • 0

qundo você comenta um linha o php a ignora, e utilizada principalmente para fazer a documentação do sistema:

As duas principais formas são:

// Para comentar uma linha unica;

/*

para que

você possa cometar um bloco de linhas;

*/

no seu caso faça:

//header('refresh: 0; url= ./site/main.php') ;

Link para o comentário
Compartilhar em outros sites

  • 0

Olha só, de uma revisada no seu codigo, eu já passei aperto desse tipo, como voce passou para o linux, o seu navegador mudou também, e se voce usa javascript, pode ser que você tenha que adapata-lo para o novo navegador.

Algumas coisas que funcionan de um jeito em ie, funcionam de outro em Firefox.

Link para o comentário
Compartilhar em outros sites

  • 0

Mas eu tou abrindo o site no Ie e dá o mesmo problema.

No firefox como no Ie dá esse problema ... ou seja o problema não é do navegador!

Eu experimento no Ie pois o site está acessível pela lan

De referir que antes estava instalado num PC com o windows 2003 server com versões mais antigas do php e do mysql terá algo a ver?

Link para o comentário
Compartilhar em outros sites

  • 0

Tem toda razão em insistir, o objetivo é resolver os problemas!

Bem, se for o javascript o problema, o que da para fazer é escrevê-lo assim:

echo('<script type="text/javascript">');
echo("  window.location.href = 'main.php';");
echo("</script>");

Mas não deve fazer diferença, já que o "type" é padrão mas não obrigatório.

O "href" o mesmo.

Está habilitado JavaScript no teu navegador (IE, FF ou o que você usar) ?

Se não der assim, manda o código fonte desta página, pode ajudar a ver o problema.

Bom dia.

Link para o comentário
Compartilhar em outros sites

  • 0

Vou deixar então aqui o código fonte da pagina pois coloquei esse javascript e me dá erro no java.

É muito codigo :unsure:

<?

/**

* Checks whether or not the given username is in the

* database, if so it checks if the given password is

* the same password in the database for that user.

* If the user doesn't exist or if the passwords don't

* match up, it returns an error code (1 or 2).

* On success it returns 0.

*/

function confirmUser($username, $password){

global $conn;

/* Add slashes if necessary (for query) */

if(!get_magic_quotes_gpc()) {

$username = addslashes($username);

}

/* Verify that user is in database */

$que = "select password from users where username = '$username'";

$result = mysql_query($que,$conn);

if(!$result || (mysql_numrows($result) < 1)){

return 1; //Indicates username failure

}

/* Retrieve password from result, strip slashes */

$dbarray = mysql_fetch_array($result);

$dbarray['password'] = stripslashes($dbarray['password']);

$password = stripslashes($password);

/* Validate that password is correct */

if($password == $dbarray['password']){

$query_Users = "SELECT users.`group` FROM users WHERE users.username = '$username'";

$Users = mysql_query($query_Users, $conn) or die(mysql_error());

$row_Users = mysql_fetch_assoc($Users);

//$totalRows_Users = mysql_num_rows($Users);

$group = $row_Users['group'];

if ($group == 'admin') {

return 3;

}

else if ($group == 'peritos') {

return 4;

}

else if ($group == 'companhias') {

return 5;

}

else if ($group == 'mediadores') {

return 6;

}

else if ($group == 'avgadmin') {

return 7;

}

else if ($group == 'avladmin') {

return 8;

}

else if ($group == 'juradmin') {

return 9;

}

else if ($group == 'multimax-admin') {

return 10;

}

else if ($group == 'multimax-munters') {

return 11;

}

else if ($group == 'multimax-client') {

return 12;

}

else if ($group == 'multimax-worker') {

return 13;

}

else if ($group == 'multimax-projectm') {

return 14;

}

//else return 0; //Success! Username and password confirmed

}

else{

return 2; //Indicates password failure

}

}

/**

* checkLogin - Checks if the user has already previously

* logged in, and a session with the user has already been

* established. Also checks to see if user has been remembered.

* If so, the database is queried to make sure of the user's

* authenticity. Returns true if the user has logged in.

*/

function checkLogin(){

/* Check if user has been remembered */

if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookpass'])){

$_SESSION['username'] = $_COOKIE['cookname'];

$_SESSION['password'] = $_COOKIE['cookpass'];

}

/* Username and password have been set */

if(isset($_SESSION['username']) && isset($_SESSION['password'])){

/* Confirm that username and password are valid */

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 3)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 4)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 5)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 6)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 7)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 8)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 9)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 10)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 11)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 12)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 13)

if (confirmUser($_SESSION['username'], $_SESSION['password']) != 14)

{

/* Variables are incorrect, user not logged in */

unset($_SESSION['username']);

unset($_SESSION['password']);

unset($_SESSION['group']);

return false;

}

return true;

}

/* User not logged in */

else{

return false;

}

}

/**

* Determines whether or not to display the login

* form or to show the user that he is logged in

* based on if the session variables are set.

*/

function displayLogin(){

global $logged_in;

if($logged_in){

echo "<h1>Logged In!</h1>";

echo "Bem Vindo <b>$_SESSION[username]</b> - <b>$_SESSION[group]</b>, you are logged in.";

echo "<a href=../login/logout.php'>logout</a>";

if ($_SESSION[group] == 'admin'){

header( 'refresh: 0; url=./gsmax/main.php' );

}

else if ($_SESSION[group] == 'peritos') {

$url_header = sprintf("refresh: 0; url=./peritos/peritos.php?perito=%s",$_SESSION[username]);

header( $url_header );

}

else if ($_SESSION[group] == 'companhias') {

header( 'refresh: 0; url=./web/index.php');

}

else if ($_SESSION[group] == 'mediadores') {

header( 'refresh: 0; url=./web/index.php');

}

else if ($_SESSION[group] == 'avgadmin') {

header( 'refresh: 0; url=./avgadmin/index.php');

}

else if ($_SESSION[group] == 'avladmin') {

header( 'refresh: 0; url=./avladmin/index.php');

}

else if ($_SESSION[group] == 'juradmin') {

header( 'refresh: 0; url=./juradmin/index.php');

}

else if ($_SESSION[group] == 'multimax-admin') {

header( 'refresh: 0; url=./multimax/admin/index.php');

}

else if ($_SESSION[group] == 'multimax-munters') {

header( 'refresh: 0; url=./multimax/munters/index.php');

}

else if ($_SESSION[group] == 'multimax-client') {

header( 'refresh: 0; url=./multimax/client/index.php');

}

else if ($_SESSION[group] == 'multimax-admin') {

header( 'refresh: 0; url=./multimax/worker/index.php');

}

else if ($_SESSION[group] == 'multimax-admin') {

header( 'refresh: 0; url=./multimax/projectm/index.php');

}

}

else{

?>

<style type="text/css">

<!--

.style1 {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: xx-small;

}

.style2 {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: x-small;

}

input {

background-color: #F2F3F5;

border: thin groove;

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 11px;

}

.style3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }

.style4 {font-size: 12px}

#siteInfo{

clear: both;

font-size: 10px;

color: #cccccc;

padding: 5px;

margin-top: 0px;

border-top: 1px solid #FF9933;

border-right: 1px none #FF9933;

border-bottom: 1px solid #FF9933;

border-left: 1px none #FF9933;

font-family: Verdana, Arial, Helvetica, sans-serif;

}

#tabela{

border-top-width: 1px;

border-right-width: 1px;

border-bottom-width: 1px;

border-left-width: 1px;

border-top-style: solid;

border-right-style: solid;

border-bottom-style: none;

border-left-style: solid;

border-top-color: #FF9933;

border-right-color: #FF9933;

border-bottom-color: #FF9933;

border-left-color: #FF9933;

}

/* negative top margin pulls siteinfo up so its top border overlaps (and thus lines up with)

the bottom border of the navBar in cases where they "touch" */

#siteInfo img{

padding: 4px 4px 4px 0px;

vertical-align: middle;

}

body {

background-color: #f3f3f3;

}

-->

</style>

&lt;script language="JavaScript" type="text/JavaScript">

<!--

function MM_swapImgRestore() { //v3.0

var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a)&&x.oSrc;i++) x.src=x.oSrc;

}

function MM_preloadImages() { //v3.0

var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

if (a.indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a;}}

}

function MM_findObj(n, d) { //v4.01

var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n];

for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document);

if(!x && d.getElementById) x=d.getElementById(n); return x;

}

function MM_swapImage() { //v3.0

var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

if ((x=MM_findObj(a))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

//-->

</script>

&lt;script language=JavaScript>

<!--

hoje = new Date()

dia = hoje.getDate()

dias = hoje.getDay()

mês = hoje.getMonth()

ano = hoje.getYear()

if (dia < 10)

dia = "0" + dia

if (ano < 2000)

ano = "19" + ano

function CriaArray (n) {

this.length = n }

NomeDia = new CriaArray(7)

NomeDia[0] = "Domingo"

NomeDia[1] = "Segunda-feira"

NomeDia[2] = "Terça-feira"

NomeDia[3] = "Quarta-feira"

NomeDia[4] = "Quinta-feira"

NomeDia[5] = "Sexta-feira"

NomeDia[6] = "Sábado"

//

NomeMes = new CriaArray(12)

NomeMes[0] = "Janeiro"

NomeMes[1] = "Fevereiro"

NomeMes[2] = "Março"

NomeMes[3] = "Abril"

NomeMes[4] = "Maio"

NomeMes[5] = "Junho"

NomeMes[6] = "Julho"

NomeMes[7] = "Agosto"

NomeMes[8] = "Setembro"

NomeMes[9] = "Outubro"

NomeMes[10] = "Novembro"

NomeMes[11] = "Dezembro"

function WriteDate() {

document.write ("" + NomeDia[dias] + ", " + dia + " de " + NomeMes[mês] + " de " + ano + "")

}

//-->

</SCRIPT>

<title>GSmax - login</title>

&lt;script language="JavaScript" type="text/JavaScript">

<!--

function MM_reloadPage(init) { //reloads the window if Nav4 resized

if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {

document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}

else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();

}

MM_reloadPage(true);

//-->

</script>

<body onLoad="MM_preloadImages('../images/botao_in.jpg')">

<div align="center">

<table width="60%" border="0" cellpadding="0" cellspacing="0" id="tabela">

<tr>

<td colspan="3"><p><img src="login/logo_login.jpg" width="774" height="153">

</p>

<form action="<?php $PHP_SELF ?>" method="post">

<div align="center">

<table width="431" height="232" border="0" background="../gsmax/images/login.jpg">

<tr>

<td width="174" rowspan="5" valign="top"><div align="center">

<p class="style2"><br>

<br>

<br>

<br>

<br>

<br>

<span class="style4">Bem Vindo!</span></p>

<p class="style3">Insira um utilizador e <br>

e password para um <br>

acesso validado </p>

<p class="style3">

&lt;script language="JavaScript">

function tS(){ x=new Date(); x.setTime(x.getTime()); return x; }

function lZ(x){ return (x>9)?x:'0'+x; }

function dT(){

window.status='GSmax - Averiguação e Gestão de Sinistros, Lda. - '+eval(oT)+'';

document.title='GSmax - Averiguação e Gestão de Sinistros, Lda.';

if(fr==0){

fr=1;

document.write('<font size=1 color="#969696" face="Verdana"><b><span id="tP">'+eval(oT)+'</span></b></font>'); }

tP.innerText=eval(oT);

setTimeout('dT()',1000); }

var fr=0,oT="lZ(tS().getHours())+':'+lZ(tS().getMinutes())+':'+lZ(tS().getSeconds())+' '";

dT();

</script>

</p>

</div></td>

<td colspan="2"> </td>

<td width="30" height="44"> </td>

</tr>

<tr>

<td width="165"><span class="style1">Utilizador</span><br>

<input name="user" type="text" id="user"></td>

<td width="44"> </td>

<td height="43"> </td>

</tr>

<tr>

<td colspan="2"><span class="style1">Password</span><br>

<input name="pass" type="password" id="pass"> </td>

<td height="43"> </td>

</tr>

<tr>

<td><div align="center"><a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Login','','../images/botao_in.jpg',1)"> </a>

<input type="submit" name="sublogin" value="Login">

</div></td>

<td> </td>

<td height="47"> </td>

</tr>

<tr>

<td colspan="2"><div align="left"><br>

</div></td>

<td height="38"> </td>

</tr>

</table>

</div>

</form> </td>

</tr>

<tr>

<td width="64%"> </td>

<td align="right" width="18%"> </td>

<td align="right" width="18%">

<div align="right"><a href="../webmail.php"><img src="login/webmail.jpg" height="45" border="0"></a> </div></td>

</tr>

<tr>

<td><div id="siteInfo"> <img src="../gsmax/images/icon_index.jpg" width="30" height="29"> <span class="style18"><span class="style19">©2005 GSmax</span> - Sistemas de Informação</span>

</div></td>

<td colspan="2"><div id="siteInfo" align="right"><img src="login/spacer_bottom.jpg" width="30" height="29">

&lt;script language=JavaScript>WriteDate();</SCRIPT></div> </td>

</td>

</tr>

</table>

</div>

<div align="center">

<?

}

}

/**

* Checks to see if the user has submitted his

* username and password through the login form,

* if so, checks authenticity in database and

* creates session.

*/

if(isset($_POST['sublogin])){

/* Check that all fields were typed in */

if(!$_POST['user'] || !$_POST['pass']){

die('You didn\'t fill in a required field.');

}

/* Spruce up username, check length */

$_POST['user'] = trim($_POST['user']);

if(strlen($_POST['user']) > 40){

die("Sorry, the username is longer than 40 characters, please shorten it.");

}

/* Checks that username is in database and password is correct */

$md5pass = md5($_POST['pass']);

$result = confirmUser($_POST['user'], $md5pass);

/* Check error codes */

if($result == 1){

die('That username doesn\'t exist in our database.');

}

else if($result == 2){

die('Incorrect password, please try again.');

}

/* Username and password correct, register session variables */

else if ($result == 3){

$_SESSION['group'] = "admin";

}

else if ($result == 4){

$_SESSION['group'] = "peritos";

}

else if ($result == 5){

$_SESSION['group'] = "companhias";

}

else if ($result == 6){

$_SESSION['group'] = "mediadores";

}

else if ($result == 7){

$_SESSION['group'] = "avgadmin";

}

else if ($result == 8){

$_SESSION['group'] = "avladmin";

}

else if ($result == 9){

$_SESSION['group'] = "juradmin";

}

else if ($result == 10){

$_SESSION['group'] = "multimax-admin";

}

else if ($result == 11){

$_SESSION['group'] = "multimax-munters";

}

else if ($result == 12){

$_SESSION['group'] = "multimax-client";

}

else if ($result == 13){

$_SESSION['group'] = "multimax-worker";

}

else if ($result == 14){

$_SESSION['group'] = "multimax-projectm";

}

else if ($result == 0){

$_SESSION['group'] = "xupa";

}

$_POST['user'] = stripslashes($_POST['user']);

$_SESSION['username'] = $_POST['user'];

$_SESSION['password'] = $md5pass;

/**

* This is the cool part: the user has requested that we remember that

* he's logged in, so we set two cookies. One to hold his username,

* and one to hold his md5 encrypted password. We set them both to

* expire in 100 days. Now, next time he comes to our site, we will

* log him in automatically.

*/

//if(isset($_POST['remember'])){

setcookie("cookname", $_SESSION['username'], time()+60*55, "/");

setcookie("cookpass", $_SESSION['password'], time()+60*5, "/");

setcookie("cookgroup", $_SESSION['group'], time()+60*5, "/");

//}

/* Quick self-redirect to avoid resending data on refresh */

echo "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[php_SELF]\">";

return;

}

/* Sets the value of the logged_in variable, which can be used in your code */

$logged_in = checkLogin();

?>

</div>

Link para o comentário
Compartilhar em outros sites

  • 0
meu chapa.. tu ta usando ./ para voltar a raiz use só / e ve que que da

Bruno pode ter razão, contudo se esse for um sistema de adiministração normalmente ngn deixa na raiz, logo o objetivo seria mesmo voltar à raiz...

mas posso não estar certo.. lol... o coloca logo o endereço http://site/localhost/pasta/arquivo.php

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Cara, vê se não é a permissão da pasta, ou seja, se você transferiu a pasta do windows p/ o servidor linux, com certeza todo seu sistema está com acesso somente leitura, pelo que vi o erro que aparece é por falta de permissão. Veja se não é isso. Migrei sete sistemas para o linux (Servidor LAMP) e tive dois com esse tipo de problema, só resolvi assim.

Não sou programador, mas administro servidores de dados.

vlw

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...