Sejam todos bem vindos à mais uma aula do curso de criação de um painel administrativo utilizando PHP e orientação a objetos. Nesta segunda aula vamos começar a codificar os arquivos do nosso sistema, inicialmente definindo algumas constantes que iremos precisar futuramente.
Na sequência iremos criar uma função que será responsável por inicializar o sistema verificando se os arquivos e configurações estão definidos corretamente, caso contrário um erro será mostrado e o sistema será impedido de carregar. Em seguida vamos criar as funções para carregamento de arquivos CSS e JS dinamicamente, facilitando assim a tarefa de inserção de arquivos externos em nossas páginas. Além de criar as funções, todas elas serão testadas e exemplificadas para que todos entendam como usar cada uma delas.
Este post faz parte de uma série, confira tudo que já foi publicado sobre o mesmo assunto.
Sou técnico em hardware e desenvolvedor web, e sobre estes dois assuntos comecei a compartilhar aulas e artigos, tornando-me blogueiro em 2008. Em 2010 esse hobby virou profissão, e desde então tenho buscado melhorar e profissionalizar cada vez mais os projetos que mantenho na web.
Atualmente temos 56 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.
Indico a leitura desse post para conseguir interpretar os erros e conseguir solucioná-los: http://dev.rbtech.info/entendendo-e-interpretando-erros-em-scripts-php/
ResponderProfessor, estou com problema na constante (_FILE_) onde eu devo declarar ela e quais os parâmetros que passo?
ResponderSão 2 underlines antes e depois do nome da constante conforme dito em aula.
ResponderMuito bom o Curso, estou recomendando para o pessoal da universidade.
Obrigado.
ResponderTudo bom,Ricardo.
Confesso que procurava algum curso de codificação em PHP e Mysql, que fosse realmente sério e vi por diversas vezes o teu canal no youtube, porém por falta de entendimento, acreditei que pudesse estar ultrapassado devido a data de edição.
Me enganei imensamente, pois o conteúdo é atual, seríssimo e de extrema qualidade.
Continue assim, e não dê bola á alguns que só ocupam espaço.
Deus é contigo meu amigo.
até+.
Professor, como que faço um contador de tentativas para o login? Por exemplo, tentar logar 3 vezes, caso não consiga, desativar o botão de login por um tempo determinado?
ResponderIncremente uma variável de sessão com cada tentativa. Também é possível fazer via banco de dados, depende da necessidade.
ResponderE como que seria esse procedimento, me ajuda professor. Em que parte do código eu coloco isso?
ResponderCara, eu mostrei como criar sessões para o login, o procedimento é o mesmo.
ResponderTa bom, seria na sessao.class.php? E como seria esse procedimento das tentativas?
Cara, para um pouco e pensa no que você precisa fazer, papel e caneta podem ser úteis. Vamos avaliar:
Eu preciso limitar as tentativas de login, logo, preciso ter um local (variável de sessão ou campo do banco) que será iniciado com valor ZERO.
A cada tentativa de login, esse campo deve ser incrementado.
A cada tentativa de login, devo verificar se esse campo não atingiu o valor limite, neste caso impediria o login com base em alguma regra (tempo de espera por exemplo).
Quando o tempo de espera passou, devo zerar novamente o campo para permitir uma nova tentativa de login.
Refiz o curso de CRUD GENÉRICO. Ao fazer o método SELECIONARCAMPOS e testá-lo no arquivo teste.php, retornou isso no navegador:
Notice: Undefined property: stdClass::$id in C:\xampp\htdocs\teste_crud\teste.php on line 52
Notice: Undefined property: stdClass::$ativo in C:\xampp\htdocs\teste_crud\teste.php on line 52
Notice: Undefined property: stdClass::$datacad in C:\xampp\htdocs\teste_crud\teste.php on line 52
/ Fred / ff@gg.com / admin / 21232f297a57a5a743894a0e4a801fc3 / / s /
Notice: Undefined property: stdClass::$id in C:\xampp\htdocs\teste_crud\teste.php on line 52
Notice: Undefined property: stdClass::$ativo in C:\xampp\htdocs\teste_crud\teste.php on line 52
Notice: Undefined property: stdClass::$datacad in C:\xampp\htdocs\teste_crud\teste.php on line 52
/ Teste5 Bla Bla / teste5@gmail.com / teste5 / teste / / n /
Professor, resolvi o problema acima. A solução está na aula http://dev.rbtech.info/crud-generico-com-php-e-oop-aula-5/
Tenho uma dúvida pertinente ao curso. As acentuações estão incorretas. Aparecem códigos ao invés de aparecer a palavra acentuada ou ç. O que pode estar acontecendo?
ResponderO charset da sua página (no head do HTML) deve ser o mesmo usado no seu editor de código, caso contrário haverá problemas nos caracteres especiais. Veja a primeira aula do curso de HTML para iniciantes, tem exemplos disso.
ResponderEstou usando o Google Chrome e segui como manda a video-aula.
ResponderComo mostro o usuário que está logado no Painel? Em que parte eu coloco para mostrar quem está logado?
Professor, estou tentando assistir ao curso 24/09/2011: HTML para iniciantes 05 - Links e sempre cai na aula 06/03/2014: Curso de HTML e CSS para iniciantes - Aula 1
ResponderO curso está sendo atualizado e o antigo não está mais disponível.
Segui a aula 8 do Painel Administrativo, e ao tentar gravar no banco, deu esse erro:
INSERT INTO paineladm_usuarios (VALUES (Ocorreu um erro com os seguintes detalhes:
Arquivo: C:\xampp\htdocs\aulas\php\painel_adm\classes\banco.class.php
Rotina: executaSQL
Codigo: 1064
Mensagem: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUES (' at line 1
Verifique seu código, muito provavelmente há erros de digitação
ResponderJá verifiquei tudo e até estou revendo as aulas e não estou encontrando.
ResponderComo fazer se o usuário não for administrador, proibir cadastro?
ResponderRegras de negócio, tudo depende delas.
ResponderFiz a aula 3 do painel e está dando esse erro:
Notice: Undefined variable: tela in C:\xampp\htdocs\aulas\php\painel_adm\modulos\usuarios.php on line 5
A tela solicitada nao existe.
Esse erro ocorre quando chamo:
http://localhost/aulas/php/painel_adm/modulos/usuarios.php
Sugiro que leia este post: http://dev.rbtech.info/entendendo-e-interpretando-erros-em-scripts-php/
ResponderMas porque que não da isso nos exemplos da sua aula e no meu aqui ta dando?
ResponderComo fazer um JOIN nas tabelas utilizando o CRUD genérico?
ResponderUse a lógica aprendida no curso e expanda suas classes conforme sua necessidade. Este é um sistema básico que visa dar um norte para as pessoas, assim, as implementações de novas funcionalidades ficam a critério de cada um.
ResponderNo arquivo funcoes estou tendo problemas com o primeiro else, apresenta a seguinte mensagem:
Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\wamp\www\painel-adm\funcoes.php on line 6
ResponderErro de digitação, confira seu código.
ResponderCara preciso dos arquivos presentes na pasta Classes, eles são só para assinantes premium ? Me manda aew se possivel!
vlw
Veja os requisitos para acompanhar o curso na aula de introdução.
ResponderGostaria de agradecer as informações contidas aqui,pois são de qualidades infinitamente superiores as encontradas na web porém possuem pouca indexacao de vosso conteudo nos motores de busca,onde eu mesmo achei vocês primeiramente no youtube depois que vim para o site,gostei da utilizações do escape(\n) no final dessa aula,porém sobre a identação que falou e que não foi foi feita nada mais é do que tabulação horizontal(\t) que resolvi acrecentando (\n\t),outro detalhe também é utilização de concatenação é achar uma formiga sem perna no meio de um formigueiro. preferi então utilizar os escapes necessários assim:
echo '<style type="text/css">@import url("'.BASEURL.CSSPATH.$arquivo.'.css");</style>';
echo "\n\t";
echo '<link rel="stylesheet" type="text/css" href="'.BASEURL.CSSPATH.$arquivo.'.css" media="'.$media.'"/>';
echo "\n\t";
echo '<script type="text/javascript" src="'.$arquivo.'"></script>';
echo "\n\t";
Além disso tenho uma sugestão também, para que utilizem php source ou seja disponibilizem nos diretorios dos projetos em php os arquivos com extensão .phps que farão os codigos fontes php serem visualizados como foram feitos é claro para os usuarios premiuns(e quem sabe que não me darão esse previlégio pelas dicas ou convite de moderador nessa parceria convosco)para que não haja erro na replica do projeto pelos usuários com menos conhecimento e prática . exemplo arquivo funcao.php dessa video aula salve-como funcao.phps dentro do diretorio paineladm/phpsource/funcao.phps e aponte para isso um link com target=_blank na resenha dessa video aula e claro que ninguem num projeto real irá colocar php source em seus diretorios pois um simples filetype:phps funcoes no google acharia esse arquivo.
outro detalhe importante é que deixem mais claro a reutilização nao somente das video aulas mas como também as classes como:
banco.class , base.class e usuario.class acho mais importante nao é reutilização das aulas pois voces tem a marca do vosso logotipo em cada uma delas isso seria até bom para aumentar page rank se imaginem se colocassem voces mesmos um script de incorporar videos abaixo das vossas aulas então assim falariam podem reutizar nossas aulas porém utilizem nosso script de incorporação e coloque um de nossos banners em vosso site. amigos espero ter contribuido.
Parabéns Ricardo Bernadi
Responderfalai Ricardo, beleza?
estava adaptando a função loadCSS() mas obtive erros...
minha adaptação foi para carregar fontes do Google, e ficou assim:
function loadCSS($arquivo = NULL, $media = 'screen', $import = 1) {
if (!is_null($arquivo)) :
if ($import == 1) :
// estilo externo
echo '<link rel="stylesheet" type="text/css" media="'.$media.'" href="'.BASEURL.CSSPATH.$arquivo.'.css" />';
elseif ($import == 2) :
// carrega fontes externas
echo '<link rel="stylesheet" type="text/css" media="'.$media.'" href="'.$arquivo.'" />';
elseif ($import == 3) :
// importa estilo
echo '<style type="text/css">@import url('.BASEURL.CSSPATH.$arquivo.'.css);</style>';
endif;
endif;
} // loadCSS - carrega o CSS
só que desta maneira eu tenho sempre que setar o segundo parâmetro o de media, senão dá erro, o programa troca as bolas, você poderia me dizer porque isso acontece?
para funcionar perfeitamente tenho que fazer assim para importar fontes:
loadCSS('http://fonts.googleapis.com/css?family=Concert+One', 'screen', 2);
se eu fizer assim, como você explicou, não dá certo
loadCSS('http://fonts.googleapis.com/css?family=Concert+One', NULL, 2);
gostei muito desta função para carregamento de css e js.
abraço.
ResponderJunior, se você chamar a função que você fez passando NULL como parâmetro é a mesma coisa que chamar ela passando SCREEN=''. NULL significa nenhum valor, então se você não quiser definir o parâmetro SCREEN a cada chamada da função você precisa deixá-lo por último na ordem de parâmetros, e neste caso você poderia ignorar ele na chamada da função:
function loadCSS($arquivo = NULL, $import = 1, $media = 'screen') {
//codificao da funo
}
//chamada da funo fica assim
loadCSS('http://fonts.googleapis.com/css?family=Concert+One', 2);
valeu pela ajuda, não me liguei que a ordem das variáveis alteraria o resultado, obrigado grande mestre...
Responderfalai Ricardo.
então gostaria de saber, já que esta criando o sistema em OOP, porque a conexão com o banco de dados você não utiliza PDO?
valeu....
ResponderA idéia era fazer as pessoas perceberem a diferença entra programação procedural e programação OO. PDO é uma classe pronta, portanto se eu ensinar utilizar ela eu não estou ensinando OOP, mas sim como usar uma classe nativa.
Responderbeleza, obrigado por responder, muito bom o seu trabalho, muito profissional, e a sua didática é fenomenal..
ResponderEstou ansioso para a próxima!!!! Já foram os 70 shares! rsrsrs ..... Parabéns Ricardo, vc é simplesmente excelente lessionando!
Responderricardo aulas firms eu pensava que entendia de php, to esperando mais
ResponderÓtima aula, aguardando a proxíma, obrigado Ricardo por compartilhar seu conhecimento conoscoo.
ResponderÓtima aula aguardando a proxíma, obrigado Ricardo por continuar a compartilhar o seu tempo e conhecimento conosco. Abraço.
Respondermuito boa mesmo a aula agora sei que nada sei mesmo de php valeu mesmo
Respondereu fiz meio que uma gambiarra diferente do seu LoadCSS aqui :
$url = 'http://localhost/iniciante/';
if($arquivo != NULL){
echo '<link href=" '.($url.'css/'.$arquivo.'.css'.'" rel="stylesheet"'.'type="text/css">')."n";
essa gambiarra é correta ?
ResponderDaí quando você quiser instalar o sistema em outro domínio vai ter que editar a função pois botou uma variável perdida lá com a URL do sistema. E o arquivo de configurações tá no sistema pra bonito neste caso? Desculpe Thiago, mas eu tentei pensar em funções simples e úteis, portanto fica a critério de cada um "estragar" ou "melhorar" as funções conforme seu gosto.
ResponderMuito bom, Fiz o CRUD, vi as aulas de JQuery, e estou aprendendo muito com essas aulas, obrigado Ricardo.
@Diego
Como o blog utiliza sistema de cache de conteúdo, ao compartilhar o post você não verá imediatamente o seu share, sendo que o mesmo pode ser contabilizado em até 24 horas (quando houver a próxima atualização de cache).
Postado Originalmente por Ricardo Bernardi
ResponderAssisti às aulas anteriores e não vi você inserindo o conteúdo no arquivo autoload.php. Qual o conteúdo do arquivo autoload.php ?
ResponderCada arquivo vai ser codificado no seu tempo, preocupe-se em aprender o que é ensinado na aula e deixe que eu cuido do restante.
ResponderCliquei duas vezes no twitter e compartilhei, mas não contou.
ResponderSugiro Diego que leia atentamente o post de introdução para que descubra a resposta para o ocorrido.
Respondergostei muito dessa aula daqui pouco vou fazer meu próprio CMS
Respondermuito boa essa vídeo aula, não vejo a hora da próxima estar pronta...
parabéns Ricardo, continue assim, você já me ajudou e ensinou bastante, mas quero mais...
valeu
Responder© 2008-2023 - RBTech.info | Todos os direitos reservados | Hospedado por Innova Host
É proibida a reprodução total ou parcial de qualquer conteúdo deste site.
function inicializa(){
if (file_exists(dirname(__FILE__).'/config.php')) {
require_once(dirname(__FILE__).'/config.php');
} else {
die(utf8_decode('O arquivo de configuração não foi encontrado. Contate o Administrador'));
}
erro=>if (defined("BASEPATH")) '||' defined("BASEURL"){
die(utf8_decode('Faltam configurações, Contate o Administrador'));
}
require_once(BASEPATH . CLASSESPATH . 'autoload.php');
}
O erro: Parse error: syntax error, unexpected '||' (T_BOOLEAN_OR) in C:\sitecatolicismo\php\modulos\funcoes.php on line 10; o que eu faço?