Jump to content
FELIPEWAT

Calendário de Eventos com Problemas

Recommended Posts

Olá,

 

Recentemente quis incluir um calendário de eventos em php no meu site. Baixei os arquivos do site Medium.com: https://goo.gl/79jcYE.

Porém, não consigo utilizar o calendário e o erro_log me retorno a seguinte mensagem de erro:

 

PHP Fatal error:  Call to a member function query() on a non-object in /home/.../public_html/eventos.php on line 6

 

Segue o conteúdo do arquivo:

<?php
    //Conectando ao banco de dados
    include "conexao.php";
    

    $consulta = $conexao->query("SELECT * FROM eventos;"); 

    while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) { 
        //echo "Nome: {$linha['nome']} - E-mail: {$linha['email']}<br />";
        $vetor[] = $linha;
     }

    //Passando vetor em forma de json
    echo json_encode($vetor);
    
?>


Alguém poderia me ajudar com essa questão?

Edited by Matheus Tavares
Adicionar marcação para código

Share this post


Link to post
Share on other sites

Olá @FELIPEWAT, seja bem-vindo!

 

A mensagem de erro em questão indica que o objeto que deveria estar associado à variável $conexao não está definido.

 

Há algumas possíveis explicações para isso:

 

1 - Você não possui o PDO e/ou o pdo_mysql instalados no seu servidor. Para verificar isso, basta criar um arquivo com o seguinte conteúdo: <?php phpinfo(); e acessá-lo, depois procurar pelos módulos citados. Eles devem aparecer de forma parecida com a foto que estou anexando.

Acho difícil que seja isso, pois nesse caso o PHP teria indicado outro erro, como classe PDO não definida... mas não custa verificar.

 

2 - Mais provavelmente você definiu dados incorretos para o PDO e ele não está conseguindo se conectar com seu banco de dados.

No código original postado pelo autor do tutorial, observe que há a seguinte linha comentada:

//echo 'Conexao efetuada com sucesso!';

Tire as barras do início dessa linha para verificar se a conexão foi bem-sucedida. Se o PDO passar pelo try, a mensagem em questão deve ser exibida na tela.

 

 

Em desenvolvimento, habilite a exibição total de erros. Basta adicionar no início do seu arquivo principal (esse postado no seu tópico):

error_reporting( E_ALL );

 

Captura de Tela 2017-12-21 às 11.02.55.png

Share this post


Link to post
Share on other sites

Olá,

Primeiro eu peço desculpas por não ter colocado o código da forma de texto.

 

Agradeço o retorno. Eu fiz conforme você me recomendou, porém sem sucesso. Realmente é preciso que o vetor $conexao referencie algo, mas não consigo saber exatamente o que.

Share this post


Link to post
Share on other sites
9 minutos atrás, FELIPEWAT disse:

Eu fiz conforme você me recomendou, porém sem sucesso.

Você habilitou os erros com o error_reporting? Não apareceu nenhum erro?

E a linha comentada, você tirou as barras e ele apareceu normalmente a mensagem?

 

14 minutos atrás, FELIPEWAT disse:

Realmente é preciso que o vetor $conexao referencie algo, mas não consigo saber exatamente o que.

$conexao não deveria ser um vetor. Deveria ser uma instância (um objeto) da classe PDO.

Após a conexão, tente rodar um

var_dump( $conexao );

Essa função exibe o valor da variável em detalhes. Exemplo de um retorno válido: https://stackoverflow.com/questions/38426313/var-dump-a-php-class-object-reveals-database-username-and-password

 

Veja se ajuda também: http://php.net/manual/pt_BR/pdo.construct.php

