falcao544 11 Denunciar post Postado Setembro 15, 2011 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
Kakashi_Hatake 267 Denunciar post Postado Setembro 15, 2011 Posta o script, senão não tem como saber. Pode ser 'N' motivos ou não. Compartilhar este post Link para o post Compartilhar em outros sites
falcao544 11 Denunciar post Postado Setembro 15, 2011 <?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
Kakashi_Hatake 267 Denunciar post Postado Setembro 15, 2011 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
falcao544 11 Denunciar post Postado Setembro 15, 2011 Já mudei! Não foi! EDIT: Já mudei e dessa vez nem redirecionado eu fui para o painel.php! Ficou parado nessa página sem nada na tela! Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Setembro 16, 2011 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
falcao544 11 Denunciar post Postado Setembro 16, 2011 Adicionei! Testei e não apareceu nada! Ficou na mesma tela de antes e em branco! Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Setembro 16, 2011 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
falcao544 11 Denunciar post Postado Setembro 16, 2011 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