Jump to content
gleidsonb12

Sistema de login com senha criptografara

Recommended Posts

Eu desenvolvi um sistema de login que envia a senha cadastrada no formulário já criptografara em md5, até ai tudo bem, eu consigo enviar os dados corretamente para o banco de dados, inclusive com a senha criptografara, mas o problema é na hora de fazer o login, quando insiro os dados de login, exatamente como foram cadastrados, o sistema não reconhece os caracteres digitados, pq no BD está diferente por conta da criptografia.

 

O código que envia os dados para o BD é o seguinte:

 

<?php

include "_conexao/conexao.php";

if (isset($_POST['nomecompleto'])&&($_POST['endereco'])&&($_POST['telefone'])&&($_POST['postograduacao'])&&($_POST['re'])&&($_POST['nomedeguerra'])&&($_POST['opm'])&&($_POST['senha'])){

    $nomecompleto = $_POST['nomecompleto'];
    $endereco = $_POST['endereco'];
    $telefone = $_POST['telefone'];
    $postograduacao = $_POST['postograduacao'];
    $re = $_POST['re'];
    $nomedeguerra = $_POST['nomedeguerra'];
    $opm = $_POST['opm'];
    $senha = $_POST['senha'];
    $senhacripto = md5($senha);

    $sql = (mysqli_query($conexao, "INSERT INTO cadastro(re,nomecompleto,nomedeguerra,postograduacao,endereco,telefone,unidade,senha) VALUES ('$re','$nomecompleto','$nomedeguerra','$postograduacao','$endereco','$telefone','$opm', '$senhacripto')"));

    echo "<script>
            alert('Cadastro realizado com sucesso!');
            </script>";
}


?>

 

E esse aqui é o da página de validação, que recebe os dados do formulário de login e compara com os dados do BD, mas não está reconhecendo o campo senha:

 

 

<?php
if((isset($_POST['re'])) && (isset($_POST['senha']))) {
    $usuario = mysqli_real_escape_string($conexao, $_POST['re']);
    $senha = mysqli_real_escape_string($conexao, $_POST['senha']);
    $senhacripto = md5($senha);

    $sql = mysqli_query($conexao, "SELECT * FROM cadastro WHERE re = '$usuario' && senha = '$senhacripto' LIMIT 1");
    $row = mysqli_num_rows($sql);

    if ($row > 0) {
        $_SESSION["usuario"] = $_POST["re"];
        $_SESSION["senha"] = $_POST["senha"];
        echo "<script>logado()</script>";
    } else {
        echo "<script>deslogado()</script>";
    }
}
?>

 

Alguma dica de onde estou errando para o sistema não reconhecer a senha do usuário?

 

PS: quando envio a senha sem criptografia o sistema funciona perfeitamente, mas com criptografia dá esse problema.

Share this post


Link to post
Share on other sites

Talvez a ordem das coisas esteja esquisita, tente assim:

$senha_post = md5($_POST['senha']);
$senha_banco = mysqli_real_escape_string($conexao, $senha_post);

Porque o mysql_real_escape_string pode estar adicionando algo na senha antes do md5(), e fazendo a diferença.

 

Se não for isso, mande como fica no banco de dados e o HTML também.

  • +1 1

Share this post


Link to post
Share on other sites

Não deu certo @Kosonome... meus arquivos estão assim:

 

valida.php:

 

<?php
session_start();
include "conexao.php";
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Logando Usuário</title>
    <script type="text/javascript">
        function logado(){
            window.location='../servicos.php';
        }

        function deslogado(){
            window.location='../index.php';
        }
    </script>
</head>
<body>
<?php
if((isset($_POST['re'])) && (isset($_POST['senha']))) {
    $usuario = mysqli_real_escape_string($conexao, $_POST['re']);
    $senha = mysqli_real_escape_string($conexao, $_POST['senha']);
    $senhacripto = md5($senha);

    $sql = mysqli_query($conexao, "SELECT * FROM cadastro WHERE re = '$usuario' && senha = '$senhacripto' LIMIT 1");
    $row = mysqli_num_rows($sql);

    if ($row > 0) {
        $_SESSION["usuario"] = $_POST["re"];
        $_SESSION["senha"] = $_POST["senha"];
        echo "<script>logado()</script>";
    } else {
        echo "<script>deslogado()</script>";
    }
}
?>
</body>
</html>

 

