Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Problema com session!

12-09-2011 20:07

Eu não estou conseguindo criar duas sessions, sendo que estou tentando criá-las do mesmo modo como crio sessions em outras partes do código, mas apenas nessa parte que não vai:

if($num2==1){ session_start(); $_SESSION["email"] = $email; $_SESSION["senha"] = $senha_md5; echo"<meta http-equiv='refresh' content='0;URL=http://www.site.com/t.php'>"; exit(); }

Obs: Entra no IF sim, já que o redirecionamento acontece!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com session!

12-09-2011 20:22

Tem o session_start no início do documento?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Problema com session!

12-09-2011 20:27

Sim! Caso precise:
<?php error_reporting(E_ALL); ini_set('display_errors','1'); if($_SERVER["REQUEST_METHOD"]=="POST"){ function anti_injection($sql){ $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql); $sql = trim($sql); $sql = strip_tags($sql); $sql = addslashes($sql); return $sql; } $mail = anti_injection($_POST["email"]); $senha = anti_injection($_POST["senha"]); if(empty($mail) || empty($senha)){ session_start(); $_SESSION["mailv"] = "erro"; echo"<script>history.go(-1)</script>"; exit(); } mysql_connect("HOST", "USER", "SENHA") or die(mysql_error()); mysql_select_db("BD") or die(mysql_error()); $query_mail = mysql_query("SELECT email FROM dados_usuarios WHERE email='$mail'"); $num = mysql_num_rows($query_mail); if($num==1){ $senha = $senha."2011"; $senha_md5 = sha1(md5($senha)); $query_senha = mysql_query("SELECT senha FROM dados_usuarios WHERE senha='$senha_md5'"); $num2 = mysql_num_rows($query_senha); mysql_close(); if($num2==1){ session_start(); $_SESSION["email"] = $email; $_SESSION["senha"] = $senha_md5; session_write_close(); header( 'refresh:0; url=http://www.site.com/t.php' ); //echo"<meta http-equiv='refresh' content='0;URL=http://www.site.com/t.php'>"; exit(); } elseif($num2==0 || $num==0){ session_start(); $_SESSION["mailv"]="c"; echo"<script>history.go(-1)</script>"; exit(); } } else{ mysql_close(); session_start(); $_SESSION["mailv"] = "nc"; echo"<script>history.go(-1)</script>"; exit(); } } else{ echo"<meta http-equiv='refresh' content='0;URL=http://www.site.com'>"; } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com session!

12-09-2011 20:31

O session start não pode estar dentro de um if, tem que estar exatamente na segunda linha do código

<?php
session_start();
...
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Problema com session!

12-09-2011 20:38

Eu tinha entendido errado, o que você tinha perguntado! Já testei tirando o session_start() do if e colocando na segunda linha do código, mas mesmo assim não funcionou!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com session!

12-09-2011 20:45

Com o session_start na segunda linha, define seu if assim

if($num2==1){ session_start(); $_SESSION["email"] = $_POST['email']; $_SESSION["senha"] = $_POST['senha_md5']; session_write_close(); header( 'refresh:0; url=http://www.site.com/t.php' ); //echo"<meta http-equiv='refresh' content='0;URL=http://www.site.com/t.php'>"; exit(); }

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Problema com session!

13-09-2011 10:24

Ok! Hoje a tarde eu testo! Obrigado!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com session!

13-09-2011 11:10

Tira esse session_write_close(); também.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Problema com session!

14-09-2011 14:19


<?php error_reporting(E_ALL); ini_set('display_errors','1'); if($_SERVER["REQUEST_METHOD"]=="POST"){ function anti_injection($sql){ $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql); $sql = trim($sql); $sql = strip_tags($sql); $sql = addslashes($sql); return $sql; } $mail = anti_injection($_POST["email"]); $senha = anti_injection($_POST["senha"]); if(empty($mail) || empty($senha)){ session_start(); $_SESSION["mailv"] = "erro"; echo"<script>history.go(-1)</script>"; exit(); } mysql_connect("HOST", "USER", "SENHA") or die(mysql_error()); mysql_select_db("BD") or die(mysql_error()); $query_mail = mysql_query("SELECT email FROM dados_usuarios WHERE email='$mail'"); $num = mysql_num_rows($query_mail); if($num==1){ $senha = $senha."2011"; $senha_md5 = sha1(md5($senha)); $query_senha = mysql_query("SELECT senha FROM dados_usuarios WHERE senha='$senha_md5'"); $num2 = mysql_num_rows($query_senha); mysql_close(); if($num2==1){ session_start(); $_SESSION["email"] = $email; $_SESSION["senha"] = $senha_md5; header( 'refresh:0; url=http://www.site.com/p.php' ); //echo"<meta http-equiv='refresh' content='0;URL=http://www.site.com/p.php'>"; exit(); } elseif($num2==0 || $num==0){ session_start(); $_SESSION["mailv"]="c"; echo"<script>history.go(-1)</script>"; exit(); } } else{ mysql_close(); session_start(); $_SESSION["mailv"] = "nc"; echo"<script>history.go(-1)</script>"; exit(); } } else{ header( 'refresh:0; url=http://www.site.com/' ); //echo"<meta http-equiv='refresh' content='0;URL=http://www.site.com/'>"; } ?>

Bom esse é o código! Descobri aqui que ele funciona, mas em outro PC usando o IE! Em outro pc usando o Mozilla e Chrome eu sou redirecionado pra p.php e dps pra index.php! E em um outro pc usando o Chrome e o IE, fica parado na p.php!

O que pode ser?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17737
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com session!

14-09-2011 15:40

Baseado no número de resultados

$num2 = mysql_num_rows($query_senha); Tenta dessa forma: if($num2=="0") { // sem resultados // volta... } else { // se tiver resultado // cria a session e redireciona }


Se possível, em uma query só, verifica se email e senha são iguais.
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 8
Sexo: Masculino

Problema com session!

15-09-2011 17:48

Acredito que o problema seja porque você esta criando um session na página que está o if(){}, mas após criar você da um redirect para outra página. Se você quer verificar se a session que você iniciou na página anterior foi criada, na página do redirect você também precisa dar um session_start(); bem no topo da página.

Se eu entendi bem o problema ;) acredito que está seja a solução.

Abraços!
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado