Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pellegrini2106

Problema com hierarquia de pastas no MVC

Recommended Posts

Olá galera do php tenho um probleminha estou desenvolvendo um sistema de login  no padrão MVC , mas só que o Conteúdo responsável por logar some da pagina. Lembrando que uso a classe usuário para fazer um crud também.:thumbsup:

Modelo:
<?php

class Usuario {

    private $id_usuario;
    private $nome;
    private $email;
    private $perfil;
    private $usuario;
    private $senha;

    public function getId_usuario() {
        return $this->id_usuario;
    }

    public function getNome() {
        return $this->nome;
    }

    public function getEmail() {
        return $this->email;
    }

    public function getPerfil() {
        return $this->perfil;
    }

    public function getUsuario() {
        return $this->usuario;
    }

    public function getSenha() {
        return $this->senha;
    }

    public function setId_usuario($id_usuario) {
        $this->id_usuario = $id_usuario;
    }

    public function setNome($nome) {
        $this->nome = $nome;
    }

    public function setEmail($email) {
        $this->email = $email;
    }

    public function setPerfil($perfil) {
        $this->perfil = $perfil;
    }

    public function setUsuario($usuario) {
        $this->usuario = $usuario;
    }

    public function setSenha($senha) {
        $this->senha = $senha;
    }
}

DaoUsuario:

class DaoUsuario {
  
   function __construct() {

        try {
            $this->cnx = new PDO('mysql:host=localhost;port=3306;dbname=usuarios', 'root', '');
        } catch (PDOException $ex) {
            echo '<div class="alert-danger">' . $ex->getMessage() . '</div>';
        }
     
    }
   public function logarUsuario(Usuario $Usuario) {

        $array = array();
        
        $sql = "SELECT * FROM tbusuario WHERE usuario ='{$Usuario->getUsuario()}' AND senha ='{$Usuario->getSenha()}' LIMIT 1";
        $campo = $this->cnx->prepare($sql);
        $campo->bindValue(1, $Usuario->getUsuario(), PDO::PARAM_STR);
        $campo->bindValue(2, $Usuario->getSenha(), PDO::PARAM_STR);
        $campo->execute();
          while ($row = $campo->fetch(PDO::FETCH_ASSOC)) {
            $array[$row['id_usuario']]['id_usuario'] = $row['id_usuario'];
            $array[$row['id_usuario']]['nome'] = $row['nome'];
            $array[$row['id_usuario']]['email'] = $row['email'];
            $array[$row['id_usuario']]['perfil'] = $row['perfil'];
            $array[$row['id_usuario']]['usuario'] = $row['usuario'];
            $array[$row['id_usuario']]['senha'] = $row['senha'];
        }
        return $array;
    }
}

Controle:

require_once '../modelo/Usuario.php';
require_once '../Dao/DaoUsuario.php';

class controleUsuario{
  
  public function ctlLogarUsuario() {

        $Usuario = new Usuario();
        $daoUsuario = new DaoUsuario();

        if (isset($_POST["btnEntrar"])) {
            if (empty($_POST["txtusuario"]) || (empty($_POST["txtsenha"]))) {
                echo '<div class="alert-danger"> Por Favor Preencha o Campo em Branco!!!!!!</div>';
            } else {
                $Usuario->setUsuario($_POST["txtusuario"]);
                $Usuario->setSenha($_POST["txtsenha"]);
                return $daoUsuario->logarUsuario($Usuario);
            }
        }
    }
}

Index.php
  <!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Principal:</title>
    </head>
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <link rel="stylesheet" type="text/css" href="css/alerta.css">
    <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
    <script language="javascript" type="text/javascript" src="js/JQuery.mim.js"></script>
    <script language="javascript" type="text/javascript" src="js/fechar.js"></script>
    <script language="javascript" type="text/javascript" src="js/bootstrap.js"></script>
    <body>
        <div class="topo">

        </div>
        <div class="cabecalho">
            <form method="post" class="letras alinhaLogin">
                <table width="688" border="0">
                    <tr>
                        <td width="58" align="center" valign="middle">Usuário:</td>
                        <td width="144" align="center" valign="middle"><input name="txtusuario" type="text" size="40" placeholder="Digite Usuário:" class="form-control"></td>
                        <td width="46" align="center" valign="middle">Senha:</td>
                        <td width="144" align="center" valign="middle"><input name="txtsenha" type="text" size="10"  placeholder="Digite Senha:" class="form-control"></td>
                        <td width="94" align="center" valign="middle"><input name="btnEntrar" type="submit" class="btn btn-info" value="Entrar:"> </td>
                    </tr>
                </table>
            </form>
        </div>
        <div id="m">
            <?php
            require_once "../controle/controleUsuario.php";
            $lg = new controleUsuario();
            $lg->ctlLogarUsuario();
            ?>
        </div>
    </body>
</html>


  

 

forum logar sistema.docx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Some como?

 

Habilite os erros do PHP ou insira no inicio do script o code abaixo.

 

ini_set('display_errors', true);
error_reporting(E_ALL);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já Ativei o display erros do php, mas agora da esta mensagem pra min. O que pode ter acontecido ?

 

Aviso: require_once (../ controle / controleusuario.php): não foi possível abrir o stream: Nenhum arquivo ou diretório no C: \ wamp \ www \ Login_DAO \ index.php na linha 17.

Erro fatal: require_once (): Falha na abertura requerida '../controle/controleusuario.php' (include_path = '.; C: \ php \ pear') em C: \ wamp \ www \ Login_DAO \ index.php on line 17