cadastro.php:

 

 

<?php
session_start();
if(!isset($_SESSION["usuario"]) && !isset($_SESSION["senha"])){
    header("Location: index.php");
    exit;
}
?>

<?php

include "_conexao/conexao.php";

if (isset($_POST['nomecompleto'])&&($_POST['endereco'])&&($_POST['telefone'])&&($_POST['postograduacao'])&&($_POST['re'])&&($_POST['nomedeguerra'])&&($_POST['opm'])&&($_POST['senha'])){

    $nomecompleto = $_POST['nomecompleto'];
    $endereco = $_POST['endereco'];
    $telefone = $_POST['telefone'];
    $postograduacao = $_POST['postograduacao'];
    $re = $_POST['re'];
    $nomedeguerra = $_POST['nomedeguerra'];
    $opm = $_POST['opm'];
    $senha = $_POST['senha'];
    //$senhacripto = md5($senha);

    $sql = (mysqli_query($conexao, "INSERT INTO cadastro(re,nomecompleto,nomedeguerra,postograduacao,endereco,telefone,unidade,senha) VALUES ('$re','$nomecompleto','$nomedeguerra','$postograduacao','$endereco','$telefone','$opm', '$senha')"));

    echo "<script>
            alert('Cadastro realizado com sucesso!');
            </script>";
}


?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="utf-8">

    <meta name="description" content="Policia Militar do Estado de Rondônia">
    <meta name="keywords" content="policia, militar, rondonia, crp3, crpiii, gleidson benfica fernandes">
    <meta name="author" content="Gleidson Benfica Fernandes">
    <meta name="google" content="notranslate">
    <meta name="reply-to" content="gleidsonb12@gmail.com">

    <title>Coordenadoria Regional de Policiamento III</title>

    <!-- Customizados -->
    <link href="_css/login.css" rel="stylesheet">
    <script src="_js/siga.js"></script>
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
    <link href="_css/cadastro.css" rel="stylesheet">

    <!-- Bootstrap -->
    <link href="_bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <link href="_bootstrap/css/bootstrap-theme.css" rel="stylesheet">
    <link href="_bootstrap/dist/css/bootstrap-submenu.min.css" rel="stylesheet" >
    <link href="_bootstrap/dist/css/bootstrap-submenu.min.css" rel="stylesheet" >

    <script src="_bootstrap/js/jquery.min.js"></script>
    <script src="_bootstrap/js/bootstrap.min.js"></script>
    <script src="_bootstrap/dist/js/bootstrap-submenu.min.js" defer></script>
    <script src="_bootstrap/js/highlight.min.js" defer></script>
    <script src="_bootstrap/js/bootstrap.js" defer></script>
    <script src="_bootstrap/dist/js/bootstrap-submenu.min.js" defer></script>
    <script src="_bootstrap/dist/js/bootstrap-submenu.js" defer></script>
    <script src="_bootstrap/js/docs.js" defer></script>
    <script src="_bootstrap/js/bootstrap.min.js"></script>

</head>

<body>

<div class="main">

<div id="navbar">
    <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">
                <span class="sr-only"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">CRP III</a>
        </div>

        <div class="collapse navbar-collapse" id="navbar-collapse-1">
            <ul class="nav navbar-nav">
                <li><a href="servicos.php">Serviços</a></li>
                <li class="active"><a href="cadastro.php">Cadastro</a></li>
                <li><a href="sair.php">Sair</a></li>
            </ul>
        </div><!-- /.navbar-collapse -->
    </nav>
</div> <!-- fim do menu -->

