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

Incompatibilidade entre navegadores!

19-09-2011 17:34

Eu crirei um página para validar o login e depois o usuário é redirecionado para a oágina painel.php! O problema é que a sessão não é inicializada no Mozilla/Chrome, mas no IE/Safari, ela funciona! O que pode ser? Obrigado!

Painel.php:

<?php  error_reporting(E_ALL);   ini_set('display_errors','1');  ob_start();  session_start();  echo $_SESSION["email"];//Não é mostrado na tela no Mozilla/Chrome, no IE sim!    if(isset($_SESSION["email"]) && isset($_SESSION["senha"])){  echo"aa";      $email = anti_injection($_SESSION["email"]);   mysql_connect("") or die(mysql_error());   mysql_select_db("") or die(mysql_error());      $senha = mysql_query("SELECT senha FROM dados_usuarios WHERE email='$email'");   $senha = mysql_fetch_assoc($senha);   $senha = $senha["senha"];   mysql_close();      if($email==$_SESSION["email"] && $senha==$_SESSION["senha"]){    mysql_connect("") or die(mysql_error());    mysql_select_db("") or die(mysql_error());      $query_nome = mysql_query("SELECT nome FROM dados_usuarios WHERE email='$email'");    $nome = mysql_fetch_assoc($query_nome);    $nome = $nome["nome"];        $query_id = mysql_query("SELECT ID_Usuario FROM dados_usuarios WHERE email='$email'");    $id_usuario = mysql_fetch_assoc($query_id);    $id_usuaro = $id_usuario["ID_Usuario"];       $query_produtos = mysql_query("SELECT nome_produto FROM produtos WHERE ID_Anunciante = '$id_usuario'");      echo"Bem vindo(a) <strong>".$nome."</strong>";    echo"<br>";    echo"                  <a href=\"http://www.site.com/sair.php\">Sair!</a><br>";        if(mysql_num_rows($query_produtos) > 0){     echo"<strong>Produto(s) anunciado(s):</strong><br>";     while($produto = mysql_fetch_assoc($query_produtos)){         echo"".$produto["nome_produto"]."<br>";     }    echo"<br>";    $tempor = mysql_query("SELECT duracao FROM produtos WHERE ID_Anunciante = '$id_usuario'");    $tempor = mysql_fetch_assoc($tempor);    $tempor = $tempor["duracao"];    $tempor = strtotime("+$tempor days");    $tempor = date("G-i-s-n-j-Y", $tempor);    $tempor = explode("-", $tempor);    $tempor = mktime($tempor[0], $tempor[1], $tempor[2], $tempor[3], $tempor[4], $tempor[5]);//hora = G, minuto = i, segundo = s, mes = n, dia = j, ano = Y    $tempo = time();    $tempo_restante = $tempor - $tempo;    $tempo_restante /= 86400;    echo"Tempo restante do plano: ".$tempo_restante." dia(s)";    mysql_close();    }    else{       $plano_id = mysql_query("SELECT plano_id FROM dados_usuarios WHERE ID_Usuario = '$id_usuario'");       if(mysql_num_rows($plano_id) == 0){        echo"<a href='http://www.site.com/plano.php'>Contrate um plano Aqui!</a>";        mysql_close();       }       elseif(mysql_num_rows($query_produtos) == 0 && mysql_num_rows($plano_id) > 0){                $anuncios = mysql_query("SELECT numero_anuncios FROM planos WHERE id = '$plano_id'");                    $anuncios = mysql_fetch_assoc($anuncios);                    $anuncios = $anuncios["numero_anuncios"];            echo"<html><head><link href='css/estilo.css' rel='stylesheet' type='text/css' /></head>                 Anuncie Um Produto:<br>                 <form action='anunciar.php' method='post'>                 Nome do produto:<name='nome' id='nome' type='text'>                 <br>                 Descricao:<name='desricao' id='descricao' type='text'>                 <br>                 Tags:<name='tags' id='tags' type='text'>                 <br>                 Preco:<name='preco' id='preco' type='text'>                 <br>                 <input type='submit' value='Anunciar!'>                             </form>                             </html>";                              $tempor = mysql_query("SELECT duracao FROM produtos WHERE ID_Anunciante = '$id_usuario'");            $tempor = mysql_fetch_assoc($tempor);                    $tempor = $tempor["duracao"];            $tempor = strtotime("+$tempor days");            $tempor = date("G-i-s-n-j-Y", $tempor);            $tempor = explode("-", $tempor);            $tempor = mktime($tempor[0], $tempor[1], $tempor[2], $tempor[3], $tempor[4], $tempor[5]);//hora = G, minuto = i, segundo = s, mes = n, dia = j, ano = Y            $tempo = time();            $tempo_restante = $tempor - $tempo;                    $tempo_restante /= 86400;                    echo"Tempo restante do plano: ".$tempo_restante." dia(s)";             }          }   }   else{         header( 'refresh:0; url=http://www.site.com/' );   }  }  else{     if(isset($_SESSION["senha"])){      echo"iii";     }     else{        echo "i";          }     //header( 'refresh:0; url=http://www.site.com/' );  }  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);    $sql = htmlspecialchars($sql);      return $sql;   }  ob_end_flush();  ?>

