Ir para conteúdo
Fórum Script Brasil

tonzinhu

Membros
  • Total de itens

    186
  • Registro em

  • Última visita

Posts postados por tonzinhu

  1. Bom, se é a meneira certa não sei mas que deu certo deu hehe.

    aqui o codigo

    //deleta todos privilegios do usuario
            $del = mysql_query("DELETE FROM privilegios WHERE idusuario='$id'");
            
            //verifica se foi selecionado alguma categoria
            if($_POST['privilegios']== ""){
                
            }
            else{
            
            foreach($_POST['privilegios'] AS $valor){
                        
                //inseri novamente os novo valores
                $ins = mysql_query("INSERT INTO privilegios(idusuario,idmenu) VALUES('$id','$valor')");
            }
                
            }
        
                //atualizar dados
                $update = mysql_query("UPDATE usuarios SET nome='$nome', setor='$setor', senha='$senha1' WHERE nome='$nome'");
            print '<p class="ok">Dados alterados com sucesso!</p>';
            print '<a class="link" href="java script:history.back();>voltar</a>';
            }

  2. Iae beleza pessoal,

    To com uma dúvida com checkboxes que seria:

    Tenho um FORM onde escolho as opções que eu quero(checkbox), ai gravo no bd e tals.

    Pois bem, tenho outra area onde atualizo essas informações e ai que está:

    Nessa area tanto eu poderei ADD novas opçoes para tal usuario como poderei tirar algumas opções.

    Tem alguma função do php que digamos só pegue oque foi alterado ou com seria a melhor forma de se fazer isso.

    A meneira que pensei foi na hora que eu desse um foreach para pegar os checkbox marcados, aplicasse um DELETE no banco com as opções que ele já tem e depois daria um insert com as escolhidas.

    se alguém puder me dar um dica agradeço.

    vlw

  3. só pra dar uma reforçada, adicionem essa linha também

    return eregi(".php$",$this->arquivo['name']) or eregi(".html$",$this->arquivo['name']) ? true : false;
    ficando assim:
    function verifica_Tipo(){        
            $mime = array("application/octet-stream", "text/html");
           return eregi(".php$",$this->arquivo['name']) or eregi(".html$",$this->arquivo['name']) ? true : false;
            return in_array($this->arquivo['type'],$mime) ? true : false;
            
            }

    No meu caso eu só quero arquivos .php ou .html, ai é com vocês.

    falou

  4. já consegui resolver, depois de quebrar um pouco a cabeça.

    codigo correto:

    class Upload
    {
            var $arquivo = "";
    
         
            function Verifica_Arquivo()
            {
        
      $this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
      return is_uploaded_file($this->arquivo['tmp_name']) ? true : false;
    
       
            }
               function verifica_Tipo(){        
            $mime = array("application/octet-stream", "text/html");
            return in_array($this->arquivo['type'],$mime) ? true : false;
            
             }
    
            function Envia_Arquivo()
            {
      if($this->Verifica_Arquivo() == true && $this->verifica_Tipo() == true)
      {
            set_time_limit(0);
            
           
            
            $diretorio = "";
            if(!file_exists($diretorio))
            {
            @mkdir($diretorio);
            }       
           
            while ( file_exists ( $diretorio.$this->arquivo['name'] ))
            {
            $this->arquivo['name'] = preg_replace ( "/^(.+?)(_?)(\d*)(\.[^.]+)?$/e", "'\$1_'.(\$3+1).'\$4'", $this->arquivo['name']);
            }
           
            move_uploaded_file($this->arquivo['tmp_name'], $diretorio . $this->arquivo['name']);
           //nome do arquivo completo
           session_start();
           $_SESSION['upload'] = 'php/'.$this->arquivo['name'];
           
            }
            else{
                echo "<script language='javascript'>";
                echo "alert('Arquivo inválido. Permitidos (html e php).');";
                echo "document.location.href = '../painel.php?view=Categorias';";
                echo "</script>";
            die();
            }
            
            }
            }

  5. Galera beleza,

    to montando uma função para validar o tipo do arquivo, porem não está funcionando.

    alguém poderia me ajudar onde está o erro:

    class Upload
    {
            var $arquivo = "";
    
         
            function Verifica_Arquivo()
            {
        
      $this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
      return is_uploaded_file($this->arquivo['tmp_name']) ? true : false;
    
       
            }
    
    //essa parte que não funciona
               function verifica_Tipo(){        
            $mime = array("application/octet-stream", "text/html");
            if(!in_array($this->arquivo['type'],$mime)){
            false;
                
            }
            else{
            true;
            }
             }
    
            function Envia_Arquivo()
            {
    
    // aqui coloquei para verificar se as duas funções estão corretas
      if($this->Verifica_Arquivo() == true && $this->verifica_Tipo() == true)
      {
            set_time_limit(0);
            
           
            
            $diretorio = "";
            if(!file_exists($diretorio))
            {
            @mkdir($diretorio);
            }       
           
            while ( file_exists ( $diretorio.$this->arquivo['name'] ))
            {
            $this->arquivo['name'] = preg_replace ( "/^(.+?)(_?)(\d*)(\.[^.]+)?$/e", "'\$1_'.(\$3+1).'\$4'", $this->arquivo['name']);
            }
           
            move_uploaded_file($this->arquivo['tmp_name'], $diretorio . $this->arquivo['name']);
           //nome do arquivo completo
           session_start();
           $_SESSION['upload'] = 'php/'.$this->arquivo['name'];
           
            }
            }
            }
    
    
    ?>

    comentei no codigo onde está o erro.

    vlw

  6. porem dessa forma não ia ficar muito dinamico, pois o sistema cria categorias e os usuarios acessam as categorias que eu permitir.

    ou seja, posso criar 100 categorias (marketing, gerencia, informatica, etc....)

    e na hora de cadastrar os usuarios eu seleciono as que ele pode acessar.

    Mas a logica que usei foi essa mesma dai, pois quando se add. a categoria, tambem upa o arquivos dakela pagina(link),

    e depois do um include pra exibir elas.

    E a permissão é dessa forma mesmo, na hora que loga ele verifica os acessos que tem direito, masss..

    e se por acaso ele fosse lá e digitasse uma página que não está listada pra ele? , ai entra a validação do menu, que não deixa ele acessar.

    Mas podem ir dando idéias, que alias servirá para todos.

    vlw aew

  7. Você pode usar php + mysql ou se for poucas noticias e quiser fazer a mão só criar um arquivo só noticias.php e nele ficará todas noticias e nas paginas você da um include 'noticias.php', que posteriormente só precisará alterar o arquivo noticias.php okays.

    Falora

  8. Iae pessoal beleza,

    tava pensando em uma maneira de verificar os usuarios no banco (cadastro) usando php somente.

    Bom, tem que usar um pouquissimo de js, quase nada, muito facil também.

    Formulario (para exemplo)

    //adicione o arquivo javascript
    &lt;script src="js/usuarios.js" type="text/javascript"></script>
    
    
    //formulario
    
    <form name="users" method="post" action="php/add.usuarios.php">
    
    <table id="usuarios">
    
    <tr><td>Nome Completo</td> <td><input type="text" id="nome" onblur="verificaUser()" name="nome_c" /><span id="ok"></span></td></tr>
    
    //aqui o usamos iframe, onde será verificado o usuario.
    <tr><td></td> <td> <iframe frameborder="0" scrolling="no" style="display: none" id="ver_user" name="verifica"></iframe></td></tr>
    
    
    </form>
    verificando usuario (veruser.php) -- Pagina que irá dentro do frame.
    if(!isset($_GET['user'])){
        
    }
    else{
        
        include 'config.php';
        $nome = $_GET['user'];
        
        $query = "mysql_query";
        $ver[user] = $query("SELECT * FROM usuarios WHERE nome='$nome'");
        if(mysql_num_rows($ver[user]) >0){
        print '<p ><font color="FF0000" face="arial" size="2">Usuário já cadastrado.</p>';
        echo "&lt;script language='javascript'>";
        echo "parent.document.getElementById('ver_user').style.display = 'block';";
        echo "parent.document.getElementById('ok').innerHTML = '<img src=css/imagens/erro.jpg>';";
        echo 'parent.document.forms["users"].nome.focus();';
        echo "</script>";
        }
        else{
        echo "&lt;script language='javascript'>";
        echo "parent.document.getElementById('ver_user').style.display = 'none';";
        echo "parent.document.getElementById('ok').innerHTML = '<img src=css/imagens/check.jpg>';";
        echo "</script>";
        }
        
    }
    arquivo JS (usuarios.js)
    function verificaUser(){
    
    //pegando o nome do usuario
        var nome = document.getElementById('nome').value;
    //enviando para a pagina do frame
        parent.frames['verifica'].location="php/veruser.php?user="+nome;
    }

    Só isso de js.

    o Js que usei na pagina de validação é para dar mais um "tchan". Não é necessário.

    Lembrando que esse codigo é só para verificar se existe o usuario no banco e não para adicionar, verificar senha, etc...

    O restante é por sua conta.

    Só isso.

    Falora

  9. Novamente eu com uma dúvida aqui.

    vi uma vez com fazia mas nem lembro mais..

    é tipo assim:

    um <textarea> que lista todos os "usuarios" por exemplo, e agente escolhe clicando nele, tipo um <select>

    seria um select dentro de um textarea, só quem sem dropdown, ao invés disso é uma barra de rolagem.

    Acho que deu pra entender.

    Se souberem me ajudem por favor.

    vlw

  10. Posso sim, aqui:

    ta um pouco grande mas da pra entender.

    form:

    <form method="post" action="php/add.usuarios.php">
    
    <table id="usuarios">
    
    <tr><td>Nome Completo</td> <td><input type="text" name="nome_c" /> </td></tr>
    <tr><td>Setor</td> <td><input type="text" name="setor" /> </td></tr>
    <tr><td>Login</td> <td><input type="text" name="login" /> </td></tr>
    <tr><td>Senha</td> <td><input type="text" name="senha" /> </td></tr>
    <tr><td>Confirmar senha</td> <td><input type="text" name="senha_c" /> </td></tr>
    </table>
    
    <h3>Privilégios</h3>
    <?php
    $sel[cat] = mysql_query("SELECT * FROM menu");
    $linhas[total] = mysql_num_rows($sel[cat]);
    
    if($linhas[total] == 0){
        print '<p>Nenhuma categoria adicionada.</p>';
    }
    else{
        
    }
    while($r[cat] = mysql_fetch_assoc($sel[cat])){
    $nome[menu] = $r[cat]['menu'];
    $id[menu] = $r[cat]['idmenu'];
    
    print '<p class="box"><input type="checkbox" name="menu[]" value="'.$id[menu].'">'.$nome[menu].'</p>';    
    }
    
    
    
    ?>
    <br />
    <input type="submit" value="adicionar" />
    </form>
    Aqui validando e add no banco, que no caso add o usuario na tabela "usuarios" e tambem add os privilegios de acesso dele no site. add.usuarios.php
    //validando sessão
    require('valida.session.php');
    
    include('config.php');
    
    if(!isset($_POST['nome_c']) && !isset($_POST['setor']) && !isset($_POST['login']) && !isset($_POST['senha_c'])){
        header('location: ../painel.php');
    }
    else{
        
        //resgatando valores
        $nome_c = $_POST['nome_c'];
        $setor = $_POST['setor'];
        $login = $_POST['login'];
        $senha1 = $_POST['senha'];
        $senha2 = $_POST['senha_c'];
        
        
        //senha em branco
        if($senha1 == ""){
            echo "<script language='javascript'>";
        echo "alert('Você deve digitar uma senha.');";
        echo "document.location.href = 'java script:history.go(-1);'";
        echo "</script>";
        
        }
        else{
            //verificando senhas
            if($senha1 == $senha2){
                //verificando se já existe o usuario
                $search = mysql_query("SELECT * FROM usuarios WHERE login='$login' OR nome='$nome_c'");
                
                if(mysql_num_rows($search) >0){
                    print 'usuario já add.';
                }
                else{
            $insert[user] = mysql_query("INSERT INTO usuarios(nome,login,senha,setor) VALUES('$nome_c','$login',
            '$senha2','$setor')");
            
            $id[user] = mysql_query("SELECT * FROM usuarios WHERE login='$login'");
            $r[user] = mysql_fetch_assoc($id[user]);
            
            //id usuario adicionado
            $idusuario = $r[user]['idusuarios'];
            
        foreach($_POST['menu'] AS $n => $menu){
        
        
        //inserindo privilegios
        $insert = mysql_query("INSERT INTO privilegios(idusuario,idmenu) VALUES('$idusuario','$menu')");    
    
                }
            }
            }
            else{
                echo "<script language='javascript'>";
                echo "alert('Senhas diferentes! Digite novamente.');";
                echo "document.location.href = 'java script:history.go(-1);'";
                echo "</script>";
            }
        }
        
        
        //adicionar usuarios
        
    
        
    }

    é isso.

    vlw

  11. já consegui fazer um esquema, foi até simples:

    essa parte exibe os menus de acordo com o usuario:

    $id[usuario] = $_SESSION['idusuario'];
    
    if($_SESSION['usuario'] == "admin"){
        
    
        
        $menu = mysql_query("SELECT * FROM menu ORDER By idmenu");
        while($l[menu] = mysql_fetch_assoc($menu)){
        print '<li><a href="painel.php?view='.$l[menu]['menu'].'">'.$l[menu]['menu'].'</a></li>';
        }
        
    }
    else{
    
    //pegando idmenu privilegios
    $acesso[user] = mysql_query("SELECT * FROM privilegios WHERE idusuario='$id[usuario]'");
    
    while($l[acesso] = mysql_fetch_assoc($acesso[user])){
        $idmenu = $l[acesso]['idmenu'];
        
        if($idmenu == ""){
            
        }
        else{
        //pegando menu do banco
        $menu = mysql_query("SELECT * FROM menu WHERE idmenu='$idmenu' ORDER By idmenu");
        $l[menu] = mysql_fetch_assoc($menu);
        
    print '<li><a href="painel.php?view='.$l[menu]['menu'].'">'.$l[menu]['menu'].'</a></li>';
        }
    }
    }
    e na páginas coloquei um arquivo valida.menu.php para impedir que o usuario tente acessar a pagina sem que ele tenha privilegios:
    $menu = $_GET['view'];
    
    $query = 'mysql_query';
    
    //buscando id categoria
    $id[menu] = $query("SELECT * FROM menu WHERE menu ='$menu'");
    $linhas = mysql_fetch_assoc($id[menu]);
    
    //id categoria atual
    $idmenu = $linhas['idmenu'];
    
    $id[user] = $_SESSION['idusuario'];
    ######################################################
    $priv = $query("SELECT idmenu FROM privilegios WHERE idusuario='$id[user]' AND idmenu='$idmenu'");
    
    //id usuario atual
    
    $linhas[priv] = mysql_fetch_assoc($priv);
    if($_SESSION['usuario'] == "admin"){
        
    }
    else{
    if(mysql_num_rows($priv)<=0){
        echo "<script language='javascript'>";
        echo "alert('Você não tem permissão para exibir esta página.');";
        echo "document.location.href = 'java script:history.go(-1);'";
        echo "</script>";
    }
    else{
        
    }
    }

    se ele não puder ver a pagina exibe um alerta e volta pra pagina anterior.

    Ainda estou testando mas até agora funcionou bem, sem nenhum problema.

    Vlw ai pelos helps. e se alguém tiver sugestões para melhorar....

  12. iae galera beleza,

    to com uma duvida.

    to montando um esquema + ou - assim:

    form:

    nome -> nome

    senha -> senha

    privilegios -> Marketing - Admin- Gerencia - etc..

    ou seja, os privilegios são inputs do tipo checkbox, onde eu escolheria as areas de acesso (uma ou mais).

    e esses dados seriam add. no BD:

    id_prev | id_usuario

    porem quando não estou conseguindo add no BD de jeito nenhum, seria mais ou menos assim:

    id_prev | id_usuario

    1 1

    2 1

    ou seja, ia adicionar mais de um previlegio porem com o mesmo usuario de uma vez só, tentei usar o foreach porem eu pego os menus mas o usuario não vem :/

    se alguém puder ajudar eu agradeço.

    vlw

  13. vi uma classe que usa um meio diferente do IF, ELSE..

    Mas acabei me esquecendo de como se lê, usa ele.

    a sintaxe é mais ou menos essa:

    isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;

    no caso oque uqer dizer o "?" o ":" mesmo?

    vlw

  14. Pessoal, escuto muito o pessoal falando sobre sql injection e tals.

    Ai me perguntei, será que meu codigo está seguro?

    normalmente uso o mesmo esquema de login, alguém poderia me dizer se está correto, se falta algo, se não está seguro..

    pagina valida_user.php

    (aqui eu verifico os dados do form e valido.)

    <?php
    
    include('php/config.php');
    
    //verificando usuario
    $user = $_POST['user'];
    $senha = $_POST['pass'];
    
    $verifica[user] = mysql_query("SELECT * FROM usuarios WHERE login='$user'");
    
    if(mysql_num_rows($verifica[user]) == 0){
        print 'usuario invalido';
    }
    else{
        $l[user] = mysql_fetch_assoc($verifica[user]);
        
        //verificando senha
        if($l[user]['senha'] != $senha){
            print 'senha ou usuario invalido';
        }
        else{
            session_start();
            $_SESSION['usuario'] = $user;
            $_SESSION['senha'] = $senha;
            $_SESSION['idusuario'] = $l[user]['idusuarios'];
            header('location: painel.php');
        }
    }
    
    
    
    
    
    ?>
    Arquivos de conexão ao banco de dados.
    <?php
    
    class querys{
        var $ip = "localhost";
        var $user = "root";
        var $pass = "";
        var $database = "intranet";
        
        function abreConexao(){
            $this-> conn = mysql_connect($this->ip, $this->user, $this->pass);
            mysql_select_db($this->database, $this->conn);
        }
        
    }
    $querys = new querys;
    $querys->abreConexao();
    
    ?>

    Obs: o usuario ta root só pra teste mesmo, sempre crio usuários e dou as permissões devidas para ele.

    Deem dicas ou sugestões por favor.

    Vlw

  15. facil, vou dar um exemplo simples:

    Digamos que seu banco se chame "noticias" e que tenha 3 colunas "id" e "titulo" e "noticia";

    pagina todas_noticias.php

    //selecionando id do banco
    $seleciona = mysql_query("SELECT * FROM noticias");
    while( $linhas = mysql_fetch_assoc($seleciona)){
    $id = $linhas['id'];
    $titulo = $linha['titulo'];
    
    print '<a href="pagina_da_noticia.php?id='.$id.'">'.$titulo.'</a>';
    }
    pagina exibir_noticia.php
    $id = $_GET['id'];
    
    
    $exibir = mysql_query("SELECT * FROM noticias WHERE ID ='$id'");
    $linhas = mysql_fetch_assoc($exibir);
    
    print $linhas['noticia'];

    Nem testei mas deve funcionar certinho.

    Qlqer dúvida avisa aew.

  16. iae galera beleza,

    fiz esse script para validar os checkboxes de um form, porem digamos que tenha 5 box, se eu não marcar nenhum ele avisa que tem que marcar, porem se eu clico depois do 2º box ele avisa do mesmo jeito, mesmo estando marcado, e se eu marco o 1º ou o 2º ele vai normal.

    function emptyRemover(m){
        for(x=0; x<m.lista.length; x++){
        if(m.lista[x].checked){
        return true;
        }
        else{
        document.getElementById('aviso2').innerHTML = "Seleciona uma categoria."
        return false;
        }
        }
    
    }
    <input id="lista" type="checkbox" name="rem_cat[]" value="'.$idmenus.'">'.$menus

    tem como alguém me dar uma luz aonde eu estou errando, minha cabeça já ta doendo hehe.

    Vlw

×
×
  • Criar Novo...