<form class="form-horizontal" method="post" action="cadastro.php">
    <fieldset>
        <!-- Form Name -->

        <div class="col-md-6 col-md-offset-3">

            <legend>Cadastrar novo usuário</legend>

            <!-- Text input-->
            <div class="col-md-12">
                <input id="nomecompleto" name="nomecompleto" type="text" placeholder="Nome Completo" class="form-control input-md" required>
            </div>

            <!-- Text input-->
            <div class="col-md-8">
                <input id="endereco" name="endereco" type="text" placeholder="Endereço" class="form-control input-md" required>
            </div>

            <!-- Text input-->
            <div class="col-md-4">
                <input id="telefone" name="telefone" type="text" placeholder="Telefone" class="form-control input-md" required>
            </div>

            <!-- Select Basic -->
                <div class="col-md-4">
                    <select id="postograduacao" name="postograduacao" class="form-control" required>
                        <option value="" disabled selected>Posto ou Graduação</option>
                        <option value="CEL PM">CEL PM</option>
                        <option value="TC PM">TC PM</option>
                        <option value="MAJ PM">MAJ PM</option>
                        <option value="CAP PM">CAP PM</option>
                        <option value="1º TEN PM">1º TEN PM</option>
                        <option value="2º TEN PM">2º TEN PM</option>
                        <option value="ASP OF PM">ASP OF PM</option>
                        <option value="SUB TEN PM">SUB TEN PM</option>
                        <option value="1º SGT PM">1º SGT PM</option>
                        <option value="2º SGT PM">2º SGT PM</option>
                        <option value="3º SGT PM">3º SGT PM</option>
                        <option value="AL SGT PM">AL SGT PM</option>
                        <option value="CB PM">CB PM</option>
                        <option value="AL CB PM">AL CB PM</option>
                        <option value="SD PM">SD PM</option>
                    </select>
                </div>

            <!-- Text input-->
                <div class="col-md-4">
                    <input id="re" name="re" type="number" placeholder=" Digite o RE (ex: 01234-5)" class="form-control input-md" required>
                </div>

            <!-- Text input-->
                <div class="col-md-4">
                    <input id="nomedeguerra" name="nomedeguerra" type="text" placeholder="Nome de Guerra" class="form-control input-md" required>
                </div>

            <!-- Select Basic -->
                <div class="col-md-4">
                    <select id="opm" name="opm" class="form-control" required>
                        <option value="3º BPM - Vilhena">3º BPM - Vilhena</option>
                        <option value="PCSv/3º BPM - Vilhena">PCSv/3º BPM - Vilhena</option>
                        <option value="Pel Chq/2º Cia Pol Ost/3º BPM - Vilhena">Pel Chq/2º Cia Pol Ost/3º BPM - Vilhena</option>
                        <option value="Pel Tran/2º Cia Pol Ost/3º BPM - Vilhena">Pel Tran/2º Cia Pol Ost/3º BPM - Vilhena</option>
                        <option value="1ª Cia Pol Ost/3º BPM - Vilhena">1ª Cia Pol Ost/3º BPM - Vilhena</option>
                        <option value="2ª Cia Pol Ost/3º BPM - Vilhena">2ª Cia Pol Ost/3º BPM - Vilhena</option>
                        <option value="3ª Cia PO Fron/3º BPM - Colorado do Oeste">3ª Cia PO Fron/3º BPM - Colorado do Oeste</option>
                        <option value="4ª Cia PO Fron/3º BPM - Cerejeiras">4ª Cia PO Fron/3º BPM - Cerejeiras</option>
                        <option value="1º Gp Pol Ost/1º Pel Pol Ost/3º BPM - Nova Conquista">1º Gp Pol Ost/1º Pel Pol Ost/3º BPM - Nova Conquista</option>
                        <option value="Pel PO Fron/2ª Cia/3º BPM - Chupinguaia">Pel PO Fron/2ª Cia/3º BPM - Chupinguaia</option>
                        <option value="2º Gp PO Fron/Pel PO Fron/2ª Cia Pol Ost/3º BPM - Novo Plano">2º Gp PO Fron/Pel PO Fron/2ª Cia Pol Ost/3º BPM - Novo Plano</option>
                        <option value="3º Gp PO Fron/Pel PO Fron/2ª Cia Pol Ost/3º BPM - Guaporé">3º Gp PO Fron/Pel PO Fron/2ª Cia Pol Ost/3º BPM - Guaporé</option>
                        <option value="4º Gp PO Fron/Pel PO Fron/2ª Cia Pol Ost/3º BPM - Boa Esperança">4º Gp PO Fron/Pel PO Fron/2ª Cia Pol Ost/3º BPM - Boa Esperança</option>
                        <option value="3º Gp PO Fron/3º Pel PO Fron/3ª Cia PO Fron/3º BPM - Cabixi">3º Gp PO Fron/3º Pel PO Fron/3ª Cia PO Fron/3º BPM - Cabixi</option>
                        <option value="2º Gp PO Fron/4º Pel PO Fron/4ª Cia PO Fron/3º BPM - Corumbiara">2º Gp PO Fron/4º Pel PO Fron/4ª Cia PO Fron/3º BPM - Corumbiara</option>
                        <option value="2º Gp PO Fron/3º Pel PO Fron/4ª Cia PO Fron/3º BPM - Pimenteiras">2º Gp PO Fron/3º Pel PO Fron/4ª Cia PO Fron/3º BPM - Pimenteiras</option>
                    </select>
                </div>

            <!-- Text input-->
            <div class="col-md-4">
                <input id="senha" name="senha" type="password" placeholder="Senha" class="form-control input-md">
            </div>

            <!-- Button -->
            <div class="col-md-4">
                <input type="submit" id="enviar" name="enviar" class="btn btn-default" value="Enviar" />
            </div>

        </div> <!-- fim da div offset -->


    </fieldset>