E eu recebo esso erro:

Notice: Undefined INDEX: email IN /home/brlivre/public_html/painel.php ON line 6

E o i do echo"i"; é imprimido!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Incompatibilidade entre navegadores!

19-09-2011 18:10

Undefined index: email significa que você está usando $email, e não especifica de que forma ele é criado, se vem de outro documento, get, post...

A session não consegui ver se você cria nessa página ai ou em outra.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Incompatibilidade entre navegadores!

20-09-2011 10:13

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

Incompatibilidade entre navegadores!

20-09-2011 15:11

Lá está a mesma coisa que aqui. O que você tem que fazer é obter o erro e a linha, trabalhar em cima dessa linha para tirar o erro, assim se tiver outro você parte para outro.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Incompatibilidade entre navegadores!

20-09-2011 16:19

Web, a linha que é apontada é essa:

echo $_SESSION["email"]; 

O problema é que o erro aparece no Mozilla/Chrome mas quando eu uso o IE/Safari não aparece nada e a sessão funciona normalmente! Eu fiz alguns testes e vi que a sessão é criada no IE/Safari, mas no Mozilla e no Chrome não! O que pode causar isso?
0
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Incompatibilidade entre navegadores!

20-09-2011 16:22

Obs: No link que postei, mostra o código que cria a sessão e redireciona para essa página (Painel.php)!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Incompatibilidade entre navegadores!

20-09-2011 16:57

Parte de um teste básico. Primeiro, testa esse script nos navegadores com problema.

<?php session_start(); $_SESSION["email"] = "teste@teste.com"; echo $_SESSION["email"]; ?>

Se não tiver problema, ai o erro pode estar na criação da SESSION no seu código.

No seu código te indico o seguinte:
Inicia seu script assim:

<?php session_start(); 

Tanto na página que cria a SESSION quanto na que exibe.

Testa e fala se deu certo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Incompatibilidade entre navegadores!

20-09-2011 19:21

Testei o primeiro script e o resultado foi:

teste@teste.com

Fiz a alteração que sugeriu! Coloquei o session_start(); na primeira linha dos dois códigos, testei e não foi no mozilla mas no IE9 funcionou!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Incompatibilidade entre navegadores!

20-09-2011 19:25

Esse código que postei não funcionou no Firefox? Testei exatamente nele, e funcionou. Seu navegador está configurado padrão, permitindo cookies, etc...?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Incompatibilidade entre navegadores!

20-09-2011 20:29

O primeiro código sim! O segundo que não!

Esse funcionou:

<?php session_start(); $_SESSION["email"] = "teste@teste.com"; echo $_SESSION["email"]; ?>

Esse não:

<?php session_start(); 

Sim o meu Mozilla tá certinho! Cookies habilitados! No chrome também não vai! Só no IE e safari que funciona! E quando eu tento fazer o login, aparece isso:

Notice: Undefined INDEX: email IN /home/brlivre/public_html/painel.php ON line 6

ai -> que são echos que coloquei para saber onde o erro poderia estar!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Incompatibilidade entre navegadores!

20-09-2011 21:36

Esse que você falou não tem nada sendo criado, por isso não funciona. Esse erro sobre email acontece exatamente porque ele não foi criado.

echo $_SESSION["email"];//Não é mostrado na tela no Mozilla/Chrome, no IE sim!  

Ou seja, o PHP não consegue reconhecer esse email, então ele não foi criado. Como você cria a SESSION no outro 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

