Sejam todos bem vindos à mais uma aula do curso de criação de um painel administrativo utilizando PHP e orientação a objetos. Iniciamos a aula de hoje codificando o arquivo autoload.php que será responsável por carregar as classes necessárias de forma dinâmica e automática em nosso sistema. Na sequência iremos atualizar a classe banco e a classe usuários conforme nossa necessidade.
Para finalizar iremos criar a função responsável por verificar se um determinado usuário existe em nosso banco de dados para podermos efetuar o login no sistema, ainda não iremos trabalhar com sessões nesta aula, mas a lógica do login estará toda concluída após a aula. Vamos criar também a função para fazer logoff do sistema.
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 121 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.
Primeiro você monta o SQL fora da programação pra ver o funcionamento, assim que tiver o SQL final conforme sua necessidade vá para seu código e comece a planejar e criar a lógica da sua função.
ResponderBoa noite Ricardo, eu tentei mas estou ficando enrolado na hora de fazer a funcao. a baixo esta o codigo do exemplo do SQL e esta funcionado mas quando tendo fazer a funcao para usar os objectos nao esta tando serto e me da o erro de nao reconhecer os campos.
Ex com SQL:
Centro de Saude Muhala Expansao
Id
Nome
Disciplina
Classe
Data de Cadastro
e asseguir eh a funcao que tentei fazer e nao esta a dar certo
public function interTabelas($objecto){
// $sql = "SELECT id_docente,nome, nome_classe, datacad, nome_disciplina FROM docentes INNER JOIN classes ON(docentes.classe=classes.id_classe)
// INNER JOIN disciplinas ON (docentes.diciplina=disciplinas.id_disciplina) ";
$sql = "SELECT ";
for ($i=0; $icampos_valores); $i++):
$sql .= key($objecto->campos_valores)."=";
$sql .= is_numeric($objecto->campos_valores[key($objecto->campos_valores)])?
$objecto->campos_valores[key($objecto->campos_valores)]:
"'".$objecto->campos_valores[key($objecto->campos_valores)]."'";
if($icampos_valores)-1)):
$sql.= ",";
else:
$sql.= " ";
endif;
next($objecto->campos_valores);
endfor;
$sql.=" FROM ".$objecto->tabela ."INNER JOIN".$objecto->tabela."ON(".$objecto->tabela.$objecto->campos_valores=$objecto->tabela.$objecto->campopk.")";
if($objecto->extras_select!=NULL):
$sql.=" ".$objecto->extras_select;
endif;
return $this->executaSQL($sql);
}//Fim metodo INNER JOIN
A minha ideia eh: depois de invocar os objecto chamar a funcao e ela poder fazer o INNER JOIN das tabelas para poder mostrar os conteudos relacionados
ResponderFaz tempo que não mexo nesse sistema, o que posso dizer é pra você antes de tentar executar printar o SQL pra ver a saída dele, assim vai descobrir se há algo errado na construção da sua variável.
Não tem fórmula mágica, você precisa ir fazendo testes até encontrar o resultado desejado para sua função.
Olá Ricardo, gostaria de saber como posso usar uma variável no lugar do nome da tabela, passando um parâmetro com nome de outra tabela; se tenho diferentes tabelas de usuários, não estou conseguindo passar uma variável no campo.
$this->tabela = "painel_usuarios";
quero passar um parâmetro como:
$this->tabela = "$tabela";
quero saber se tem que ser feita alguma alteração na classe base, onde temos public $tabela = " ";
Obrigado
ResponderPelo que entendi é só passar uma variável normalmente para alimentar a propriedade da sua classe
$this->tabela = $tabela;
sim, mas quando eu uso a variável dá o seguinte erro:
Ocorreu um erro com os seguintes detalhes:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1executaSQL1064
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in ...
OK, mas você vai precisar adequar a montagem do SQL e ver se precisa de aspas, apóstrofes, concatenar com alguma outra coisa... seu erro é de SQL, ou seja, seu SQL está incorreto. Basta pegar o resultado gerado e ver o que está errado.
ResponderObrigado Ricardo, resolvido. Eu estava apenas colocando a minha parte do código no lugar errado.
Abraço!
cara to tentando a uns 2 dia arruma os seguintes erros:
Notice: Undefined variable: pathlocal in C:\xampp\htdocs\phpteste\classes\autoload.php on line 6
Notice: Undefined variable: pathlocal in C:\xampp\htdocs\phpteste\classes\autoload.php on line 6
Notice: Undefined variable: pathlocal in C:\xampp\htdocs\phpteste\classes\autoload.php on line 6
Warning: require_once(dbs.class.php): failed to open stream: No such file or directory in C:\xampp\htdocs\phpteste\classes\autoload.php on line 6
Fatal error: require_once(): Failed opening required 'dbs.class.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\phpteste\classes\autoload.php on line 6
minha autoload.php esta assim:
1
ja vi revi todos os videos do 1 ao 5 onde vc fala disso e nada teria como me ajudar?
ResponderRicardo, não tem o vídeo que mostre como foram feitas as classes banco e base do sistema, pois não estou conseguindo fazer!
ResponderVeja no post de introdução desse curso, todos os requisitos estão descritos lá, inclusive com links sobre os vídeos adicionais necessários ao desenvolvimento do sistema.
ResponderOlá Ricardo! Parabéns pelas vídeo-aulas.
Estou com um problema e já vi as aulas várias vezes e não consegui descobrir, está dando esse erro:
Fatal error: Call to undefined method usuarios::selecionaTudo() in D:\xampp\htdocs\aulas\painelADM\classes\usuarios.class.php on line 25
Não sei o que está acontecendo, se puder me dar uma diga eu agradeço.
Grande abraço!!!
Você está chamando uma função que não existe, possivelmente há algum erro na nomeação dos métodos da sua classe ou então a inclusão da classe não está sendo feita corretamente.
ResponderObrigado Ricardo, estava faltando public function selecionaTudo, já digitei e até o momento está dando tudo certo. Grande abraço!!!
ResponderOlá Ricardo!
Conseguir resolver meu antigo erro, agora tô tendo erro na aula 5, quando tento logar com o usuario: admin e a senha admin, isso já todo tratado no banco de dados desde a criptografia. Ainda sim quando tento logar, aparece o erro de Dados incorretos ou usuario inativo do arquivo usuarios na função do post logar... Venho pedir a sua ajuda para que eu possa está dando continução ao restante das aulas. Agurado resposta...
boa noite! Alguem pode me ajudar no que pode ser esse erro?
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
estou usando wampserver ja fiz a configuração error_reporting = E_ALL & ~E_NOTICE preciso fazer mais o que ?
Obrigado!
Esse curso utiliza recursos que foram descontinuados no PHP 5.5, para acompanhar o curso você deve usar uma versão mais antiga do PHP ou adaptar para as novas tecnologias.
ResponderOlá ricardo parabens pelas aulas, consegui encontrar o erro da aula 4 e agora na aula 5 não consigo efetuar o login mesmo os campos estando corretos. só aparece a pagina 'erro=2' de que a senha esta incorreta ou o usario inativo poderia me ajudar?
ResponderBom dia Ricardo! Primeiramente gostaria de parabenizá-lo pela iniciativa do blog, seu conteúdo é de muito boa qualidade!
Estou seguindo a risca as suas aulas, porém estou com um problema que mesmo seguindo algumas soluções aqui dos comentários não funcionou, que é o seguinte:
Quando faço o login, tá tudo certo, ele valida as informações no banco Ok.
Problema: Na hora de chamar a função redireciona() ele da uma mensagem de erro assim: "Warnig: Cannot modify header information - headers already sent by.... usuarios.php on line 12.
É só nessa página que dá erro, a função redireciona() funciona normalmente, mas na hora do login dá erro.
Poderia me auxiliar?
ResponderSolução no post da aula EXTRA
ResponderAulas muito boas estou aprendendo muito, mas como resolver o problema do autoload, li todo post retirei a barra, estudei o manual autoload inteiro e não consegui resolver o meu problema erro na linha 6.
ResponderOla Ricardo,
Estou com um problema aqui, pois quando chega para criar a sessão a pagina fica em branco e não carrega a pagina painel.php.
Ja olhei a aula varias veses e não detectei o erro.
Ele para aqui
public function doLogin($objeto) {
$objeto -> extras_select = "WHERE login='" . $objeto -> getValor('login') . "' AND senha='" . codificaSenha($objeto -> getValor('senha')) . "' AND ativo='s'";
$this -> selecionaTudo($objeto);
$sessao = new sessao();
if ($this -> linhasafetadas == 1) :
$usLogado = $objeto -> retornaDados();
$sessao -> setVar('iduser', $usLogado -> id);
$sessao -> setVar('nomeusser', $usLogado -> nome);
$sessao -> setVar('loginuser', $usLogado -> login);
$sessao -> setVar('logado', TRUE);
$sessao -> setVar('ip', $_SERVER['REMOTE_ADDR']);
return TRUE;
else :
$sessao -> destroy(TRUE);
return FALSE;
endif;
Mas quando eu retiro a parte de sessão(conforme abaixo), carrega o painel.php normalmente...
public function doLogin($objeto) {
$objeto -> extras_select = "WHERE login='" . $objeto -> getValor('login') . "' AND senha='" . codificaSenha($objeto -> getValor('senha')) . "' AND ativo='s'";
$this -> selecionaTudo($objeto);
if ($this -> linhasafetadas == 1) :
return TRUE;
else :
return FALSE;
endif;
Talvez haja um erro na classe de sessões, verifique isso.
Respondervocê está deixando muito espaço entre os elementos: aspas duplas e simples devem ficar coladas; depois da seta tbm o elemento deve vir colado;
tive o mesmo problema.
Como está Ricardo.
Essa aula me deu dor de cabeça demais, porém deu tudo certo e não foi necessário retirar a barra como citou acima, fico muito grato a você pela qualidade do conteúdo, fiz exatamente como ensinou na sua vídeo-Aula e realmente todos os códigos estão ok conforme vc afirma em suas respostas nos comentários, parabéns.
Se conseguir acreditar qual era o meu erro, pois nem eu mesmo acredito, falta de atenção pura e infantil.
Reassisti todas as aulas do crud e as cinco primeira deste, para descobrir que o erro estava na digitação do nome da ( Pasta Classes ), também você não ensinou que era com dois S., estava assim (clases) e o erro era inevitável.
Mesmo assim valeu, usei o tempo de revisão para entender melhor o que vc criou é realmente ótimo mesmo, facilita e agiliza muito.
Fique com Deus e um ótimo Domingo de Páscoa a você e seus familiares.
Lembre-se: "A ressurreição de Cristo nos concede o direito do Perdão", dê um oi pra Ele amanhã.
Um grande abraço a todos.
Responderestou com o seguinte erro:
Warning: require_once(/base.class.php) [function.require-once]: failed to open stream: No such file or directory in /home/megaipne/public_html/painel/classes/autoload.php on line 12
Fatal error: require_once() [function.require]: Failed opening required '/base.class.php' (include_path='.:/usr/local/lib/php') in /home/megaipne/public_html/painel/classes/autoload.php on line 12
Como resolver
ResponderLeia todo post, a explicação está logo abaixo do vídeo.
Respondero meu aconteceu a mesma coisa, ja retirei a "/ " antes da $classe.class.php mas o erro persiste. o que pode ser isso?
ResponderComo posso arrumar variável não definida nas seguintes linhas - Arquivo: modulos/usuarios.php?
<input type="text" size="35" name="usuario" value="" />
<input type="password" size="35" name="senha" value="" />
Se eu defino valor inicial para elas como vazio ou nulo, o login não é feito. E dando erro de definição também não é feito o login.
Responderengraçado é que não é validado quando eu tento inserir os dados para login, nunca entra, sempre fica dando o erro2, engraçado é que não retorna nenhum outro erro, mesmo quando o usuario e a senha estão corretos o erro2 vem.
To quebrando a cabeça aqui a uns 4 dias, não sei onde ta o erro, tentei fazer uma lógica minha, mas acabei tendo que imitar tudo igual a você nessa parte e mesmo assim não rolou.
Boa tarde Ricardo,
Estou com um problema no require_once que vai dentro da função inicializa() que chama o autoload.php, seu eu coloco como include ele funciona mas se eu colocar como require_once ele não funciona, será que poderia me ajudar a desvendar isso?
Em baixo do vídeo tem a solução possível do problema, verifique
ResponderNão era isso, eu já tinha visto essa mensagem, o meu servidor por segurança bloqueia algumas funções.
Responderolá Ricardo, estou com um problema da parte de usuários para fazer o login.
não está encontrando a classe olhei o código e está correto.
switch ($tela) {
case 'login':
if (isset($_POST['logar'])):
$user = new usuarios();
já revi as videos aulas um monte de vezes e ate refiz mais o erro persiste.
Fatal error: Class 'usuarios' not found in C:\wamp\www\painel\modulos\usuarios.php on line 22
ResponderO arquivo que carrega as classes é o autoload, se você está tendo erros no carregamento automático deve verificar este arquivo.
ResponderOlá Philipess e Ricardo. estou fazendo esse curso agora e estou como esse mesmo problema:
Fatal error: Class 'usuarios' not found in C:\wamp\www\painel\modulos\usuarios.php on line 9
já fiz todos os procedimentos para carregamento de classe dinâmica, mas mesmo assim ele
não acha a classe criada no meu objeto e não existe nenhum erro de sintaxe.
Se algum de vocês já resolverão o problema e quiserem me ajudar, fico no aguardo.
ResponderParabéns pelas aulas, são maravilhosas, to conseguindo entender... Agora parei aqui neste erro.
Ocorreu um erro com os seguintes detalhes:
Arquivo: C:\wamp\www\FJVTO\visionware\classes\banco.class.php
Rotina: conecta
Codigo: 2002
Mensagem: php_network_getaddresses: getaddrinfo failed: Este host não é conhecido.
O que pode ser isso. Obrigado!
ResponderOla amigo... primeiro parabéns pelas aulas, são sensacionais, to conseguindo entender na boa, apenas aqui que surgiu uma NOTICE: inesperada... fiz o processo de retirar a barra no autoload, mas mesmo assim o erro continua a aparecer na minha tela.
Notice: Undefined variable: pathlocal in C:\xampp\htdocs\adm\paineladm\classes\autoload.php on line 6
isso é algo diferente da sua solução de retirar a barra??
Agradeço se puder responder..
Responderhttp://dev.rbtech.info/entendendo-e-interpretando-erros-em-scripts-php/
http://dev.rbtech.info/como-configurar-um-servidor-local-com-wampserver/
excelente... entendi agora... e esta tudo maravilha... Mais uma vez parabéns pelas aulas.
ResponderNotice: Undefined variable: pathlocal in C:\xampp\htdocs\aptana\PainelADM\classes\autoload.php on line 9
Notice: Undefined variable: campo in C:\xampp\htdocs\aptana\PainelADM\classes\Base.class.php on line 44
Estou com os seguintes erros acima, tem como me ajudar?
removi a barra no arquivo autoload igual foi mencionado no aviso do video: require_once($pathlocal."/$classe.class.php");
Mas ainda continuo com esses erros...
:(
Ricardo. Obrigado pela aula de excelente nível!
Porém, ao seguir as aulas, me deparei nesta aula 05, como seguinte erro:
Fatal error: Class 'usuarios' not found in ....usuarios.php on line 15
15 $user = new usuarios();
O que poderia ter ocorrido de errado?? Visto que fiz uma revisão desta aula e não encontrei nada até o momento? Poderia dar um auxílio?
Abraços
ResponderAntes de iniciar o painel, você deve atender os requisitos apresentados no início do curso e ter feito o CRUD conforme mencionado.
ResponderRicardo,
Fiz todo o CRUD, inclusive as alterações mensionadas neste curso. Mesmo analisando os arquivos mensionados nos requisitos, não consegui encontrar o problema...
Analise seu erro: Classe 'usuarios' não foi encontrada no arquivo usuarios.php na linha 15. Agora busque o motivo da classe não estar sendo encontrada.
1- A classe não existe; 2- O arquivos/classe tem erros no seu nome/chamada; 3- O arquivo onde ela está não está sendo incluso no script necessário;
Olá Ricardo.Primeiramente gostaria de parabenizar pelo trabalho que você está realizando está sendo de grande ajuda na vida minha acadêmica.
Gostaria de pedir um help como sou novo em php estou tendo uma dificuldade de interpretar o seguinte erro:
( http://codetidy.com/6598/ ). conforme as instruções de política de comentários Este erro ocorre quando tento logar com o usuário já cadastrado em banco usuário: admin e senha: admin mostrado na aula 5 e também o arquivo
autoload.php ( http://codetidy.com/6597/ ) está de acordo como foi mostrado na vídeo aula. Desde já agradeço a ajuda.
Use as informações adicionais disponibilizadas abaixo do vídeo para corrigir, provavelmente este é o problema.
ResponderRicardo mais uma vez obrigado,conseguir executar utilizando as instruções do Roberto Munhoz
"Tive que tirar a barra no autoload:
require_once($pathlocal."$classe.class.php");"
e também obrigado Roberto Munhoz por compartilhar essa informação.
Mas tem um porem quando retiro as barras, não está validando o usuário qualquer senha que eu coloco está mostrando a página eu sou o painel.php. Ricardo nesse caso terei que rever a função de validação de usuário no arquivo usuario.class.php ?
Tentei também utilizar a instrução do Eric Coutinho colocando o @(arroba) antes do comando mas a página fica em branco não mostrando nada. desde já agradeço
Amigos,
Primeiramente gostaria de parabenizar ao Ricardo Bernardi pelo trabalho e pela iniciativa.
Vi que algumas pessoas estão com problemas no autoload.
Verifiquem se o autoload está escrito corretamente (o correto é "__autoload()", com dois underlines seguidos).
Caso alguém esteja com "Warnings" ao executar a função, basta colocar um "@" (arroba) no início do comando para suprimir o aviso (preferi fazer assim do que alterar o Wamp pois, caso seja obrigado a transportar o projeto para um servidor de terceiros, corremos o risco dele apresentar as warnings na execução..
Espero ter ajudado alguém.
Um abraço!
Olá. Realmente muito bom e parabéns pelo trabalho.
Estou com uma dúvida sobre o arquivo usuarios.class.php na questão de lógica.
Para eu acessar outro banco ou outra tabela, eu teria que criar outra xxxx.class.php ou como faria pra acessar varias tabelas usando somente uma class? A exemplo, como que eu faria pra usar o modulo (usuarios.php) acessando varias tabelas, mas usando somente a usuarios.class?
Obrigado desde já
ResponderNós criamos um exemplo simples de uso das classes, cabe a cada um desenvolver melhorias conforme a necessidade.
Responderestou com um problema se vc poder me ajudar, la no meu wamp nao vei os arquivos, como o banco.class.php, base.class.php e os outros que deveriam estar junto a estes.
ResponderGabriel, vá ao post de introdução e certifique-se de atender todos os requisitos antes de iniciar o curso.
ResponderMuito engraçado, quando vou logar 22:30 do vídeo, em vez de ir ao Painel, aparece a tela em branco com a mensagem erro!! Somente erro!!! Fucei tudo e cheguei na seguinte dúvida:
É aqui que dá esta mensagem!! Quando via criar o objeto. Já não sei mais o que fazer. Os códigos estão idênticos. O que muda apenas é que não está no diretório raiz e sim em um sub, tipo http://www.site.com.br/painel/index.php.
Tive que tirar a barra também no autoload:
require_once($pathlocal."$classe.class.php");
É justamente neste código:
switch ($tela) {
case 'login':
if (isset($_POST['logar'])):
$user = new usuarios();
Quando crio o objeto usuarios que dá o erro. Já olhei a classe e está tudo conforme as aulas, alias, tudo estava funcionando até aqui.
ResponderOlá, primeiro parabéns pelas aulas!
Seguinte, estou na video-aula 4 do painel de administração!
Mas,o video já inicia tendo o arquivo banco.class.php codificado, e não dá pra ver a parte final do codigo, portanto, não consigo finalizá-lo.
E quando tento logar dá esse erro:
Fatal error: Call to undefined method usuarios::trataerro() in C:\xampp\htdocs\caseii\paineladm\classes\banco.class.php on line 26
Favor, se puder me ajudar!
Obrigado!
Anderson
Volte ao post de introdução e certifique-se de atender todos os requisitos para este curso antes de iniciar as aulas.
ResponderOla Ricardo boa noite,
O meu sistema esta igual ao das aulas ja revi os videos diversas vezes e ainda não consegui constatar o erro, o meu erro esta quando vou clicar no botão de login não estou conseguindo redirecionar para a pagina painel.php e/ou nem para o erro=2, aparece uma pagina em branco, gostaria que pudesse solucionar o meu problema, aguardo resposta.
Não deve estar igual, pois senão o resultado seria o mesmo.
ResponderOla boa tarde, agora estou em um dilema gostaria de sua ajuda, entâo codigo esta certinho ate onde fiz, eu desenvolvo no ambiente mac os e o codigo não deu certo, mais quando testei com windows deu certinho você tem algo que mim possa explicar sobre isso?
ResponderA codificação não pode apresentar resultados diferentes, a não ser que a configuração do servidor seja diferente.
Respondersim mais existe um porém, eu sigo as aulas e ta dando certo, não seria o caso de esta errado agora, toda aula testo o sistema feito nas vídeos aulas e sempre da certo;
Veja minha database
http://www.iaza.com/work/130307C/iaza11484758854800.png
Veja código de usuarios.class.php
http://www.iaza.com/work/130307C/iaza11484757370300.png
Veja código de usuarios.php
http://www.iaza.com/work/130307C/iaza11484745162200.png
Veja config
http://www.iaza.com/work/130307C/iaza11484730550100.png
tem algo errado?
ResponderVocê disse que está dando "senha incorreta", então você tem algo que não está batendo nas comparações das funções de login. Verifique todo código que é chamado na hora de logar o usuário e você vai encontrar o erro.
Verifique os comandos SQL e veja se nada está errado (lembre-se que espaços a mais ou a menos podem alterar o resultado do SQL).
Olá ricardo bernardi já fiz de tudo olhei aqui continua o error...
ResponderVocê já pensou que pode ter cadastrado dados errados no BD ou então estar tentando usar dados que não sejam os cadastrados? Parece ridículo, mas creio que teu erro esteja no usuário cadastrado no BD e não na codificação.
ResponderOlá ricardo por incrivel que parece era isso mesmo usuario errado kk desculpa pode deleta o comentário acima para nenhum membro utiliza do código fonte até a aula 5 séria injusto para quem paga, para ter o sistema completo
ricardo eu fiz certinho porem vou efetua meu login sempre da senha incorreta já verifiquei revi a aula 3x e nada mudei a senha no phpmyadmin tbm nada poderá me ajudar?
ResponderO fato de não ter funcionado aqui não quer dizer que seu erro esteja nesta aula, uma vez que já estamos trabalhando com estas funções há mais tempo. Verifique toda rotina de login e acesso ao banco.
ResponderProfessor, estou acompanhando suas videos aulas, mas encontrei um erro, que é no autoLoad.php
vejamos eu crio a variavel $pathlocal, fora do function fora do escopo da function __autoload(), mas quando vou concatenar o $pathlocal nos logs do php, aparece que esta variavel está indisponível ou não definida, ou seja, parece não estar tendo acesso à variavel por dentro da função e agora?!
Agradeço desde já!
Óbvio, uma vez que a function acessa somente o que é local dentro de seu escopo. Se você quer usar uma variável já declarada você vai precisar dizer que ela é global dentro da function para ter acesso a ela.
ResponderOlá Ricardo.
Gostaria de saber se é possivel ocultar parâmetros passados na URL com ?erro=3 e outros que são criados para captura de mensagens e redirecionamentos.
Somente passando-os via post, caso contrário não.
ResponderComo seria feito isso para vermos os erros no painel de administração feito com:
redireciona('?erro=3')
Como faria isso utilizado o metodo post.
ResponderVocê deve gerar um form, enviar as informações através dele e tratar os dados recebidos... aquele processo normal de envio de informação através de formulários.
ResponderOlá eu queria saber como posso exibir imagens no meu painel mas colocando as imagens no banco!Ex. eu coloco as imagens no banco de dados e depois eu quero exibir na tabela ou na pagina!! como faco, sou muito grato!!!!
ResponderPrezados,
Resolvi as questões dos notices de acordo com a video aula do WAMP.
Porem agora continuo com o ultimo erro postado anteriormente .
Fatal error: Cannot call constructor in C:\Program Files (x86)\xampp\htdocs\paineladm\classes\usuarios.class.php on line 8.
Como no post anterior vou seguir tentando...
Se puderem me ajudar...
Abrigado,
Olá Ricardo,
porque você ja não define no header o jquery validate em vez de colocar no usuários.
ResponderPor que no header carrega em todas as páginas, portanto eu carrego somente onde se faz necessário.
ResponderCaro professor,
- Acabei de depurar melhor o erro e encontrei o mesmo, o erro está no arquivo: classes/autoload.php
<?php
$pathlocal = dirname(__FILE__);
require_once(dirname($pathlocal)."/funcoes.php");
function __autoload($classe){
$classe = str_replace('..', '', $classe);
require_once($pathlocal."$classe.class.php");
// require_once($pathlocal."/$classe.class.php");
}
?>
- Como pode ser visto acima apenas removi a barra (linha comentada), e está funcionando perfeitamente. Obrigado.
ResponderPrezado Theone ou Moderador,
Estou com o seguinte erro:
Notice: Undefined variable: pathlocal in C:\Program Files (x86)\xampp\htdocs\paineladm\classes\autoload.php on line 6
Notice: Undefined variable: pathlocal in C:\Program Files (x86)\xampp\htdocs\paineladm\classes\autoload.php on line 6
Notice: Undefined variable: pathlocal in C:\Program Files (x86)\xampp\htdocs\paineladm\classes\autoload.php on line 6
Fatal error: Cannot call constructor in C:\Program Files (x86)\xampp\htdocs\paineladm\classes\usuarios.class.php on line 8
Fazendo com que o resto do código não continue.
Fiz o que o Theone postou mas mesmo assim não consegui progredir.
Se um de vocês puder me ajudar eu agradeço.
Até lá vou tentando descobrir caso eu chegue até o resultado antes eu contribuo.
Abraço.
Meu amigo theone,
estava aqui quebrando minha cabeça com esse problema. Você salvou minha tarde. Obrigado!
ResponderEste também era meu problema, obrigado por este post caro theone.
ResponderOlá caro professor,
- Antes de mais nada meus parabéns pelo trabalho ;)
Bem eu segui todos os passos e pude absorver bastante das suas aulas (realmente gostei muito) porém obtive um erro com o meu servidor (Apache/PHP 5.3.17), mesmo tendo a certeza de que tudo estava idêntico à vossa explicação, tentei por horas reparar o erro, dei uma Googlada, e finalmente comprei alguns créditos para ter acesso ao código fonte, e o mesmo erro persiste, temos vários servidores um data centers e S.O diferente e em todos tenho exatamente o mesmo erro: (Só queria deixar claro que recorro à vossa ajuda depois de tentar quase tudo. (Obrigado)
Erro: ****************************************
PHP Warning: require_once(/sessao.class.php): failed to open stream: Arquivo ou diret\xf3rio n\xe3o encontrado in /var/www/developer/painel_admin/classes/autoload.php on line 6
PHP Stack trace:
PHP 1. {main}() /var/www/developer/painel_admin/index.php:0
PHP 2. loadmodulo() /var/www/developer/painel_admin/index.php:19
PHP 3. include_once() /var/www/developer/painel_admin/funcoes.php:46
PHP 4. __autoload() /var/www/developer/painel_admin/funcoes.php:8
PHP Fatal error: require_once(): Failed opening required '/sessao.class.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/developer/painel_admin/classes/autoload.php on line 6
PHP Stack trace:
PHP 1. {main}() /var/www/developer/painel_admin/index.php:0
PHP 2. loadmodulo() /var/www/developer/painel_admin/index.php:19
PHP 3. include_once() /var/www/developer/painel_admin/funcoes.php:46
PHP 4. __autoload() /var/www/developer/painel_admin/funcoes.php:8
Fim Erro: *******************************************
Olá Ricardo, acompanhei suas aulas sobre o painel de administração. Tudo funciona normalmente, porém, ao executar em um servidor remoto a rotina de validação do usuário (aula 05), a mensagem de erro não aparece como deveria e a página aparece em branco.
Já no servidor local (xampp) esse problema não ocorre.
Minha dúvida é a seguinte...
Existe alguma diferença nas configurações das constantes no caso de rodar a aplicação em um servidor remoto?
código postado fora das regras
ResponderOla amigo. Você conseguiu solução para o seu problema? Pode me ajudar? estou com o mesmo problema
Responderresolvi meu erro ao comparar o código e novamente o erro era digitação...
estava assim...
"' ANDsenha='"
eu tinha dado enter logo após o AND e não vi que estava faltando o espaço peço desculpa ai galera, e vamos prestar atenção \o/ :D
ResponderRicardo estou com um problema, e não consigo resolver, esta tudo certo a 5° aula mas na hora de fazer os testes, não autentica e vai sempre para o erro 2 já mudei a senha ja revi o código e nada e não da nenhum erro simplesmente diz que a senha esta errada :S
ResponderHá algum erro em sua codificação, verifique todos os arquivos alterados até o momento, pois tudo está funcionando corretamente.
ResponderOlá, Eu tambem estou com este problema! eu faco o teste de login mas da sempre erro 2! Eu ja olhei e refiz todos os codigos mas nada, sempre o erro 2! sera que podem me ajudar?
Responderestou com erro na linha
$objeto->extras_select = "WHERE login='".$objeto->getValor('login')."' AND
senha='".codificaSenha($obejto->getValor('senha'))."' AND ativo='s'";
Erro fatal: Chamada a um getValor função de membro () em um objeto não em C: \ wamp \ www \ \ RMCC paineladm \ classes \ usuarios.class.php na linha 25
já revi o video varias veses
ResponderRicardo, estava enfrentando um problema aqui nesta aula e consegui achar a solução.
Como sou iniciante em PHP OO demorei um pouco pra conseguir hehehe.
Seguinte, fiz o curso de CRUD anteriomente porém a função executaSQL do banco.class.php do curso deve ser alterada para esta aula 05. Segue o código original da função:
public function executaSQL($sql=NULL){
if($sql!=NULL):
$query = mysql_query($sql) or $this->trataerro(__FILE__,__FUNCTION__);
if(substr(trim(strtolower($sql)),0,6)=="select"):
$this->dataset = $query;
return $this->dataset;
else:
$this->linhasafetadas = mysql_affected_rows($this->conexao);
return $this->linhasafetadas;
endif;
else:
$this->trataerro(__FILE__,__FUNCTION__,NULL,'Comando SQL nao informado na rotina',FALSE);
endif;
}//executaSQL
O código acima diz que se a instrução for "select" haverá um retorno para o dataset dos dados, caso contrário retorna para linhasafetadas 0.
Removi o else e agora está retornando 1 para linhasafetadas, tem como confirmar se o código estava com este problema mesmo e se tem uma forma de melhorar? ou ficaria assim mesmo?
Grato e parabéns!!! suas aulas são altamente recomendáveis!!!
Abraço.
ResponderLuis, no curso do CRUD (que é requisito para este) a função em questão já é alterada para atender a necessidade do sistema, portanto essa alteração a que você se refere já foi feita (na aula 5 do CRUD).
ResponderOla tudo bem?
Já fiz de tudo, mais na hora que tento logar mesmo eu chamando a funcao correta, quando eu aperto o botao login ele fica branco porque pode me ajudar????
preciso urgente disso ...
aguardo.
obrigado.
Responderola ricardo, bom eu estou com um problema para resolver, se tiver um tempinho tem como responde para mim, meu caso seria com a header que não redimenciona para pagina ele gera um erro assim: Warning: Cannot modify header information - headers already sent by (output started at C:\VertrigoServ\www\tecnoflash\admin\index.php:7) in C:\VertrigoServ\www\tecnoflash\admin\funcoes.php on line 58
Responderola pessoal acabei de descobrir com resolver o problema da header e somente colocar na funcoes depois da abertura do php o comando ob_start()
espero ter ajudado alguem
obrigado
Bom dia Ricardo, primeiro parabéns pelo conteudo, show as aulas, gostei muito.
Tenho um divida, pelo que estou vendo esta sendo validado os dados dos formulário apenas pelo jquery, isso poderia ter algum problema de alguém conseguir desativar essa validação?
Se eu quiser fazer validação também em php terei que fazer todo os método get e set para cada campo do formulário, certo?
Fico no aguardo
Obrigado.
Minha sugestão é criar uma classe para validação, desta forma você pode implementar métodos para validar qualquer tipo de dados (moeda, datas, strings, etc) em um único lugar.
ResponderOlá Ricardo, eu assisti a aula, verifiquei todas as linhas para ver se não estava faltando algo e não está mas toda vez que tento logar ele vai para "http://localhost/system/?erro=2".
Tudo está correto mas sempre da nisso, o que pode ser?
ResponderEle não me retorna nenhum erro de codificação, mas não loga.
ResponderBoa tarde Ricardo eu estava com o mesmo problema do Paulinho, então li sua reposta e achei meu erro, obrigado as vezes nossos erros são tão simples. Valeu o conselho e parabéns pelas video aulas!
Responderapareceu esse problema não consegui resolver :
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\paineladm\index.php:12) in C:\xampp\htdocs\paineladm\funcoes.php on line 75
Respondere terceira vez que posto duvida aqui e voce moderador nao responde e exclui minha moderação ja que nao sabe deixa ae para aguem que saiba responder
ResponderEm primeiro lugar Paulinho, nenhum comentário seu foi excluído.
Em segundo lugar eu dedico o final de semana a ficar com minha família e não o dia todo na internet procurando solução para os problemas alheios.
Em terceiro lugar, já que eu não sei, vou deixar "ae" pra ver se alguém saiba responder ou então para você procurar seu próprio erro, considere esta última opção.
bom ate aula 4 foi tudo dando certo quando chegou nessa quinta apareceu o seguinte erro
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\paineladm\index.php:11) in C:\xampp\htdocs\paineladm\funcoes.php on line 70
Responderquando eu abri cheguei na parte 17:50 do vídeo, e fiz todos esse processo:
if(isset($_POST['logar'])):
$user = new usuarios();
$user->setValor('login',$_POST['usuario']);
$user->setValor('senha',$_POST['senha']);
if($user->doLogin($user)):
redireciona('painel.php');
else:
redireciona('?erro=2');
endif;
endif;
deu o seguinte erro:
Ocorreu um erro com os seguintes detalhes:
Arquivo: C:\wamp\www\paineladm\classes\banco.class.php
Rotina: conecta
Codigo: 2002
Mensagem: php_network_getaddresses: getaddrinfo failed: Este host n�o � conhecido.
Não consegui identificar o erro, tudo antes desse procedimento estava funcionando corretamente até nas aulas do CRUD, será que você poderia me ajudar?
ResponderDesculpe Ricardo mas, nos últimos posts vocês está sendo muito mal educado com a rapaziada. Apesar de estar tudo explicado no Post Inicial acho que não custaria nada dizer que sim ou que não.
E Sidney pode sim é este vai ser uma sequência daquele curso.
ResponderOlha Adilson, eu não estou sendo mal educado, apenas tive o trabalho de explicar todo funcionamento no início do curso justamente para não haver a mesma pergunta a cada postagem, então não vejo necessidade de ficar repetindo tudo que já foi explicado com antecedência.
ResponderOlá Ricardo, bom percebi também que vc anda um poko mal educado com o povo ai... se tem lugares pra postar perguntas, isso no certo são para tirar as dúvidas, não vejo o prq vc ser mal educado, ja vi em várias vídeos aulas suas, a forma q vc trata o pessoal.
Seja um poko mais educado, que concerteza vc tem muito a ganhar.
Fica essa dica ai.
Um abraço
Respondereu sempre assisto as aulas aqui pela madrugada e nesse caso não tinha reparado que eu poderia usar os arquivos do CRUD.
Acho que o toque dos leitores quanto a educação em responder as perguntas nos posts é valida, por mais que elas sejam repetitivas.
Afinal somos os "consumidores" do blog.
eu peço desculpas por não te prestando atenção na primeira vez que assisti a aula.
depois do comentário(admin) eu até fui rever a aula.
no mais o blog segue no padrão de qualidade!
Boa tarde Ricardo, gostaria de sabe se podemos usar os arquivos do curso CRUD para esse curso!?
ResponderLeia o post de introdução, lá tem todas as informações sobre o desenvolvimento do sistema.
ResponderSaudações Ricardo!
Desculpa a demora de comentar!
Como sempre, suas aulas são maravilhosas.
Queria deixar uma dica pra você e para todos que acharem valiosa.
Ha um certo tempo eu usava o Apache e cia Ltda. como webserver, mas tive alguns problemas, depois passei para o Wamp, funcionou bem mas apareceram certos problemas também, então deixei de lado os servidores. Depois que comecei a estudar C# e Asp.Net por acaso conheci o WebMatrix, e garanto que é perfeito. Suporta várias linguagens, pra quem está bem no começo ele tem vários modelos ótimos para estudo, e o que eu mas gostei nele: não precisa se preocupar com webserver, ele mesmo faz isso sem precisar configurar manualmente. Crio os meus projetos de estudo, vou programando e quando quero ver o resultado apenas clico em "Run" e ele abre no navegador como se fosse na internet, e eu não tenho nenhum webserver aqui no meu pc. E ele tem um sistema de FTP que é o melhor que eu já vi. Eu tenho um projeto que está em hospedagem grátis(eu vi o vídeo que você disse que é coisa de amador, mas para o que estou desenvolvendo eu preciso ter certeza de que vai funcionar para que eu possa investir), eu conecto com o FTP do meu site e ele mostra toda a estrutura do site(pastas, arquivos...) e se eu abrir o "Remote View", posso ir programando e vendo os resultados online, sem ter que ficar fazendo download e upload de arquivos. Então fica a dica pra quem quiser. Eu recomendo.
Grande abraço e obrigado por compartilhar seu conhecimento conosco. Até mais!
Obrigado pela dica, veremos o que esta ferramenta pode nos oferecer.
ResponderParabéns mais uma vez a equipe RBTech. Ótimo vídeo aula, aguardamos ansiosos pela continuação, pois um conteúdo deste nível compartilhado desta maneira, somente por pessoas que realmente sabem fazer. Estando sempre na frente! Aprendemos a programar de forma profissional, evitando erros primários!
Um abraço a todos!
Ótima video aula Ricardo, esperando muito pela próxima.
Parabéns pelo trabalho.
E aí galera pararam de curtir as VAs? Vamos colaborar com o Site na divulgação e aproveitar a oportunidade e aprender com um curso que não se encontra por aí.
Com uma qualidade desta não se acha por aí mesmo.
Parabéns novamente pela iniciativa.
Olá Ricardo,
Primeiramente, tenho a agradecer pelas aulas, são muito boas. Quanto ao sistema, tenho realizado o mesmo em meu computador, mas apresentou alguns problemas, que acho ter
solucionado. Então, gostaria de saber se a solução adotada é recomendada. Abços
if ($_GET['logoff']==TRUE):
$user = new usuarios();
$user->doLogout();
exit;
endif;
Problema:
Undefined index: logoff in C:\wamp\www\aulas\php\paineladm\funcoes.php on line 20
Solução:
if (isset($_GET['logoff'])==TRUE):
$user = new usuarios();
$user->doLogout();
exit;
endif;
public function start(){
session_start();
$this->id = session_id();
$this->setNvars();
Problema:
A session had already been started - ignoring session_start()
Solução:
public function start(){
if(!isset($_SESSION))
{
session_start();
}
$this->id = session_id();
$this->setNvars();
}
Murilo se você configurar o servidor local como ensinamos aqui http://rbtech.info/como-configurar-um-servidor-local-com-wampserver/ estas notificações não aparecem.
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.
Bom dia Ricardo, eu sou iniciante em programacao (php orientado a abjectos ), mas assisti suas aulas e foram melhores para mim com tudo tentei fazer um sistema em que tenho 4 tabelas das quis duas se relacionam com uma mas nao esto a conseguir fazer o inner join para juntar as tabelas e acessar os valores contidas nelas. eu gostaria de fazer uma funcao que me possibilitasse a reutilizar quando precizasse de fazer qualquer relacionamento no sistema, como faco?