</form>

</body>
</html>

 

index.php:

 

 

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="utf-8">

    <meta name="description" content="Policia Militar do Estado de Rondônia">
    <meta name="keywords" content="policia, militar, rondonia, crp3, crpiii, gleidson benfica fernandes">
    <meta name="author" content="Gleidson Benfica Fernandes">
    <meta name="google" content="notranslate">
    <meta name="reply-to" content="gleidsonb12@gmail.com">

    <title>Coordenadoria Regional de Policiamento III</title>

    <!-- Customizados -->
    <link href="_css/login.css" rel="stylesheet">
    <script src="_js/siga.js"></script>
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">

    <!-- Bootstrap -->
    <link href="_bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <link href="_bootstrap/css/bootstrap-theme.css" rel="stylesheet">
    <link href="_bootstrap/dist/css/bootstrap-submenu.min.css" rel="stylesheet" >
    <link href="_bootstrap/dist/css/bootstrap-submenu.min.css" rel="stylesheet" >

    <script src="_bootstrap/js/jquery.min.js"></script>
    <script src="_bootstrap/js/bootstrap.min.js"></script>
    <script src="_bootstrap/dist/js/bootstrap-submenu.min.js" defer></script>
    <script src="_bootstrap/js/highlight.min.js" defer></script>
    <script src="_bootstrap/js/bootstrap.js" defer></script>
    <script src="_bootstrap/dist/js/bootstrap-submenu.min.js" defer></script>
    <script src="_bootstrap/dist/js/bootstrap-submenu.js" defer></script>
    <script src="_bootstrap/js/docs.js" defer></script>
    <script src="_bootstrap/js/bootstrap.min.js"></script>

</head>

<body>

