Ir para conteúdo

Arquivado

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

falcao544

Imcompatibilidade entre navegadores!

Recommended Posts

Criei um script para validar o usuário, mas não estava rodando de jeito nenhum usando o mozilla e o chrome! AI testei usando o safari e o IE e funcionou perfeitamente! Testei em outros PC's usando mozilla e depois o IE! No mozilla não foi, mas no IE sim! O que pode causar essa imcompatibilidade?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php

if($_SERVER["REQUEST_METHOD"]=="POST" && isset($_POST["email"]) && isset($_POST["senha"])){ 
if(!preg_match("/^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+.([a-zA-Z]{2,4})$/", anti_injection($_POST["email"]))){
 session_start();
 $_SESSION["mailv"] = "f";
 echo"<script>history.go(-1)</script>";
 exit();
}
else{
   $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 = sha1(md5($senha));

if($senha == $query){
 session_start();
 $_SESSION["email"] = $email;
 $_SESSION["senha"] = $senha;
 header("Location: http://www.site.com/painel.php");
 exit();
}
else{
   session_start();
      $_SESSION["mailv"] = "c";
      echo"<script>history.go(-1)</script>";
      exit();
}
}
}
elseif($_SERVER["REQUEST_METHOD"]=="POST"){
    if(!isset($_POST["email"]) || !isset($_POST["senha"])){
  session_start();
     $_SESSION["mailv"] = "erro";
     echo"<script>history.go(-1)</script>";
     exit();
 }
}
else{
  header("Location: 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); 

 return $sql; 
} 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Começe mudando

echo"<script>history.go(-1)</script>";

 

Por

header( 'Location: ' . $_SERVER[ 'HTTP_REFERER' ] );

 

Outra coisa

isset($_POST["email"]) && isset($_POST["senha"])

 

Se for um input, ele vai retornar TRUE sempre.

 

Use


$email = trim( $_POST[ 'email' ] );
$senha = trim( $_POST[ 'senha' ] );

! empty( $email ) && ! empty( $senha )

 

Evita de passar pela validação se o usuário der apenas espaçamento

Compartilhar este post


Link para o post
Compartilhar em outros sites

Configure seu código para exibir TODAS as mensagens de erro, adicionando este código à primeira linha do script.

 

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adicione um echo em cada uma das condições para você verificar se está passando por lá.

 

Ex.:

if(!preg_match("/^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+.([a-zA-Z]{2,4})$/", anti_injection($_POST["email"]))){
 echo 'VALIDOU EMAIL'; exit;
 session_start();
 $_SESSION["mailv"] = "f";
 echo"<script>history.go(-1)</script>";
 exit();
}
else{
  echo 'NAO VALIDOU EMAIL'; exit;

 

Assim você consegue descobrir onde é que o código está 'travando'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, problema nessa página resolvido! Já estou sendo redirecionado para a painel.php! Agora o problema é que a sessão pelo mozilla não funciona, mas testei aqui pelo IE 9 também e foi! Pelo Chrome também não funcionou!

 

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!

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.