E esse tópico: https://forum.imasters.com.br/topic/460183-resolvido como-conectar-com-pdo/

 

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 Caio Vargas
      Fala pessoa tudo tranquilo ?
      estou com um problema eu fiz um sistema de upload onde tem a marca dagua  o problema e que quando o cadastro da capa e pequena a imagem da marca dagua fica grande
      e qauando a capa e grande  a imagem da marca dagua fica pequena alguem poderia me ajudar 
    • By klasss
      Olá a todos, 

      Tenho aqui um erro parvo não estou a ver como resolver . 

      Na minha View tenho um botão que será para fazer a aprovação de documentos , que abre uma modal para fazer a confirmação : 
      O problema é que quis fazer a mesma coisa para rejeitar. 
       
      <a href="{{route('despesas.modal', $item)}}" ><i class="fas fa-check text-info mr-1"></i></a> <a href="{{route('despesas.modal2', $item)}}" ><i class="fas fa-ban text-danger mr-1"></i></a> <?php if(@$id != ""){ echo "<script>$('#modalaceitar').modal('show');</script>"; } ?> <?php if(@$id != ""){ echo "<script>$('#modalrejeitar').modal('show');</script>"; } ?> Será que consigo validar por exemplo criando um ID nos dois botões?  
       
      Obrigado!
    • By b2black
      Então, estou tentando criar um submenu com opções quando o usuário passa o link em cima da imagem, porém não estou conseguindo, qual é o jeito certo de fazer?
       
      Ao clicar no link (link-login) que é uma imagem colocada com css, abre um menu abaixo da imagem com 5 opções de link
       
      <div class="nav-container"> <nav> <ul class="desktop-nav"> <li> <a href="" class="link-logo"></a> </li> <li> <a href="">Charm Points</a> </li> <li> <a href="">Ranking</a> </li> <li> <a href="">Colaboradores</a> </li> <li> <a href="">Blog</a> </li> <li> <a href="">Eventos</a> </li> <li> <a href="">Suporte</a> </li> <li> <!--<a href="" class="link-search"></a>--> <form method="get" action="" class="search"> <input name="boxsearch" type="search-text" placeholder="" /> </form> </li> <li> <a href="" class="link-bag"></a> </li> <li> <a href="" class="link-login"></a> </li> </ul> </nav> </div>  
      .link-login { background: url('avatar.png'); background-repeat: no-repeat; display: block; background-position: center; background-size: 20px; height: 44px; width: 20px; } .link-login:hover { position: relative; display: inline-block; margin-top: 50px; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); padding: 12px 16px; z-index: 1; }  
    • By b2black
      Estava vendo para atualizar o Windows pro 11, e notei isso no site da Microsoft, alguém sabe qual repositorio, ou como pesquisar para desenvolver algo similar?
      Quando você rola a página, o menu fica transparente.
       
      Explore Windows 11 OS, Computers, Apps, & More | Microsoft
    • By Marcos RJ
      Bom dia, boa tarde, boa noite colegas.
       
      Tenho um projeto onde conterá diversos subdomínios. Ex.:
      empresa1.site.com.br empresa2.site.com.br empresa3.site.com.br Esses subdomínios acessarão o sistema que está dentro do seguinte diretório:
      site.com.br/sistema/ Gostaria de fazer com que os subdomínios acessassem o sistema sem alterar a url, pois o objetivo é quando fizer quaisquer alterações e/ou inclusões de novos recursos, não tenhamos a necessidade de fazer isso dentro de todos os subdomínios, haja vista que serão dezenas ou até mesmo centenas de subdomínios. As minhas tentativas foram diretamente no .htaccess:
      RewriteEngine on RewriteCond %{HTTP_HOST} ^empresa1.site.com$ [OR] RewriteCond %{HTTP_HOST} ^www.empresa1.site.com$ RewriteRule ^(.*) http://www.site.com/sistema/$1?key=empresa1 [P,L] E o PHP ficou dessa forma:
       
      $diretorio = $_REQUEST["key"]; if($directory != null){    require "http://".$diretorio.".site.com.br/sistema/class/conectCass.php"; }else{  require "conectClass.php";  } Mas não deu certo. Tentei diretamente pelo PHP, mas quando clico no link criado, ele me obriga que a página do link esteja dentro dos subdiretórios. Em cada subdomínio coloquei da seguinte forma:
      include 'sistema/'; E no index.php do diretório sistema/:
      $host = $_SERVER['SERVER_NAME']; $host = str_replace(['www.', '.site.com.br', 'site.com.br'], '', $host); if($host == '') {     // entra o conteúdo do sistema } else {     // Entra o conteúdo do subdomínio } Mas também não funcionou. Como eu poderia resolver isso?

      Muito obrigado!
×

Important Information

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