<div>
    <div class="main">

        <div class="container">
            <center>
                <div id="titulo">
                    <h1>S . I . G . A</h1>
                    <h4>Sistema Integrado de Gestão Adminsitrativa da PMRO</h4>
                </div>

                <div class="middle">
                    <div id="login">

                        <form action="_conexao/validar.php" method="POST">

                            <fieldset class="clearfix">

                                <p ><span class="fa fa-user"></span><input type="text"  Placeholder="Usuário" name="re" id="re" required></p> <!-- JS because of IE support; better: placeholder="Username" -->
                                <p><span class="fa fa-lock"></span><input type="password"  Placeholder="Senha" name="senha" id="senha" required></p> <!-- JS because of IE support; better: placeholder="Password" -->

                                <div>
                                    <span style="width:48%; text-align:left; display: inline-block; color:"><a  style="color: #ffffff;" href="" onclick="creditos()">Créditos</a></span>
                                    <span style="width:50%; text-align:right;  display: inline-block;"><input type="submit" value="Entrar"></span>
                                </div>

                            </fieldset>
                            <div class="clearfix"></div>
                        </form>

                        <div class="clearfix"></div>

                    </div> <!-- end login -->

                    <div class="logo"><img src="_img/pmro-brasao-sf.png" style="width: 160px"/>

                        <div class="clearfix"></div>
                    </div>

                </div>
            </center>
        </div>
    </div>
</div>
</body>
</html>

 

Se puderem ajudar a resolver o login com a senha criptografara... agradeço...

Share this post


Link to post
Share on other sites

Seu código para mim parece que funcionaria, como não causa nenhum erro, você teria que ficar verificando como a $senhacripto está indo para o banco de dados. O jeito mais fácil é adicionando um:

var_dump($senhacripto); exit;

Tente no cadastro.php o código acima para fazer exibir como seria a senha com hash/criptografada. Faça a mesma coisa com o valida.php. Se forem iguais, está meio caminho andado.

 

Você pode tentar fazer exibir seu SQL também. Faça algo tipo isso:

$sql_query = "SELECT * FROM cadastro WHERE re = '$usuario' && senha = '$senhacripto' LIMIT 1";
var_dump($sql_query);
exit;

Com o SQL em mãos, você consegue jogar isso diretamente no banco de dados e ver o resultado. Também pode fazer isto para o cadastro.php na hora do INSERT para ver se está acontecendo algo de errado.

  • +1 1

Share this post


Link to post
Share on other sites

Funcionou @Kosonome, muito obrigado amigo... fiz como você me disse, e descobri que o valor que estava indo para o Banco de Dados era diferente do que eu estava cadastrando, simplesmente pq o "esperto" aqui colocou o campo senha do BD como varchar de 20, e a senha, após ser criptografara com md5 fica com 32 caracteres, logo, não caberia no campo senha, pois ficaria incompleta... Já aproveitei e criptografei duplamente a senha, com sha1 e md5, ficando a mesma com 40 caracteres no Banco de dados, que agora eu configurei o campo senha para varchar de 45...

 

Está sensacional agora... resolvido... obrigado pelas dicas @Kosonome, foram fundamentais para descobrir o problema.

 

Espero também poder contribuir com os companheiros do fórum, pois sempre que precisei encontrei auxilio aqui... muito obrigado a todos!

  • +1 1

Share this post


Link to post
Share on other sites

Procure utilizar as funções nativas de criptografia como o http://php.net/manual/pt_BR/function.password-hash.php

 

Porque?
Porque através do sha1 e md5 é facil um "ataque de força bruta" e assim fragilizando o seu sistema e "facilitando" o trabalho do fulano que estiver tentando invadir o seu sistema. Além disso, existem já diversas discussões e artigos provando por A mais B que hash md5 e sha1 para dados "sensiveis" como senhas é absolutamente "loucura" utilizar nos dias de hoje.

 

Através do password_hash você terá SEMPRE um hash diferente, mesmo quando o conteudo é igual e isso dificulta enormemente um ataque de força bruta e deixa o seu sistema muito mais seguro e além disso a possibilidade de conflito de hash é quase impossivel ao comparar com o md5 e sha1, mesmo se utilizados em conjunto.

  • +1 2

Share this post


Link to post
Share on other sites
7 horas atrás, gleidsonb12 disse:

