Ir para conteúdo

POWERED BY:

Arquivado

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

khots

Erro no codigo

Recommended Posts

Olá pessoal o codigo é o seguinte :$sql = mysql_query("SELECT * FROM CLIENTES WHERE LOGIN='$usuario' AND SENHA='$senha'");$num = mysql_num_rows($sql);if($num > 0){ $ok = true; echo "existente"; header("Location: admin.php");}else{ $ok = false; echo "Inesistente"; echo $usuario; echo $senha; header("Location: index.php");}ob_end_flush();mysql_close()?>o erro é q quando o usuario e senha estão corretos ele n le o codigo se tiver o header, tipo se tiver o header ele vai pro else mesmo estando correto, agora se eu tiro a linha do header ele lê normal a condição if...se algu´´em puder ajudar eu agradeço muito ..vlw aew

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema pode ser no proprio header...

toda vez que você usa o paramento header ele tem que vir antes de qualquer html...

ex.

header("Location: index.php");<html><body>blabla...
você está usando esses comandos antes do html???

flw..

 

PHP

[*]

[*]$sql = mysql_query("SELECT * FROM CLIENTES WHERE LOGIN='$usuario' AND SENHA='$senha'");

[*]

[*]$num = mysql_num_rows($sql);

[*]

[*]if($num != 0){

[*]$ok = true;

[*]echo "existente";

[*]header("Location: admin.php")// toda vez que você usa o paramento header ele tem que vir antes de qualquer html...

[*]}else{

[*]$ok = false;

[*]echo "Inesistente";

[*]echo $usuario;

[*]echo $senha;

[*]header("Location: index.php");// toda vez que você usa o paramento header ele tem que vir antes de qualquer html...

[*]

[*]}

[*]

[*]ob_end_flush();

[*]mysql_close()

[*]?>

[*]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma pergunta, o comando header naum tem que vir antes de qualquer comando de escrita tb???

Compartilhar este post


Link para o post
Compartilhar em outros sites

o header tem q vir antes de "qualquer comando de envio de dados ao cliente",

porque depois q o cabeçalho é enviado ao cliente, naum tem como voltar atrás,

por isso dá o erro "cannot modify header information", q significa "impossível

modificar as informações do cabeçalho". o Header informa o q "virá".

 

 

1 - if($num > 0)

2 - {

3 - $ok = true;

4 - echo "existente"; // aqui você mandar imprimir

5 - header("Location: admin.php"); // aqui você tenta direciona pra outro arquivo

6 - }

 

 

Acredito q a solução seja inverter as linhas 4 e 5 . :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa eu tentar explicar melhor, é tipo assim :Quando o usuario e senha estão corretos ele imprime na tela Existe normalmente.Mas se eu colocar o header ele vai pro else... mesmo estando corretos usuario e senha.N tem nenhum html no codigoé so php mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

De qualquer forma, naum pode ter o echo antes do header, porque vai dar pau mesmo.

Altera estas linhas e posta o resultado, se continuar o problema, eliminamos esta possibilidade. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço aew pessoal, mas n deu certo, tipo , se eu coloco o echo ele ta indo pro if, se eu colocar o header ele ignora o if e vai pro else mesmo estando certo ..vlw aew ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP

[*]<?php

[*]ob_start();

[*]$usuario = $_POST['usuario'];

[*]$senha = $_POST['senha'];

[*]

[*]mysql_connect("localhost","usuario","senha") or die("Deu erro ao se conectar: ".mysql_error());

[*]

[*]mysql_select_db("banco");

[*]

[*]$sql = mysql_query("SELECT * FROM CLIENTES WHERE LOGIN='$usuario' AND SENHA='$senha'");

[*]

[*]$num = mysql_num_rows($sql);

[*]

[*]if(($usuario == "x") && ($senha == "1"))

[*]{

[*]

[*]Header("Location: admin.php");

[*]

[*]}

[*]else {

[*] if($row == 0) 

[*] Header("Location: index.php")

[*]

[*] else {

[*]

[*] Header("Location: index2.php");

[*]

[*] } 

[*]}

[*]ob_end_flush();

[*]mysql_close()

[*]?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kra que isso você esqueceu disso..

"{}" do if

 

<?php

ob_start();

$usuario = $_POST['usuario'];

$senha = $_POST['senha'];

 

mysql_connect("localhost","usuario","senha") or die("Deu erro ao se conectar: ".mysql_error());

 

mysql_select_db("banco");

 

$sql = mysql_query("SELECT * FROM CLIENTES WHERE LOGIN='$usuario' AND SENHA='$senha'");

 

$num = mysql_num_rows($sql);

 

if(($usuario == "x") && ($senha == "1"))

{

 

Header("Location: admin.php");

 

}

else {

   if($row == 0) {

   Header("Location: index.php");  

 

  }else {

 

   Header("Location: index2.php");

 

   }  

}

ob_end_flush();

mysql_close()

Compartilhar este post


Link para o post
Compartilhar em outros sites

aewa galera , n funciona, n sei pq...tipo se eu dou o echo q ta na linha comentada lá embaixo no codigo ele lê a variavel direitinho, mas se eu coloco o header ele n vai pra pagina certa n sei pqse alguém puder ajudar eu agradeço vlw ^^qualquer coisa testa po codigo ai é só comentar a linha do header e deixar o echo e depois faça o contrario

<?phpob_start();$usuario = $_POST['usuario'];$senha = $_POST['senha'];mysql_connect("localhost","usuario","senha") or die("Deu erro ao se conectar: ".mysql_error());mysql_select_db("banco");$sql = mysql_query("SELECT * FROM CLIENTES WHERE LOGIN='$usuario' AND SENHA='$senha'");$row = mysql_num_rows($sql);if(($usuario == "x") && ($senha == "1")){$resultado = "admin.php"; }else {	if($row != 0){	$resultado = "index.php";	}	else{    $resultado = "adm_musica.php";	}	}//echo($resultado);header("Location: $resultado");ob_end_flush();mysql_close()?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, copiei o código e criei o banco aqui na minha máquina (já estava cabreira com essa história, e decidi q ia matar a charada).Funcionou normal... :D O problema deve ser alguma conf do seu serv

Compartilhar este post


Link para o post
Compartilhar em outros sites

:S.... como?tem alguma saida output antes do header()? porque isso é muito estranho...mais enfim, tenta assim:echo "<script> window.location = '" . $resultado . "'; </script>";[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

brigadão aew cara, com esse script deu certo ieUhAIufinalmente hehehtem 2 semanas q to tentando resolver isso e nada.vlw abraços

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.