Compartilhar este post


Link para o post
Compartilhar em outros sites

Suas classes não estão sendo encontradas, use caminhos absolutos.

 

Ou melhor

 

Use o composer para carregar suas classes automaticamente ou autoloader

 

Com estes requires você terá problemas eternos.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já descobri qual foi o  erro e que tenho uma hierarquia de pastas e um arquivo index.php que está fora das pastas  só que não consigo acessar nada da pasta controle através do require_once porque o index esta fora da pasta, mas se eu crio a pasta e coloco o index dentro eu consigo mas quando chamo o wampserver ele tem q acessar a pasta primeiro e não e isso que eu quero.Como faço para acessar a pasta do Controle sendo q o index.php está fora? veja a figura abaixo ela explica tudo.hierarquia_pastas.thumb.png.83c9db0992c3e74c72782969563ad1a5.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o index está rodando na raiz e as pastas estão abaixo da raiz.

Você não precisa dos ../

Joga direto o nome da pasta dos controles... Ex:

controle/controledousuario.php

 

De qlq forma segue a dica do Willians que é sucesso.

 

Funciona como 'Magic'

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, gabrieldarezzo disse:

Se o index está rodando na raiz e as pastas estão abaixo da raiz.

Você não precisa dos ../

Joga direto o nome da pasta dos controles... Ex:

controle/controledousuario.php

 

De qlq forma segue a dica do Willians que é sucesso.

 

Funciona como 'Magic'

Ja tentei Gabriel mas não funciona

 

1 minuto atrás, gabrieldarezzo disse:

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dependendo o sistema é case-sensitive.

 

Oq pode atrapalhar.

 

Em outras palavras. 

 

ISSO !== isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

E as dicas que dei é complexa!? Problema do Pelegrine é antigo, as dicas que damos a ele, não aplica quase nada. :tounge_wink:

Então vá pelo mais fácil, defina uma constante e coloque no arquivo raiz de sua configuração.


"config.php"

 

define('ROOT', __DIR__);

quando efetuar os includes, add  a constante antes do caminho.

 

require_once ROOT ."/controle/controleUsuario.php";

 

Caso precise retornar um diretorio no root, use dirname()

 

define('ROOT', dirname(__DIR__));

echo ROOT; //print no path para ir ajustando rrsrs

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  Ola amigos do php!!!!

Tenho uma hierarquia de pastas e um arquivo index.php que está na Raiz, mas só que não consigo acessar nada da pasta controle através do require_once porque o index esta na Raiz, mas se eu crio a pasta e coloco o index dentro eu consigo mas quando chamo o wampserver ele tem q acessar a pasta primeiro e não e isso que eu quero.Como faço para acessar a pasta do Controle sendo q o index.php está fora? veja a figura abaixo ela explica tudo.

hierarquia_pastas.thumb.png.83c9db0992c3e74c72782969563ad1a5.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pellegrini2106, a não ser que tenha alguma particularidade que você não citou, me parece muito simples a sua questão:

 

É só mudar require_once '../controle/controleUsuario.php';
para 
require_once 'controle/controleUsuario.php';

Quando você usa .. (dois pontos) você esta voltando um diretório, por isso que o seu index.php só funciona dentro da pasta controle :)

Por segurança, recomendo usar:

require_once __DIR__ .  '/controle/controleUsuario.php';

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
41 minutos atrás, Pellegrini2106 disse:

E João Batista tenho te confessar q não sou muito fã de Framework!!!

 

Isso é irrelevante, @Pellegrini2106. As PSR são padrões definidos pela comunidade; apenas siga-as, independentemente de gostar ou não de framework

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Pellegrini2106 disse:

Não funcionou EdCesar!!!  E João Batista tenho te confessar q não sou muito fã de Framework!!!

 

Pellegrini2106 sua questão é simples, pare e analise:
.. (dois pontos) volta um diretório!
Quando você der o require_once __DIR__ . '/controle/controleUsuario.php' o arquivo controleUsuario estará no mesmo nível de index.php, sendo assim o que acontecera com os requires que estão em controleUsuario ?

você terá que fazer a mesma coisa, mudar:

require_once '../modelo/Usuario.php';
require_once '../Dao/DaoUsuario.php';

 

para 

require_once 'modelo/Usuario.php';
require_once 'Dao/DaoUsuario.php';

E se ainda assim der algum erro, você precisa verificar o arquivo que esta dando erro e corrigir o require_once

Cara, isso é um inferno! Perca duas horinhas e estude namespaces e autoloading! E seja feliz!!!! Hahahaha

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, EdCesar disse:

 

Pellegrini2106 sua questão é simples, pare e analise:
.. (dois pontos) volta um diretório!
Quando você der o require_once __DIR__ . '/controle/controleUsuario.php' o arquivo controleUsuario estará no mesmo nível de index.php, sendo assim o que acontecera com os requires que estão em controleUsuario ?

você terá que fazer a mesma coisa, mudar:

require_once '../modelo/Usuario.php';
require_once '../Dao/DaoUsuario.php';

 

para 

require_once 'modelo/Usuario.php';
require_once 'Dao/DaoUsuario.php';

E se ainda assim der algum erro, você precisa verificar o arquivo que esta dando erro e corrigir o require_once

Cara, isso é um inferno! Perca duas horinhas e estude namespaces e autoloading! E seja feliz!!!! Hahahaha

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.