Funcionou @Kosonome, muito obrigado amigo... fiz como você me disse, e descobri que o valor que estava indo para o Banco de Dados era diferente do que eu estava cadastrando, simplesmente pq o "esperto" aqui colocou o campo senha do BD como varchar de 20, e a senha, após ser criptografara com md5 fica com 32 caracteres, logo, não caberia no campo senha, pois ficaria incompleta... Já aproveitei e criptografei duplamente a senha, com sha1 e md5, ficando a mesma com 40 caracteres no Banco de dados, que agora eu configurei o campo senha para varchar de 45...

 

Está sensacional agora... resolvido... obrigado pelas dicas @Kosonome, foram fundamentais para descobrir o problema.

 

Espero também poder contribuir com os companheiros do fórum, pois sempre que precisei encontrei auxilio aqui... muito obrigado a todos!

 

Pior que eu só poderia ajudar se eu conhecesse o schema do seu banco de dados, nunca ia imaginar que estava com 20 caracteres. E como o Guilherme recomendou, use o password_hash(), é tipo 100 vezes mais seguro que um md5 simples.

  • +1 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By bobzznnn
      Olá meus amigos, eu não sei onde postar minha dúvida, então vou por aqui pois talvez alguem possa me ajudar.
      É o seguinte, trabalho com sistema de Marketing em Laravel e pra cada usuário tem comissões multiniveis, ou seja
      " Pedro indicou Maria( que neste caso 'Maria' Ficaria em Baixo de 'Pedro'. Até aí tudo bem!) logo após 'Maria' Recrutou outro membro o 'Joaquin'
      ( que neste caso 'Joaquin' Ficaria em Baixo de 'Maria')<-- eu não consigo mostrar este indicado('Joaquin') ao 'Pedro' que está lá em cima.
       
      Exemplo: Suponhamos que eu sou o tal 'Pedro' e este da imagem abaixo é a 'Maria', sendo em baixo dela tem o ' Joaquin'(que n está aparecendo).
      Gostaria de saber alguma forma de como clicar na 'Maria' e aparecer o 'Joaquin'.
       
       

       
      segue meu html:
       
      <table id="example2" class="table table-bordered table-hover"> <thead> <tr> <th>Nome</th> <th>Email</th> <th>Telefone</th> <th>Situação</th> <th>Investimento</th> <th>Graduação</th> </tr> </thead> <tbody> @inject('usuarios', 'App\User') @foreach($usuarios->getIndicados() as $user) <tr> <td><b>{{$user->name}}</b></td> <td>{{$user->email}}</td> <td>{{$user->telefone}}</td> <!-- <td>{{$user->getUserDirection()}}</td> --> <td>{{$user->getStatus()}}</td> <td>{{$user->getPacote()->nome}}</td> <td>{{$user->minhaGraduacao()}}</td> </tr> @endforeach </tbody> </table>  
      Aqui o PHP:
       
      public function getIndicados($id = '') { if ($id == '') { $id = Auth::user()->id; } $reffer = Referrals::where('pai_id', $id)->get(); $users = array(); foreach ($reffer as $key => $r) { $users[$key] = $this->where('id', $r->user_id)->first(); } return $users; } public function getFilhos($id = null, $count = false) { if (!$id) { $id = $this->id; } $reffer = Referrals::where('system_id', $id)->orderBy('direcao', 'ASC')->get(); $users = array(); foreach ($reffer as $key => $r) { $user = $this->where('id', $r->user_id)->first(); $user->direcao = $this->getUserDirection($r->user_id); $users[$key] = $user; } if ($count) { return count($users); } return $users; }  
    • By winter2018
      Boa tarde galera. Como vão?
       
      Preciso de uma ajuda aqui por favor
      Estou a desenvolver um sistema de gestão de estagiários.
       
      Eu preciso ter as seguintes funcionalidades:
      1-O sistema deve ter um painel / portal do próprio estagiario aonde ele vai poder aceder os seus dados, e edita-los
      . 2- O estagiarios  pode anexar os seus documentos e actualizar a sua foto.
      3- Deve ser possível o admin enviar informações ou ficheiros para todos estagiarios 
      estou com dificuldade em implementar essas funcionalidades.
       
      Alguem ajuda por favor?
       
      Winter2018
       
       
       
    • By Fabio Montilla
      Meus caros, bom dia!
       
      Estou tendo o seguinte problema no meu projetox em php:
      Criei um projeto com Composer no php onde coloquei o php para ouvir a pasta public pelo prompt de comando. Porém, quando subo o projeto para o site ou para o htdocs do xampp, o resultado da exibição do index (dominio/projetox/public) é branco. Não exibe nada nem nenhum warning. Rodando com o servidor php via prompt ouvindo direto na pasta public o projeto roda normalmente.
      A estrutura do projeto é essa (tem uma imagem anexada também):
      projeto x -App -Controller (pasta com os controllers) -Model (pasta com os models) -View (pasta com as views) -Connection (Classe de conexão com o banco) -Route (Classe que gerencia as rotas acessadas no navegador e instancia os controllers necessários) -public -.htaccess -index.php (Página de início da aplicação que instancia a classe Route para determinar o fluxo da aplicação) -vendor -composer (pasta com os arquivos do composer) -autoload.php composer.json composer.lock composer.phar Quando incluo arquivos na pasta public e acesso diretamente, o arquivo funciona normalmente. Ou seja, o servidor está ouvindo todas as pastas.
       
      Poderiam me ajudar nessa questão? Se tenho que configurar algo no servidor ou no meu projeto? Sou novato no PHP e agradeceria demais a ajuda de vocês.
      Desde já, sou grato!

    • By makinh0
      algoritmo "CalculoIMC"
      var
         M, A, IMC: Real
      iniciO
          Escreva ("Massa (Kg): ")
          Leia(M)
          Escreva("Altura (m): ")
          Leia (A)
          IMC <- M / (A ^ 2) //massa dividido pela altura ao quadrado;;//
          Escreval("IMC: ", IMC :5:2) //5Casas e 2 decimais //
          Se (IMC >= 18.5) E (IMC < 25) entao
          Escreva ("Parabens! Voce esta no seu peso ideal")
          senao
          Escreva("Voce nao esta na faixa de peso ideal")
          FimSe
          
      fimalgoritmo
       
    • By tarsio
      Boa noite pessoa so novo na programação e gostaria de saber, porque meu tempo limite de consulta está no limite, esse e um pedaço do código fora esse tenho mais 14 query então só 8 funcionam e gostaria de saber alguma maneira para que todas a consultas funcionem. Colocando botoes de alguma maneira resolver esse problema.    <div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse9"><h2>cliente<h2></a>
      </h3> </div> <div id="collapse9" class="panel-collapse collapse"> <div> <?php try{   $query7= $Conexao->query( " SELECT C.FTP_CLIENTE,dbo.MinutesToDuration2021(SUM(DATEDIFF(MINUTE,E.DT_ENVIADO,E.DT_RECEBIDO)),COUNT(E.ID_EXAME)) as TEMPO FROM WR_CLIENTE C INNER JOIN E ON  =  WHERE  = 2 AND (convert(datetime,'$datai',110)) AND (convert(datetime,'$dataf',110)) GROUP BY E ORDER BYE ASC;");   $exs7 = $query7->fetchAll();   }catch(Exception $e){ echo $e->getMessage(); exit; }   ?> <br> <br> <table id="table11" data-toggle="table" class="table table-hover" data-sort-name="FTP_CLIENTE" data-sort-name="TEMPO"> <thead> <tr> <th data-field="FTP_CLIENTE" data-sortable="true" scope="row">CLIENTE</th> <th data-field="TEMPO" data-sortable="true" scope="row">TEMPO</th> </tr> </thead> <tbody> <!---carregar os refistro --> <?php foreach($exs7 as $ex) { ?> <tr>   <td><?php echo $ex['FTP_CLIENTE'];?></td> <td><?php echo $ex['TEMPO'];?></td> </tr> <button class="mais">Carregar mais</button> <?php } ?> </tbody> </table> </div> </div> </div> </div>   </div>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.