Incompatibilidade entre navegadores!

21-09-2011 15:15

Esse email é criado sim! E não é só ele que não funciona! A session que eu crio pra senha, também não funciona no mozilla! A prova de que os dois são criados é que no IE funciona!

Eu crio assim:

<?php ob_start(); session_start(); ini_set('display_errors', true); error_reporting(E_ALL); $email = trim( $_POST[ 'email' ] ); $senha = trim( $_POST[ 'senha' ] ); if($_SERVER["REQUEST_METHOD"]=="POST" && !empty( $_POST["email"] ) && !empty( $_POST["senha"])){   if(!preg_match("/^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+.([a-zA-Z]{2,4})$/", anti_injection($_POST["email"]))){   echo 'NAO VALIDOU EMAIL'; exit;   //session_start();   $_SESSION["mailv"] = "f";   header( 'Location: ' . $_SERVER[ 'HTTP_REFERER' ] );   exit();  }  else{  echo 'VALIDOU EMAIL';     $email = anti_injection($_POST["email"]);     $senha = anti_injection($_POST["senha"]);           mysql_connect("") or die(mysql_error());     mysql_select_db("") or die(mysql_error());          $query = mysql_query("SELECT senha FROM dados_usuarios WHERE email='$email'");     $query = mysql_fetch_assoc($query);     $query = $query["senha"];          $senha = $senha."2011";     $senha = sha1(md5($senha));          if($senha == $query){     echo 'naaao VALIDOU EMAIL';      //session_start();      $_SESSION["email"] = $email;      $_SESSION["senha"] = $senha;      header("Location: http://www.site.com/painel.php");      exit();     }     else{     echo 'aaaaaaVALIDOU EMAIL'; exit;        //session_start();        $_SESSION["mailv"] = "c";        header( 'Location: ' . $_SERVER[ 'HTTP_REFERER' ] );        exit();     }  } } elseif($_SERVER["REQUEST_METHOD"]=="POST"){ echo 'bbbbVALIDOU EMAIL'; exit;      if(empty( $_POST[ 'email' ] ) && empty( $_POST[ 'senha' ])){      echo 'cccccVALIDOU EMAIL'; exit;       //session_start();       $_SESSION["mailv"] = "erro";       header( 'Location: ' . $_SERVER[ 'HTTP_REFERER' ] );       exit();      }      echo 'dddddddVALIDOU EMAIL'; exit; } else{ echo 'eeeeeVALIDOU EMAIL'; exit;    header("Location: http://www.site.com/"); } echo 'ffffffVALIDOU EMAIL'; exit;  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;   } ob_end_flush(); ?>

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

Incompatibilidade entre navegadores!

21-09-2011 16:44

Tenta colocar assim

$_SESSION["email"] = "$email"; $_SESSION["senha"] = "$senha"; 

Muitas vezes já tive esse problema.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Incompatibilidade entre navegadores!

21-09-2011 18:27

Fiz o que vocë me passou, mas náo funcionou! Mesmo erro!

Notice: Undefined INDEX: email IN /home/brlivre/public_html/painel.php ON line 6

Esse index se refere ao índice no $_SESSION["email"]; certo?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Incompatibilidade entre navegadores!

21-09-2011 19:05

Sim, parece que esse email não foi criado.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Incompatibilidade entre navegadores!

21-09-2011 19:22

Bom, a notícia boa é que nos outros PC´s que não estavam funcionando antes, agora está só no meu, quando uso Mozilla/Chrome, que não funciona! E o que pode fazer com que o PHP não crie a $_SESSION["email"];?

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

Incompatibilidade entre navegadores!

21-09-2011 19:44

Não acho que o problema de não criar a SESSION esteja relacionada ao navegador. Agora não sei se você está testando o script localmente, então pode ocorrer algumas falhas devido ao servidor local. O ideal é testar online.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 21
Sexo: Masculino

Incompatibilidade entre navegadores!

21-09-2011 19:48

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

Incompatibilidade entre navegadores!

21-09-2011 19:56

Então só imagino ser do navegador, porque um servidor que aceite PHP e uso de SESSION não devia dar esse problema. O modo que está usando parece ok. Agora tenta deixar seu computador na configuração padrão. Limpa todo histórico etc...
0
A melhor hospedagem para o seu site HostGator!

Quem está online

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