Ir para conteúdo
Fórum Script Brasil

david.lyonnais

Membros
  • Total de itens

    257
  • Registro em

  • Última visita

Tudo que david.lyonnais postou

  1. david.lyonnais

    Script ID

    É eu me confundi, de tanto usar função isset() em $_POST , e nunca ter presisado em $_GET, acabei de atraplhando,ainda bem que o tópico foi resolvido...
  2. Como Hoshoyo disse, há varias linhas sem o ponto e virgula. Coloque os pontos e virgula e poste aqui o resultado.
  3. Também não entendi muito bem , mais o pouco que eu entendi acho que o caminho é por herança.
  4. Eu como estudo PHP como um Hobbie, resolvi fazer um sistema de login com as seguintes caracteristicas. 1-Área para administrador, para ele excluir,alterar e cadastra algum usuario. 2-Área de Cadastro. 3-Página de Login (Pronta Já)(so faltando colocar a verificação de nivel de permissao e se já confirmo email, que so serao feito posteriomente). 3-Página pro Administrados visualizar as Log de Acesso 4-Log de Acesso: Que mostra o nome do usuario , ip e dia do acesso toda vez que alguém logar. 5-Uma página perfil (Area Restrita),onde vai ter as informações do usuario. 6- Posta aqui... Mas até agr eu so tenho a página login.php.E uma tabela chamada usuarios ,com 4 campos, id, usuario,senha e email.(Edit:Adicionado o de permissao) Segue o código do login.php. <? session_start(); include ("conexao.php");//incluir a pagina que contem a classe MySQL include ("config.php"); $cnx = new MySQL('sistemalogin');//Fazer conexao ao BD sistemalogin $lg = new Login();//Instanciar Objeto. //Verificar se o usuario aperto em "Entrar" if(isset($_POST['entrar'])){ //Armazena campos do formulario em variaveis list($usuario,$senha) = $lg->getCampos($_POST['usuario'],$_POST['senha']); //Verificar se os campos estão vazios if(empty($usuario) or empty($senha)){ $rs = "Porfavor preencher todos os campos."; }else{ //Validar login $res = $lg->validarLogin($usuario,$senha,'usuarios'); if (!$res){ $rs = "Usuario ou/e senha incorretos!"; } } } ?> <HTML> <HEAD> <TITLE>Sistema de Login</TITLE> <style type="text/css"> fieldset{ width: 210px; height: auto; border-color: blue; } #fieldset1{ border-color: red; color: red; } </style> </HEAD> <BODY> <div align="center"> <fieldset align="center"> <legend><strong>Logar-se</strong></legend> <form method="POST" action="login.php"> <label>Login:</label> <input type="text" name="usuario" /> <label>Senha:</label> <input type="password" name="senha" /> <input type="submit"name="entrar" value="Entrar"> </form> </fieldset> </div> <? if(isset($rs)){ ?> <div align="center"> <fieldset id="fieldset1"> <legend><strong>Erro:</strong></legend> <? echo "<span>".$rs."</span>"; ?> </fieldset> </div> <? } ?> </BODY> </HTML> Segue agora o config.php: <? class Login{ private $lg = array(); function Login(){ //Ativar/Desativar codificação de senha $this->lg['ePK'] = true; //Palavra-chave pra codificar senha $this->lg['key'] = "key"; //Ativar/Desativar metodo Anti_injection. $this->lg['anti_injection'] = true; //Ativar/Desativar log de acesso $this->lg['logAcesso'] = true; //Diretorio do arquivo para log de acesso $this->lg['nomeLogAcesso'] = "logs/acesso.txt"; //Pagina a redirecionar apos logar $this->lg['pagLogado'] = "arearestrita.php"; } //Metodos public function validarLogin($usuario,$senha,$tabela){ if($this->lg['ePK'] == true){ $senha = $this->ePK($senha,$this->lg['key']); } $sql = "SELECT * FROM $tabela WHERE usuario='$usuario' AND senha='$senha' AND permissao > 0"; $query = mysql_query($sql); $row = mysql_num_rows($query); if($row == 1){ $SESSION['usuario'] = $usuario; if($this->lg['logAcesso']==true){ $this->logAcesso($usuario); } echo $this->redirecionar($this->lg['pagLogado']); exit; }else{ return false; } } public 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; } public function getCampos($usuario,$senha){ if ($this->lg['anti_injection']== true){ $usuario = $this->anti_injection($usuario); $senha = $this->anti_injection($senha); } return array($usuario,$senha); } public function logAcesso($usuario){ $fp = fopen($this->lg['nomeLogAcesso'],"a"); $txt = "Usuario:".$usuario.",Hora de Acesso:".date("d/m/Y H:i:s ").",IP:".$ip."\n"; fwrite($fp,$txt); fclose($fp); } public function ePK($senha,$chave){ $txt = strrev($senha); $txt = str_repeat(md5($txt),2); $txt = md5($txt); $txt .= md5($chave); $txt = md5($txt); return $txt; } public function redirecionar($pagina) { $pag = "&lt;script type=\"text/javascript\">window.location = \"".$pagina."\"</script> "; return $pag; } } Funcionando perfeitamente. Comentem o que acharam? Fico faltando algo,se sim,o que? Qualquer dúvida sobre o código até agr so postar. @EDIT Modificado,apos conselho de Jefferson Oliveira,opinei por adotar OO(Orientação a Objetos),não ta perfeito mas esta facil de editar ao gosto da pessoa , basta mudar as opções em config.php e conexao.php(esse ultimo pra editar conexao ao banco de dados. Esperando,opinião de vocês, se acharam bom o modo que estou usando a class nesse sistema pra que eu possa da continuidade nesse mesmo modo. Até
  5. david.lyonnais

    Ajuda loja php

    cria um campo na tabela que estao os usuarios cadastrados, coloca o campo com o nome "pontos". Dai toda vez que algm novo se cadastrar adicionar,por exemplo, 1000 pontos na conta dele. Quando ele compra algo com os pontos so ir editar o campo pontos tirando os devidos pontos gasto na compra
  6. david.lyonnais

    Ajuda loja php

    Explique melhor , você já fez o que ate agr?
  7. david.lyonnais

    Script ID

    Erro facilmente contornavel so troca essa linha : $pagina = $_GET["exec"]; Por: if(isset($_GET["exec"])){ $pagina = $_GET["exec"]; }
  8. Então,porque não tenta fazer o bolão em ASP enves de PHP.
  9. Mude isso: while( $row = mysql_fetch_assoc($consulta) ){ /* subcategoria será apresentada da forma "NOME|CODIGO,..." Maneira a ser tratada no JavaScript Vale lembrar que estamos contatenando o "nome" com a "|" com o "codigo" e com a "," */ echo $row["Nome_item"] . "|" . $row["Codigo"] . ","; } Por isso,a niveld e teste: while( $row = mysql_fetch_array($consulta) ){ /* subcategoria será apresentada da forma "NOME|CODIGO,..." Maneira a ser tratada no JavaScript Vale lembrar que estamos contatenando o "nome" com a "|" com o "codigo" e com a "," */ echo $row['Nome_item'] . "|" . $row['Codigo'] . ","; } Ver ai no que da.
  10. Se você tem um sistema de cadastro em ASP , porque qr fazer o bolão do mesmo site em php??Fica misturando PHP e ASP no mesmo site, não acho muito bom naão.
  11. Tente tirar os parenteses do $_POST['de']. Ficando assim: <?php $id = $_POST['del']; mysql_query("DELETE FROM mensagem WHERE id = $id"); header("Location: index2.php"); ?>
  12. if(mysql_affected_rows($rs)){ echo "Seu cadastro foi realizado com sucesso!Agradecemos a atenção."; }else{ echo "O cadastro não foi concluído."; } Mude isso por: if(!$rs){ echo "O cadastro não foi concluído."; }else{ echo "Seu cadastro foi realizado com sucesso!Agradecemos a atenção."; } Só to falando isso pois não uso mysql_affected_rows, tenta fazer do meu jeito.
  13. Abra o arquivo php.ini e localize "disable_functions" dai é so remove a função system, apagando o a mesma nessa linha.
  14. tente assim: //Gravando no banco de dados ! conectando com o localhost - mysql $conexao = mysql_connect("localhost","root",""); //localhost é onde esta o banco de dados. if (!$conexao){ echo "Erro de conexão com localhost,"; } //conectando com a tabela do banco de dados $cadastro = mysql_select_db("clientes",$conexao); if (!$cadastro){ echo "Erro de conexão com banco de dados"; } $query = mysql_query("SELECT `login` FROM `clientes` WHERE `login` = '$login'"); $query_ver= mysql_num_rows($query); if($query_ver>0){ echo "Este login já esta em uso"; } else { echo "Esta login não esta em uso"; } $query = "INSERT INTO `clientes` ( `nome` , `email` , `sexo` , `ddd` , `telefone` , `endereço` , `cidade` , `estado` , `bairro` , `país` , `login` , `senha` , `news` , `id` ) VALUES ('$nome', '$email', '$sexo', '$ddd', '$tel', '$endereco', '$cidade', '$estado', '$bairro', '$pais', '$login', '$senha', '$news', '')"; $res = mysql_query($query,$conexao); if(!$res){ echo "Não foi possivel inserir novos dados ao banco de dados. } Eu visualizei vários erros ficaria dificil ate de citar todos, então fiz essa limpeza ,não é garantia que va funcionar , pois não testei. E lembrando , qualquer codigo que você for postar poste entre as tags [/code.] ,so que sem o ponto.
  15. Eu acho que você deva ter uma tabela de usuarios e nela tenha vários campos incluindo o de sexo,certo? Dai, no campo de sexo enves de colocar masculino ou feminino você poderia colocar um numero podendo ser 1 ou 0. Na hr de incluir é so correlacionar , se a pessoa escolheu ELE(Masculino) colocar 0 no banco de dados e se escolher ELA(Feminino) colocar 1. E na hr de fazer a consulta também , se no campo sexo do usuario for 1 mostrar que é feminino e se for masculino usar 0. Dai independente se você quiser coloca ELE(ou masculino), não vai precisar alterar nada no banco de dados. Entendeu?
  16. Você so presisa então coloca nas informações dos cadastrados um numero. ex.: 1= Masculino e 0= Feminino Dai na pagina você coloca assim <select name="Sexo" id="Sexo"> <option selected>Masculino(Se quiser troca é so vim aqui e troca pra "ELE"</option> <option>Feminino(Se quiser dps coloca ELA)</option> </select> Você so taria editando aqui quando quisesse muda não precisando mudar nada no banco de dados.
  17. Uma coisa que eu não entendi , se a so 2 sexos (Masculino e Feminino).Pra que exibir os sexos usando uma consulta ao banco de dados. Se você tiver qrendo dizer outra coisa tem como da uma explicada melhor que eu não entendi muito bem. Esperando resposta.
  18. Não sei se entendi muito bem , mais acho que deva ser isso que você qr. Quando a pessoa clicar no "busca de autores", passa uma variavel via GET. Exemplo: o link principal é index.php dai quando a pessoa clicar manda para index.php?pag=busca_autores, dai so você coloca uma if pra verifica se existe essa varievel se true mostrar o conteudo do busca de autores, se false não mostra. Ve se isso clarea seus pensamentos ai.
  19. Olhando a tabela criada. CREATE TABLE IF NOT EXISTS `usuarios` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nome` varchar(100) NOT NULL, `usuario` varchar(50) NOT NULL, `senha` varchar(50) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `usuario` (`usuario`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; Se você vai criar o sistema de cadastro , o mesmo deve ter o mesmos campos da tabela,ou seja, NOME , USUARIO e SENHA.(id não presisa pois já ta em AI). Se você quiser adicionar o campo email no cadastro você teria que criar outro campo na tabela para os email dos cadastrados. No caso da permissão do adm você teria que criar outro campo na tabela com o nome de permissao. Dai enquanto a pessoa não tiver permissao mais ta gravado 0 na tabela quando ele recebe a permissão passa ate 1.Então na hr do login é so fazer a verificação do campo permissao se tiver 1 habilita o acesso se tiver 0 rejeitar. Espero ter ajudado um pouco na lógica. @Se quiser me adicionar no MSN é so manda um PM com seu MSN dai posso lhe ajuda mais facilmente.
  20. Primeiro você poderia colocar o codigo entre as tags code, para bom entendimento do codigo... Mostra algum erro, ou simplesmente não conecta? Você esta fazendo o mysql_select_db() depois do mysql_query().... tenta colocar o mysql_select_db() logo depois da conexão ao mysql e antes do query.
  21. Olhando sua dúvida e vendo as resposta. Acho que sua dúvida não é em php e sim javascript, então esse tópico esta na sessão errada.
  22. Tem um sistema de usuarios , bem simples, sem uso de bd.Que eu encontrei aqui mesmo no fórum. Segue o link do tópico. Sistema de Usuarios sem bd
  23. Apesar de já existir um tópico visando esse assunto eu resolvi cria assim mesmo, pois no outro tópico as coisas não ficaram bem claras. Resumi tudo nessa duas funções , fico extensas para bom entendimento de todos. Segue o código: <? //Calcular idade usando padrão usados pelos Banco de Dados function idadeus($data_nasc){ $datan = explode('-',$data_nasc); $dian = $datan[2]; $mesn = $datan[1]; $anon = $datan[0]; $data_atual = date('Y-m-d'); $datah = explode('-',$data_atual); $diah = $datah[2]; $mesh = $datah[1]; $anoh = $datah[0]; $anos = $anoh - $anon; if($mesn >= $mesh){ if($mesn = $mesh and $dian <= $diah){ return $anos; break; }else{ return $anos - 1; } }else{ return $anos; } } echo idadeus('1995-12-30'); //Calcular idade usando padrão Brasileiro function idadebr($data_nasc){ $datan = explode('/',$data_nasc); $dian = $datan[0]; $mesn = $datan[1]; $anon = $datan[2]; $data_atual = date('Y-m-d'); $datah = explode('-',$data_atual); $diah = $datah[2]; $mesh = $datah[1]; $anoh = $datah[0]; $anos = $anoh - $anon; if($mesn >= $mesh){ if($mesn = $mesh and $dian <= $diah){ return $anos; break; }else{ return $anos - 1; } }else{ return $anos; } } echo idadebr('30/12/1995'); ?> Qualquer erro só postar!! Espero ter sido útil. Até.
  24. Essa função é um meio de evitar ataques de dicionários de hash md5() para quem gostar do mesmo. <?php //encryptPassKey function ePK($senha,$chave){ $txt = strrev($senha);//Inverte a senha $txt = str_repeat(md5($txt),2);//duplica a senha criptografada com md5 $txt = md5($txt);//criptografa com md5 de novo $txt .= md5($chave);//incrementa a palavra-chave escolhida por você $txt = md5($txt);//e criptografa denovo com a função md5 return $txt; } ?> Faz uma boa bagunça. Obs.: por possuir o parâmetro para a palavra-chave tará fazendo uma codificação mais pessoal, pois ninguém que usar essa mesma função vai usar a mesma palavra-chave, assim diferenciando uma das outras. Até.
  25. Ptz, esqsi totalmente disso... Funciono perfeitamente, tnks.
×
×
  • Criar Novo...