Ir para conteúdo
Fórum Script Brasil

ThinkBrunus

Membros
  • Total de itens

    98
  • Registro em

  • Última visita

Posts postados por ThinkBrunus

  1. Quanto ao export que referi no post anterior, indicaram-me as seguintes aplicações: mysql administrador e do query browser.

    Desconhecia estas aplicações, já as testei e achei-as bastante eficazes e simples. Para quem tenha ou venha a ter o problema referido, fica esta possível e viável uma solução.

    Obrigado!

  2. Obrigado pela opinião!

    Optei por criar a base de dados com o tipo de tabelas InnoDB e o charset=utf8_general_ci.

    Já agora aproveito para uma situação que está a acontecer, faço o export da base dados e quando vou importar os campos são preenchidos até ao 1º caracter acentuado...para já não me faz diferença, mas no futuro quem sabe? Estou a fazer o export/import no phpMyAdmin, te aconteceu algo do genero?

  3. Viva!

    Estou a desenvolver um portal para uso interno no meu trabalho, e ando a estudar algumas matérias antes de começar a desenvolver alguma coisa.

    Gostaria de saber a vossa opinião relativamente ao tipo de tabela a utilizar, visto que com o acumular do tempo o volume de informação deve ser grande e certamente haverão situações em que vários utilizadores executaram o mesmo procedimentos em simultâneo (não sei se esta situação implica alguma precaução em especial).

  4. Bem já consegui activar o módulo ldap no php, faltou apenas uns passos. Para quem tenha a mesma dúvida deixo de seguida os passos que segui:

    1.Descomentar linha “extension=php_ldap.dll” nos ficheiros em “C:\xampp\php\php.ini” e “C:\xampp\php\php5.ini“;

    2.Adicionar nas variáveis de sistema em “Control Panel > System > Advanced > Environment Variables”.

    Seleccionar a variável de sistema “Path” e adicionar caminho onde se encontra o ficheiro “php.ini” e “php5.ini” (ex: C:\xampp\php).

    Inserir nova variável “PHPRC” e inserir caminho da directoria onde está o “php.ini”;

    3.Copiar ficheiros “php_ldap.dll”, “ssleay32.dll” e “libeay32.dll”.

  5. Viva!

    Depois de desenvolver um sistema de login com várias ajudas, de entre as quais também a vossa, pretendo adaptar este sistema login via LDAP.

    Tenho pesquisado várias matéria para entender como poderei integrar esta funcionalidade. Já encontrei alguns códigos, mas a minha dificuldade persiste em configurar o PHP para utilizar as funções LDAP. Pelo que percebi, quando executo a função phpinfo(); deveria ser apresentada a informação do módulo LDAP...

    Para carregar este módulo LDAP, segui alguns conselhos que fui encontrando durante as pesquisas, tal como descomentar linha "extension=php_ldap.dll" nos ficheiros php5.ini e php.ini

    Também já vi várias referencias aos ficheiros libsasl.dll, libeay32.dll, ssleay32.dll que devem estar na pasta "windows\system32", estes estão no meu sistema em directorias diferentes, especificamente C:\xampp\apache\bin, C:\xampp\apache\bin e C:\xampp\php nos dois restantes ficheiros, terá alguma influência?

    Futuramente e na prática, pretendo instalar o site num servidor que por sua vez se conectará a outro servidor com o win server, e neste será feita e resolvida a autenticação. Dada a situação, julgo que apenas é necessário a configuração do apache e php no servidor onde vou colocar o site, certo?

    Depois de seguir os procedimentos referidos, no phpinfo(); não aparece o módulo ldap, e quando chamo a função ldap_connect("servidor") dá-me o seguinte erro: Fatal error: Call to undefined function ldap_connect() in C:\xampp\htdocs\myLDAP\index.php on line 4

    As buscas que tenho feito e as tentativas realizadas, não tenho tido sucesso...alguém me poderia dar algumas luzes sobre o assunto?

    Abraços!

  6. Boas!

    A dúvida colocada anteriormente está praticamente resolvida, acabei por deixar assim:

    function login(){
    xmlHttp = getXmlHttpObject(); //inicializa variável com identificação do browser
    var username = encodeURI(document.getElementById('txtUserName').value);
    var password = encodeURI(document.getElementById('txtPassword').value);
    nocache = Math.random();
    xmlHttp.open("GET", "/includes/loginResponse.php?username="+username+"&password="+password+"&nocache="+nocache);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.responseText == 0){
                    alert('Dados incorrectos!');
                } else {
                    document.getElementById("iBlockUser").innerHTML = xmlHttp.responseText;
                    
                }
            }
        }
    xmlHttp.send(null);
    }
    e na página php:
    while ($result = mysql_fetch_object($sql)) {    
        if ($result->nome == true){
            $_SESSION['username'] = $result -> nome;
            echo $_SESSION['username'];
        }else{
            echo "0";
        }
    }
    Assim ficou resolvido! Apenas um pormenor, quando é autenticado o user, ele vai escrever na DIV(iBlockUser) o responseText...no index.php tenho o seguinte:
    <div id="iBlockUser">
            <?php
                if (empty($_SESSION['username'])){
                    include('includes/login.php');
                } else {
                    include('includes/logged.php');
                }
            ?>            
        </div>

    Pretendo que assim que após se escrito na DIV o responseTex, seja feito de um refresh à página de forma a actualizar a mesma e actualizar a instrução do include('includes/logged.php');

    Poderei fazer isto no seguimento do cógigo em ajax?

  7. Problema resolvido, basta alterar a seguinte linha

    xmlHttp.open("GET", "loginResponse.php?username="+username+"&password="+password+"&nocache="+nocache);

    Já agora, quando faço o login, ele dá-me o seguinte warning:

    Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3.

    Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled.

    You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively.

    in Unknown on line 0

    Isto será porquê?

  8. Olá a todos!

    Já consegui novas evoluções na minha "guerra" para implementar este sistema de login. Agora venho aqui partilhar o código, caso haja alguém com as mesmas dúvidas.

    index.php

    <?php
    session_start();
    ?>
    ...
    &lt;script src="scripts/ajax.js"></script>
    ...
        <div id="iBlockUser">
            <?php
                if (empty($_SESSION['username'])){
                    include('login.php');
                } else {
                    echo "<div id='iBlockUserLogout'>" . $_SESSION['username'] . "</div>";
                }
            ?>
            </div>
    Pretende-se que no index seja apresentado o form para o utilizador se logar, apenas se este ainda não estiver logado, se estiver logado será apresentado uma mensagem com o nome do utilizador. ajax.js
    var xmlHttp;
    var nocache = 0;
    
    function login(){
    xmlHttp = getXmlHttpObject(); //inicializa variável com identificação do browser
    var username = encodeURI(document.getElementById('txtUserName').value);
    var password = encodeURI(document.getElementById('txtPassword').value);
    nocache = Math.random();
    xmlHttp.open("GET", "loginResponse.php?username="+username+"&password="+password+"&nocache="+nocache);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.responseText == 0){
                    alert('Dados incorrectos!');
                } else{
                    document.getElementById("iBlockUser").innerHTML = xmlHttp.responseText;
                }
            }
        }
    xmlHttp.send(null);
    }
    
    
    //verifica qual o browser utilizado
    function getXmlHttpObject(){
    var xmlHttp = null;
        try {  // Firefox, Opera 8.0+, Safari
            xmlHttp=new XMLHttpRequest();
        }
        catch (e) {  // Internet Explorer
              try {
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            }
              catch (e) {
                try {
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                  }
                catch (e) {
                       alert("O browser não suporta AJAX!");
                      return false;
                  }
            }
          }
        return xmlHttp;
    }
    Verifica o browser e faz um request com os dados inseridos para os validar. responseLogin.php
    <?php
    session_start();
    include('includes/settings.php');
    
    //CÓDIGO LOGIN AJAX&PHP
    $username = $_GET['username'];
    $password = $_GET['password'];
    $sql = "SELECT * FROM ndetalhe WHERE nome='" . $username . "' AND password='" . $password . "'";
    $query = mysql_query($sql) or die('Query failed: ' . mysql_error());
    $result = mysql_num_rows($query);
        if ($result > 0){
            $_SESSION['username'] = $result -> nome;
        }else{
            echo "0";
        }

    Aqui conectamos à base dados e fazemos a query para validar os mesmos dados e retornar se são válidos ou não...

    O código está parcialmente a funcionar, ainda aparece um warning quando é feito o login, e se tivermos o nosso site a navegar dentro de outras pastas ele não vai encontar o ficheiro responseLogin.php.....estou actualmente a melhorar isso, se alguém tiver alguma dica será bem vinda.

    Abraços

  9. Resolvi seguir o teu conselho, optando por fazer o sistema de login utilizando AJAX e PHP, só não estou a conseguir fazer uma coisa, ou seja, ao inserir os dados para autenticar escrevo em php o form com uma cláusula if

    <div id="iBlockUser">
        <?php
            if (!isset($_SESSION['nome'])) {
                unset($_SESSION['nome']);
                echo"<script language='javascript' src='scripts/ajax.js'></script>
                <table><form id='frmLogin' name='frmLogin' method='post' >
                <tr>
                    <td>Username:</td>
                    <td><input type='text' name='txtUserName' id='txtUserName' size='14' maxlength='14' /></td>                
                </tr>
                <tr>
                    <td>Password:</td>
                    <td><input type='text' name='txtPassword' id='txtPassword' size='14' maxlength='14' /></td>                
                </tr>
                <tr>
                    <td colspan='2' align='right'><input name='btnLogin' value='Login' id='btnLogin' type='submit' onclick='java script:login();' /></td>
                </tr>                    
                </form>
            </table>";                    
            }else{
                include('seguranca.php');         
            }    
               </div>
        ?>
    aqui é chamado o ficheiro AJAX, busca os dados e envia-os para a página onde faz a validação dos dados
    function login(){
    xmlHttp = getXmlHttpObject(); //inicializa variável com identificação do browser
    var username = encodeURI(document.getElementById('txtUserName').value);
    var password = encodeURI(document.getElementById('txtPassword').value);
    nocache = Math.random();
    xmlHttp.open("GET", "login.php?username="+username+"&password="+password+"&nocache="+nocache);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4) {
                alert(xmlHttp.responseText);
                //document.getElementById("iMenuV").innerHTML = xmlHttp.responseText;
            }
        }
    xmlHttp.send(null);
    }
    Agora valida dados enviados e retorna valor para AJAX, e se validar correctamente cria a session com o username...
    <?php
    include('includes/config.php');
    
    //CÓDIGO LOGIN AJAX&PHP
    $username = $_GET['username'];
    $password = $_GET['password'];
    $sql = "SELECT * FROM ndetalhe WHERE nome='" . $username . "' AND password='" . $password . "'";
    $query = mysql_query($sql) or die('Query failed: ' . mysql_error());
    $result = mysql_num_rows($query);
        if ($result > 0){
            echo "Confere!";
            session_start();
            $_SESSION['nome'] = $username;
        }else{
            echo "Dados incorrectos!";
        }
    ?>
    Por fim, e aqui o meu problema:
    ......
            }else{
                include('seguranca.php');         
            }    
        ?>
    O que pretendo é que quando o user for validado, desapareça o formulário e seja apresentado o nome do user, por exemplo. Este include refere-se a essa mensagem
    <?php
        echo "Olá, " . $_SESSION['nome'];
    ?>

    Que não está a funcionar....o formulário mantem-se e a mensagem não aparece....

    coloquei on-line em : http://teste.vibeltaxis.com/index.php

  10. Olá, estou a tentar implementar um código para fazer o login em AJAX&PHP, mas não estou a conseguir resultados...será que podem dar-me uma ajudinha a ver se está alguma coisa errada no meu código?

    index.php

    <input name="btnLogin" value="Login" id="btnLogin" type="submit" onclick="login()" />
    ajax.js
    var xmlHttp;
    var nocache = 0;
    
    function login(){
    xmlHttp = getXmlHttpObject(); //inicializa variável com identificação do browser
    var username = encodeURI(document.getElementById('txtUserName').value);
    var password = encodeURI(document.getElementById('txtPassword').value);
    nocache = Math.random();
    xmlHttp.open("GET","login.php?username="+username+"&password="+password"&nocache="+nocache);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
                document.getElementById("iMenuV").innerHTML = xmlHttp.responseText;
            }
        }
    xmlHttp.send(null);
    }
    
    //verifica qual o browser utilizado
    function getXmlHttpObject(){
    var xmlHttp = null;
        try {  // Firefox, Opera 8.0+, Safari
            xmlHttp=new XMLHttpRequest();
            id_browser=1;
        }
        catch (e) {  // Internet Explorer
              try {
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
                id_broowser=2;
            }
              catch (e) {
                try {
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                    id_browser=3;
                  }
                catch (e) {
                       alert("O browser não suporta AJAX!");
                      return false;
                  }
            }
          }
        return xmlHttp;
    }
    login.php
    <?php
    include('includes/config.php');
    $username = $_GET['txtUserName'];
    $password = $_GET['txtPassword'];
    
    $query = "SELECT * FROM ndetalhe WHERE nome='" . $username . "' AND password='" . $password . "'";
    $result = mysql_query($query) or die('Query failed: ' . mysql_error());
        $validUser = mysql_num_rows($result);
        if ($validUser > 0){
            echo "Confere!";
        }else{
            echo "Dados incorrectos!";
        }
    ?>
    O objectivo é depois de isto funcionar, trabalhar com sessões, mas isso é outra conversa. :blush: Boas! O o código já está ajustado, e já está a funcionar! O problema agora é implementar as sessões entre AJAX e PHP, e não sei onde hei-de colocar, estou a tentar mandar escrever assim:
    document.getElementById("iBlockUserLogout").innerHTML = "session_start(); $_SESSION['test'] = $username;";

    Como não está a funcionar não me parece que seja boa ideia...alguém já teve algum problema idêntico?

  11. Olá!

    Mais uma vez venho em busca de uma opinião sobre como fazer um sistema de login.

    O que pretendo é que o user faça o login no form normal e os dados sejam validados na mesma página, e se a autenticação for validada, queria que desaparecesse o tal formulário e aparecesse os dados do user, por exemplo.

    Entretanto já fiz umas pesquisas e algum estudo para desenvolver algo em AJAX e PHP, ou só em PHP. De momento estou a tentar implementar AJAX com PHP mas já tenho a cabeça quase em àgua....

    Gostava de saber opiniões.

    Obrigado!

  12. Boa noite!

    Gostaria de saber como é possivel criar um "indicador" de localização de navegação actual do site, como por exemplo:

    Fórum Script Brasil > Programação & Desenvolvimento > PHP

    Não sei se será com PHP ou outra linguagem...tenho procurado encontrar algumas dicas sobre como desenvolver esta funcionalidade, mas não encontro nada....poderei esta a pesquisar da maneira errada, na verdade não sei como designar esta funcionalidade.

    Obrigado!

  13. Espero que você não se ofenda, mas qual a sua real função na empresa? Pois pelas suas perguntas você não deve ser programador ou algo que o valha, ou pelo menos não tem lá muita idéia do que é desenvolver em algo para a web (mesmo que intranet).

    Com certeza não me ofendo :)

    Na verdade tenho alguns conhecimentos de programação web, já fiz alguns sites, mas na verdade estou um pouco verde! Por isso estou indeciso em utilizar um CMS ou desenvolver um portal de raiz.

    Não me entenda mal, mas o fato é que no seu caso, você vai ser um para-ráio, se algo der problema você vai ser apontado na hora e vai ter que ter uma solução para resolver a questão no menor tempo possível, logo, você deve considerar que não vai poder contar com ninguém de fora para isso. Em resumo, a menos que você realmente tenha experiência nesse cenário e saiba exatamente onde está se metendo, é bom avisar os outros sobre esse fato.
    Também já tinha pensado nessa situação, ainda mais se for algo criado de raiz...ainda torna a situação mais preocupante! Pois se desenvolver a partir dum CMS sempre poderá alguém mais adimistrar o portal e eu apenas limito-me a desenvolver, caso contrário, tenho de criar meios para alguém administrar...vou meditar sobre o assunto tendo em conta a opinião!

    Com certeza é melhor você pegar uma base madura e desenvolver em cima, hoje em dia uma das coisas que dá mais retorno no nosso meio é o desenvolvimento a partir de soluções já maturadas, como por exemplo as ferramentas em ABAP para o SAP.

    Já tinhe ouvido falar de SAP, mas não tenho muito pouco conhecimento sobre o assunto, é uma referência e vou procura mais sobre ABAP e SAP.

    PS: você estava usando o MEMHT padrão ou o MEMHT PHP-OO?

    Estava a utilizar memht 4.0.1, julgo que seja o mem padrão! Não deu certo porque no desenvolvimento de páginas virtuais não era compativel com a tag <script> tornado-se a meu ver limitado, por exemplo, tinha uma aplicação que desenvolvi com a ajuda aqui deste forum e de outros também, que era basicamente o preenchimento de uma segunda combo dependendo da escolha de uma primeira combos, isto em php e ajax. Na verdade ele acabava por não funcionar porque ele não reconhecia a dita tag <script>, apenas por isso abandonei o memht

    Obrigado ESerra e Norivan pelas vossas opiniões!

    Vou meditar sobre o assunto e pensar muito bem no que vou fazer!

    Abraço

  14. Olá a todos!

    Foi-me atribuída nova tarefa no meu trabalho, consiste em desenvolver funcionalidade num portal com vista à optimização de processos, ou seja, acabar com o papel!

    Estava a trabalhar num CMS, o memht mas surgiram algumas incompatibilidades que me dificultaram a vida. Estive a testar alternativas CMS (Joomla, modx e Jaws), mas não está a ser fácil tomar uma decisão...também coloquei como hipótese desenvolver uma aplicação de raiz.

    Na verdade estou mais inclinado para desenvolver uma aplicação de raiz, tornando este num portal funcional, intuitivo de fácil interacção com o utilizador, e as minhas dúvidas são:

    - quais as hipóteses de criar sistema de autenticação englobando permissões a determinadas àreas do portal, ou seja, criação de determindadas secções onde determinado utilizador terá permissões de acesso e administração.

    - nestas secções, armazenar informação em suporte digital, em maioria ficheiros pdf.

    Talvez o aspecto negativo de criar um portal de raiz é que só quem tenha algum conhecimento de programação é que possa desenvolver ou modificar alguma coisa, enquanto com CMS é mais simples...acho eu! (posso estar enganado)

    Desde já agradeço as vossas opiniões!

    Obrigado!

  15. A segunda combo não carrega os dados.

    No link que deixei tem lá um link com o código...

    Se poder dar alguma dica agradeço!

    Já me indicaram a solução, caso haja alguém com o mesmo problema, a solução é adicionar a seguinte linha: document.getElementById("txtHint").outerHTML="<select id=\"txtHint\" name=\"txtHint\">"+xmlHttp.responseText+"</select>";

    Assim a aplicação fica compativel com o IE!

    Abraços

  16. Olá a todos!

    Coloquei em tempos um tópico sobre como preencher uma segunda combo dependendo do valor escolhido numa primeira combo.

    Com empurrão daqui e dali consegui colocar a funcionar,mas só hoje reparei que este código não está a funcionar correctamente no IE....na verdade não estava à espera de tal coisa, já aconteceu por aqui ou é algum pormenor que não me dei conta!?

    Deixo o link, pode ajudar a esclarecer alguma coisa: http://thinkbrunus.pt.vu

    Abraços!

  17. então aqui vai o código

    index.php

    <html>
    <head>
    <script src="selectuser.js"></script>
    </head>
    <body>
    <form> 
    <table width="60%" border="0">
      <tr>
        <td width="25%"><select name="select_divisao" onChange="showUser(this.value)">
          <option value="0" selected>Escolha a divisão ::::::</option>
          <?php         
            $sql = mysql_query("SELECT * FROM divisao") or die("Query Error" . mysql_error());
            while ($row = mysql_fetch_array($sql)){
                echo "<option value=" . $row['id_divisao'] . ">" . $row['divisao'] . "</option>";    
            };
        ?>
        </select></td>
        <td width="74%"><div id="txtHint"></div></td>
      </tr>
    </table>
    </form>
    </body>
    </html>
    getuser.php
    <?php
    $q=$_GET["q"];
    //ligação teste
    $con = mysql_connect('localhost', 'root', '');
    
    
     {
     die('Erro de ligação: ' . mysql_error());
     }
    //ligação teste
    mysql_select_db("db_teste", $con); 
    
    
    $sql="SELECT * FROM user WHERE id_divisao = '" . $q . "'";
    $result = mysql_query($sql);
    echo "<select name'select_user'>";
        while($row = mysql_fetch_array($result)){
            echo "<option value = '" . $row['id_divisao'] . "'>" . $row['user'] . "<option>";
        };
    echo "</select>";
    mysql_close($con);
    ?>
    selectuser.js
    var xmlHttp;
    function showUser(str){ 
        xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null){
            alert ("O browser não suporta protocolo HTTP Request");
            return;
        }
        var url="getuser.php";
        url=url+"?q="+str;
        url=url+"&sid="+Math.random();
        xmlHttp.onreadystatechange=stateChanged;
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }
    
    function stateChanged(){ 
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
            document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
        } 
    }
    
    function GetXmlHttpObject(){
        var xmlHttp=null;
        try{
            // Firefox, Opera 8.0+, Safari
            xmlHttp=new XMLHttpRequest();
         }
        catch (e){
            //Internet Explorer
            try{
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            }
             catch (e){
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
         }
        return xmlHttp;
    }

×
×
  • Criar Novo...