Autor Tópico: [PHP] Nao regista a sessao  (Lida 1590 vezes)

Offline XsTeAl

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.gud.us/en/?xsteal
[PHP] Nao regista a sessao
« em: Janeiro 26, 2009, 04:31:30 pm »
boas tenho este codigo, mas nao me regista a sessao nao sei porque...


Código: [Seleccione]
$username = mysql_real_escape_string($_POST['username']);  
$password = md5(mysql_real_escape_string($_POST['password']));  

$checklogin = mysql_query("SELECT * FROM users WHERE username = '".$username."' AND password = '".$password."'");  
 
if(mysql_num_rows($checklogin) != 0)  
{  
ob_start();  
 $_SESSION['Username'] = $username;
header("location: main.php");
 ob_end_flush();
  }  
  else  
 {  
echo "Erro";  
 }

Offline XsTeAl

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.gud.us/en/?xsteal
[PHP] Nao regista a sessao
« Responder #1 em: Janeiro 26, 2009, 08:45:03 pm »
ja consegui resolver mas agora quando faco redirect

da-me erro, ou seja quando uso

Código: [Seleccione]
header("location: index.php");
da-me este erro

Código: [Seleccione]
Warning: Cannot modify header information - headers already sent by (output started at /home/outside/public_html/xsteal/jogo/entrar.php:7) in /home/outside/public_html/xsteal/jogo/entrar.php on line 11
uma vez consegui resolver este problema, mas agora nao consigo se alguem tiver uma dica... obrigado

------------------
como nao da para eliminar o post, digo como resolvi, meti no inicio do codigo no ficheiro index.php o seguinte: ob_start(); e no final: ob_end_flush();

isto claro dentro das tags do php
« Última modificação: Janeiro 26, 2009, 08:47:03 pm por XsTeAl »

Offline crazii

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
[PHP] Nao regista a sessao
« Responder #2 em: Janeiro 27, 2009, 02:40:05 am »
Tens duas opções para resolver o problema dos header, ou alteras o php.ini o parametro "output buffer" para verdadeiro ou
No ínicio do documento antes de qualquer código chamas a função"ob_start();"      
e no final do documento chamas a função "ob_end_flush();"

espero ter ajudado!

Nothing thrills me anymore
Boring

Offline ilovehentai

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://
[PHP] Nao regista a sessao
« Responder #3 em: Fevereiro 02, 2009, 10:57:22 pm »
1º Para registar correctamente uma sessão confirma que tens o session_start() para inicializares a sessão
2º Não vejo porque necessitas do buffer para validares o teu login
3º Os headers provalemente nao podem ser enviados porque já foram enviados, para isso coloca o PHP antes de qualquer html que possas ter no teu ficheiro, se não tiveres html no ficheiro e estiveres a fazer include desse código verifica que o include é feito antes da tag html ou alias doctype
4º Meu deus.. esquece esses mysql_real_escapes etc... e passa a usar Mysqli é importante!
5º vejo que nao fazes quaisquer validação as strings que recebes ...
6º Sugiro que em vezes de validares que o numero de linhas seja diferente de 0 faças seja igual a 1 pois apenas pode haver 1 resultado possivel.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49