Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
bom fim uma página que valida a sessão mais ele loha na boa só que era pra quando existir um sessão não exebir mais a página de login já jogar em outra olha:
login.php
<?phpinclude "config.php";include "class.php";$users = new users();$mysql = new mysql();extract($_POST);if(isset($_SESSION["login"])){ header("Location: index.html");}if($_GET["action"] == "check"){ if($user == "" || $pass == ""){ header("Location: login.php"); } else{ if($users->login($user, $pass)){ header("Location: index.php"); } else { header("Location: login.php?error=invalid"); } }}if($_GET["error"] == "invalid"){ echo "Usuário incorreto ou senha inválida.";}?><form action="login.php?action=check" method="post">Login:<br /><input type="text" name="user" size="25" /><br />Senha:<br /><input type="password" name="pass" size="25" /><br /><input type="submit" value="Entrar" /></form>class.php
<?php$url = $_SERVER["PHP_SELF"];if(eregi("class.php", $url)){ header("Location: index.php");}class mysql { function query($sql){ $this->sql = $sql; if($this->result=mysql_query($this->sql)){ return $this->result; } else { return 0; } }}class users extends mysql { var $user; var $pass; function login($user, $pass){ $this->user = eregi_replace("'","0", $user); $this->pass = eregi_replace("'","0", $pass); $this->md5 = md5($this->pass); $this->result = parent::query("SELECT * FROM users WHERE username='".$this->user."' AND password='".$this->md5."'"); if(mysql_num_rows($this->result) == 0){ return false; } else { $array = mysql_fetch_array($this->result); session_start(); $_SESSION["session"] = session_id(); $_SESSION["id"] = $array["id"]; $_SESSION["login"] = $this->user; $_SESSION["name"] = $array["name"]; $_SESSION["level"] = $array["level"]; $_SESSION["email"] = $array["email"]; return true; } }}?>tipo depois de criado a sessão quando a pessoa entrar na página login.php e ter uam sessão é pra mandar ele direto pra index.php, pq não vai?tipo depois de criado a sessão era pra executar essa header
if(isset($_SESSION["login"])){ header("Location: index.html");}que é para o user não fazer o login denovo qunado já existe uma session, dai era pra ver se existe um session e mandar ele pra página, mais não manda
acho que não ta criando a sessão, se poder me ajudar
cara.. nao sou o rei da cocaga preta no php.. mas tipo no meio das minahs loucaras da programaçao ja me acotneceu isso... e eu lembro q eh porque o header nao pode ser trocado + de 1 vez... e você fez isso...nessa parte:
> <form action="login.php?action=check" method="post">
quando você fez isso você altera o header... sendo q dentros dos ifs q serão ativadas você nao pode altera-lo novamente usando o location... mas pode usando esse mesmo metodo ai...por isso se quise fazer isso... manda a form para outra pagina e nele coloca o php.. apenas o php.. e manda no final dele redireciona pra pagina desejadanao tenho certeza se vai funciona 100% como disse nao sou um especialista em php.. mas ta valendo.. custa nada tenta... posso te da uns 60% de certeza q deve funciona assim... eu acho... XDespero te ajudadot+EDIT-------- cara eu tava pensando aqui.. e revendo uns codigos meus... e percebi q tem uma segunda maneira de fazer funcionar e muito mais rapido....atualmente uso ela em maioria dos meus codigos......coloca isso aqui quando quiser redireciona no lugar do <b>header("Location: login.php?error=invalid");<b>:echo "<meta http-equiv='refresh' content='1; url=login.php?error=invalid'>"'possivelmente funcionará... XDt+Tenta assim...
bota o seu header nomal... e na prox linha bota exit;
header("Location: index.php");exit;
Deve ser isso, não sei se to certo, tenta ai!
qual o erro que ta dando??