Jump to content

Search the Community

Showing results for tags 'poo'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Calendars

  • Comunidade iMasters

Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 36 results

  1. lucascientista

    Pesquisa e paginação com o PHP não funcionam

    Boa noite, galera é o seguinte eu estou montando um script que pesquisa no banco de dados e mostrar os resultados em uma página php, bem aí que está o problema eu pesquisei alguns sistemas de paginação e de pesquisa e acabei montando meu script, no meu script a pesquisa aparece na primeira página mas quando passo para a página adiante não me é mostrado resultado nenhum já verifiquei tudo e não consigo encontrar o erro, será que alguém pode me ajudar? <?php #Incluindo a conexão no banco de dados require_once '../dao/conexao/Conexao.php'; $conexao = Conexao::getInstance(); /***********************************************/ #Aqui começa a parte a paginação e pesquisa /**********************************************/ #Limitando o número máximo de resultados que serão mostrados na tela $maximo = 1; #Armazenando o valor da página atual $pagina = isset($_GET["pagina"])? ($_GET["pagina"]): '1'; #Subtraindo 1, porque os registro começam do zero como em um array $inicio = $pagina - 1; #Multiplicamos a quantidade de registros da pagina pelo valor da pagina atual $inicio = $maximo * $inicio; #Agora chega a parte em que fazemos o SELECT para contar os resultados $sql = "SELECT * FROM centroautomotivo"; $stmt = $conexao->prepare($sql); $stmt->execute(); $contagem = $stmt->fetchAll(PDO::FETCH_ASSOC); $total = 0; if(count($contagem)){ foreach ($contagem as $linhas) { #Armazenando o total de registros da tabela para fazer a paginação $total = count($contagem); } } /******************************************************************* * Aqui vai começar a parte da pesquisa, tornando o script em um só ********************************************************************/ #Recebe o termo da pesquisa se existir $termo = (isset($_GET["termo"])) ? ($_GET["termo"]) : ''; #Executa uma pesquisa com o termo pesquisado como parametro - Este SELECT irá servir também para a paginação if(empty($termo)){ //Nada aqui } else{ $sql = "SELECT * FROM centroautomotivo WHERE nomefantasia LIKE :nomefantasia or email LIKE :email ORDER BY idCentro LIMIT $inicio,$maximo"; $stm = $conexao->prepare($sql); $stm->bindValue(':nomefantasia', '%'.$termo.'%'); $stm->bindValue(':email', '%'.$termo.'%'); $stm->execute(); $autocenters = $stm->fetchAll(PDO::FETCH_ASSOC); } <?php require_once '../includes/header.php'; require_once '../controller/paginacaoPesquisaCentro.php'; ?> <div class="container mb-5"> <h1 class="text text-center">Centros Automotivos</h1> <p class="text text-center">Encontre o centro automotivo que mais se encaixa com você</p> <!--Formulário de pesquisa com paginação--> <form method="GET" action=""> <div class="d-flex flex-column bd-highlight mb-3"> <div class="p-2 bd-highlight"><img src="../img/Logotipo.png" class=" img-fluid rounded mx-auto d-block"></div> <div class="p-2 bd-highlight d-flex justify-content-center" style="margin-top: -10px;"><input type="text" name="termo" class="form-control" style=" width: 60%;" placeholder="Pesquise pelo Centro Automotivo!"/></div> <div class="p-2 bd-highlight d-flex justify-content-center"><button type="submit" class="btn btn-outline-primary"><i class="fas fa-search"></i>&nbsp;Pesquisar</button></div> </div> </form> <!--Fim do formuláio de pesquisa--> <!--Início dos resultados da pesquisa--> <?php if(!empty($autocenters)){?> <?php foreach ($autocenters as $autocenter) { ?> <center> <div class="card mb-3" style="max-width: 540px;"> <div class="row no-gutters"> <div class="col-md-4"> <img src="../controller<?php empty($autocenter["foto"])? 'images/pic.png' : $autocenter["foto"] ?>" class="card-img img-fluid" width="150px" height="150px"> </div> <div class="col-md-8"> <div class="card-body"> <p class="card-text text-justify"><?php $autocenter["nomefantasia"]?></p> <p class="card-text text-justify"><small class="text-muted"><?=$autocenter["email"]?></small></p> </div> </div> </div> </div> </center> <?php }//Fechamento do foreach?> <div id="alignpaginacao"> <?php //determina de quantos em quantos links serão adicionados e removidos $max_links = 6; //dados para os botões $previous = $pagina - 1; $next = $pagina + 1; //usa uma funcção "ceil" para arrendondar o numero pra cima, ex 1,01 será 2 $pgs = ceil($total / $maximo); //se a tabela não for vazia, adiciona os botões if($pgs > 1 ){ echo "<br/>"; //botao anterior if($previous > 0){ echo "<div id='botaoanterior'><a href=".$_SERVER['PHP_SELF']."?termo={$termo}?pagina=$previous><input type='submit' name='bt-enviar' id='bt-enviar' value='Anterior' class='button' /></a></div>"; } else{ echo "<div id='botaoanteriorDis'><a href=".$_SERVER['PHP_SELF']."?pagina=$previous><input type='submit' name='bt-enviar' id='bt-enviar' value='Anterior' class='button' disabled='disabled'/></a></div>"; } echo "<div id='numpaginacao'>"; for($i=$pagina-$max_links; $i <= $pgs-1; $i++) { if ($i <= 0){ //enquanto for negativo, não faz nada }else{ //senão adiciona os links para outra pagina if($i != $pagina){ if($i == $pgs){ //se for o final da pagina, coloca tres pontinhos echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a> ..."; }else{ echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a>"; } } else{ if($i == $pgs){ //se for o final da pagina, coloca tres pontinhos echo "<span class='current'> ".$i."</span> ..."; }else{ echo "<span class='current'> ".$i."</span>"; } } } } echo "</div>"; //botao proximo if($next <= $pgs){ echo " <div id='botaoprox'><a href=".$_SERVER['PHP_SELF']."?termo={$termo}?pagina=$next><input type='submit' name='bt-enviar' id='bt-enviar' value='Proxima' class='button'/></a></div>"; }else{ echo " <div id='botaoproxDis'><a href=".$_SERVER['PHP_SELF']."?pagina=$next><input type='submit' name='bt-enviar' id='bt-enviar' value='Proxima' class='button' disabled='disabled'/></a></div>"; } } ?> </div> <?php }//Fechamento do if?> <!--Fim dos resultados da pesquisa--> <!--Início da paginação--> <!--Fim da paginação--> </div> <?php require_once '../includes/footer.php'; ?> Bem aí está meu código, fico muito agradecido se puderem me ajudar.
  2. Olá pessoal, estou precisando de um help ! Pois eu tenho uma classe assim: DadosComboClasse.php class DadosComboCidades { private $conecta_banco; public function __construct(){ $this->conecta_banco= new Conexao(); $this->conecta_banco->Conectar(); } public $array = array(); public $imoveis_tipo; public $cidade; public $bairro; public $bairro_id2; public $idcidade; public $negocios; public $qtd; public $bairro_id; public $id_cidade; public $id_tipo; public $id_bairro; public $nome_empresa_2; public $nome_empresa_3; public $nome_empresa_4; public $nome_empresa_5; public $titulo_cadastro; public $creci; public $facebook; public $twitter; public $linha_b; public $sloga; public $site; public $sqlT_1; public $sqlT_2; public $sqlT_3; public $sqlT_4; public $row; public $id='1'; function BuscarCidades(){ $result=$this->conecta_banco->banco; $pega_cidade=new ComboCidades();=> instancio os ids ou arrays quando são requisitados tipo assim : finalidade ID:1 Tipo ID:3,9 (array) $pega_cidade->PegarCidadeId(); $ativo='1'; ARRAYS ABAIXO: $this->id_negocio=$pega_cidade->id_negocio; $this->id_tipo=$this->id_cidade=$pega_cidade->id_tipo; $this->id_cidade=$pega_cidade->id_cidade; Acima eu pego os dados do array vindo da pagina combo_cidades.php if($pega_cidade->id_negocio): $negocio_array = explode(",",$pega_cidade->id_negocio); if($pega_cidade->id_tipo): $tipos_array = explode(",", $pega_cidade->id_tipo); if($pega_cidade->id_cidade): $cidades_array = explode(",", $pega_cidade->id_cidade); foreach($negocio_array as $negocio): foreach($tipos_array as $tipos): foreach($cidades_array as $cidades): $sqlT_1 = $result->prepare("SELECT i.id,t.tipo_nome,c.cidade,b.bairro,i.ativo FROM imoveis i LEFT JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel) LEFT JOIN cidades c ON (c.id = i.id_cidade)LEFT JOIN bairros b ON (b.id = i.bairro) WHERE i.id_tipo_imovel IN ('".$tipos."') AND i.id_cidade IN ('".$cidades."') AND i.ativo=? ORDER BY i.bairro DESC"); $sqlT_1->bind_param('s',$ativo); $sqlT_1->execute(); $this->sqlT_1=$sqlT_1->get_result(); Acima com get_result eu gero os dados que preciso do array abaixo são outras chamadas do sql que vou implementar na solução acima $sqlT_2=$result->prepare("SELECT id, bairro,ativo FROM bairros WHERE id AND ativo=? ORDER BY bairro"); $sqlT_2->bind_param('s',$ativo); $sqlT_2->execute(); $this->sqlT_2=$sqlT_2->get_result(); "'%".$negocio."%'"; $where = " i.ativo =? "; if( $negocio) { $where .="AND i.id_negocio_tipo LIKE ?"; }if( $tipos ) { $where .=" AND i.id_tipo_imovel IN ('".$tipos."')"; } if( $cidades ) { $where .=" AND i.id_cidade IN ('".$cidades."')"; } if($this->bairro_id2) { $where .=" AND i.bairro IN ('".$this->bairro_id2."')"; } $sqlT_3 = $result->prepare("SELECT i.id,i.ativo,n.tipo,b.bairro,t.tipo_nome,c.cidade,i.id_negocio_tipo, COUNT(b.bairro) AS Qtd FROM imoveis i LEFT JOIN negocio_tipo n ON (n.id= i.id_negocio_tipo) LEFT JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel) LEFT JOIN cidades c ON (c.id = i.id_cidade) LEFT JOIN bairros b ON (b.id = i.bairro) WHERE ".$where." GROUP BY b.bairro HAVING COUNT( b.bairro) > 0 ORDER BY b.bairro "); //EXECUTA A QUERY $conta=$sqlT_3->num_rows(); $sqlT_3->bind_param('ss',$ativo,$negocio); $sqlT_3->execute(); $this->sqlT_3=$sqlT_3->get_result(); endforeach; endforeach; endforeach; endif; endif; endif; } } Abaixo a classe combocidades.php require_once("tags2.php"); //RECEBE PARÃMETRO class ComboCidades{ private $conecta_banco; public function __construct(){ $this->conecta_banco= new Conexao(); $this->conecta_banco->Conectar(); } public $id_negocio; public $id_tipo; public $busca_cidade; public $id_cidade; public function PegarCidadeId(){ function filter( $str ){ return addslashes( $str ); } function getPost( $key ){ return isset( $_GET[ $key ] ) ? filter( $_GET[ $key ] ) : null; } $this->id_negocio = getPost('id_negocio'); $this->id_tipo = getPost('id_tipo'); $this->id_cidade=getPost('id_cidade'); } } class ExibirBairros extends DadosComboCidades{ public function Mostrar(){ extract( $_GET, EXTR_OVERWRITE); $busca_bairro=new DadosComboCidades(); $busca_bairro->BuscarCidades(); $busca_bairro->id_cidade; if($busca_bairro->id_cidade==0): echo "<div class='atencao'></div><div class='atencao_text'>Selecione uma Cidade para pesquisar por Bairros !</div> "."<br />"; endif; echo "<div class='sel'></div>"."<br />"; /* MONTA CRITERIOS DE BUSCA */ //QUERY echo '<br /><div class="botao-modal"><button type="button" class="botao_marcar" title="Todos" id="todos" onclick="marcardesmarcar();">Selecionar Todos</button> </div>'; Aqui onde chamo os array já convertidos pelo foreach na classe DadosComboCidades.php echo'<br /><br /><div style=" font-weight:bold; margin-left:30px;">'.$busca_bairro->imoveis_tipo.' (s) </div>'; echo'<br /><br /><div style=" font-weight:bold; margin-left:30px;">'.$busca_bairro->cidade.'</div>'; echo'<div class="form_modal"><form name="form1">'.'<br /><br />'; echo '<input type="checkbox" id="c'.$bairro.'" class="marcar" value="'.$bairro_id.'" name="bairro[]"/><label for="c'.$bairro_id.'"><span></span></label> '.$bairro.' - '.$cidade.' ('.$qtd.') <br />'; //FECHA IF (row) //PRINTA O RESULTADO if($bairro_id): echo FALSE; else: echo "<div class='atencao'></div><div class='atencao_text'>Não existem imóveis para essa Busca !</div> "."<br />"; echo'</form></div></b><br />'; endif; } } Abaixo onde istancio e chamo a classe DadosComboCidades $f=new ExibirBairros(); $f->Mostrar(); RESUMINDO: O que acontece é que eu não consigo pegar o array no seu índice, ou seja , por exemplo se o id tipo for ID: 1 rola beleza a busca e a impressão dos dados mas se eu for buscar 2 informações no mesmo id tipo , assim => ID: array(5,9) , na outra página só consigo pegar o último id em vez de buscar 5,9 só busca o 9, por eu estar acessando o array de outra página , e pelo que entendi , acessando o array de outra página ele só percorre o último em vez do índice. Mas se eu jogar todo código dentro da classe ai roda beleza , mas não quero misturar objeto com html (isso é má prática na programação), por isso estou remodelando meu código em POO Se alguém tiver uma solução eu agradeço . :)
  3. fbezerra

    PDO button

    bom dia galera, estou usando Vue js com poo, o problema que estou tendo é que eu não estou conseguindo entender de como passar para o button o id para exclusao, segue abaixo a onde eu parei. index.php <div id="modalMostrar"> <div id="descricoes" class="scroll"> <div class="card" v-for="descricao in descricoes"> <div class="card-header"> <h3 class="card-title">{{descricao.desc_data}}</h3> </div> <div class="card-body"> {{descricao.descricao}} <a class="fa fa-times btn btn-danger right ml3" id="removerRegistro" v-bind:data-codigo="descricao.cli_id"></a> <button class="fa fa-edit btn btn-primary right"></button> </div> </div> </div> </div> script.js //exibir registro------- $(document).on('click', '#abrirModal', function(event){ event.preventDefault(); var id = $(this).attr('data-id')//pegando id window.desc = new Vue({ el: '#descricoes', data: { descricoes: [] } }); $.ajax({ url: 'ajax/clienteDescricao.php?id=' + id, type: 'GET', dataType: 'JSON' }).done((e) => { desc.descricoes = e; }) $('#modalMostrar').iziModal('open'); }); //remover Registro--------------------------------------------- $(document).on('click', '#removerRegistro', function(event){ event.preventDefault(); var id = $(this).data('codigo');//pegando id window.desc = new Vue({ el: '#descricoes', data: { descricoes: [] } }); $.ajax({ url: 'ajax/removerRegistro.php?id=' + id, type: 'GET', dataType: 'JSON' }).done((e) => { desc.descricoes = e; }) }); removerRegistro.php <?php require_once "../database/conexao.php"; if(isset($_GET["id"]) && !empty($_GET["id"])){ $conex = new conexao(); echo json_encode($conex->deleteDesc($_GET["id"])); } conexao.php public function deleteDesc($cli_id){ $sql = $this->conexao->prepare("DELETE FROM descricao WHERE cli_id = :cli_id"); $sql->bindValue(':cli_id', $cli_id); $sql->execute(); } ele não está pegando o id.....
  4. Salve pessoal tudo bem ! Depois de muito tempo venho aqui pedir uma ajuda , bem vamos lá... Eu tenho uma classe POO e nela pego algumas variáveis que vem como array e uso o implode para enviar através do load do javascript. Até aí tranquilo, eu resgato com $_GET usando o explode, e depois uso implode para separar elas novamente. Montei essa rotina toda por se tratar de uma o paginação se reload , bem dinâmica , só que ao passar os parâmetros e as variáveis no bind_param da erro de parâmetros, dizendo que : Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement E entendi que o erro diz que o número de parametros não condiz com o número de variáveis, E AI QUE ENTRA A MINHA DOR DE CABEÇA... Mesmo eu usando implode eu consigo separar as variáveis mas dando um var_dump elas ficam juntas e a execução do prepare lê como uma única variável. Segue o código abaixo: <?php class DadosFiltroBusca { private $conecta_banco; public function __construct(){ $this->conecta_banco= new Conexao(); $this->conecta_banco->Conectar(); } public $ativo; public $negocio ; public $tipo; public $cidade; public $bairro; public $id_negocio; public $id_tipo; public $id_cidade; public $id_bairro; public $foto; public $where; public $sqlT_1; public $sqlT_2; public $total; public $current_page; public $get_total_rows; public $item_per_page; public $total_pages; public $total_records; public $pgst; public $page_number; public $page_position ; public $filtro_dados; public $site; public function BuscarFiltroBusca(){ $result=$this->conecta_banco->banco; $this->item_per_page = 4; if(isset($_POST["page"])){ $this->page_number =(isset($_POST['page'])) ? (int)$_POST['page'] : 1; if(!is_numeric($this->page_number)){die('Página inválida!');} //incase of invalid page number }else{ $this->page_number = 1; //if there's no page number, set it to 1 } $negocio = $_GET['negocio']; $this->id_tipo= explode(",",$_GET['tipo']); $this->id_cidade=explode(",",$_GET['cidade']); $this->id_bairro=explode(",",$_GET['bairro']); $idi=implode('', $this->id_tipo); echo "<br /><br />"; $in=(is_array($this->id_tipo) ? count($this->id_tipo):0); $id_tipo = implode(',', array_fill(0, $in, '?')); echo " :: " . $id_tipo_2 =join('', array_fill(0, 1, $idi)); echo " :: ".$types =str_repeat('s',$in); echo "<br /> VAR:: ".$tipo =str_repeat(''.$id_tipo_2.'',1); var_dump ($tipo ); $idi1='5'; $idi2='11'; foreach ($this->id_cidade as $key=> $id_cidade): foreach ($this->id_bairro as $key=> $id_bairro): $ativo='1'; "%".$negocio."%"; $id_tipo; $id_cidade; $id_bairro; echo "<br /><br />RESULTADO :: ". $t='ss'.$types.'ss',$ativo,$negocio,$tipo ,$id_cidade,$id_bairro."<br /><br />"; $where = " i.ativo =? "; if( $negocio) { $where .="AND i.id_negocio_tipo LIKE ?"; }if( $id_tipo ) { $where .=" AND i.id_tipo_imovel IN ($id_tipo)"; } if( $id_cidade ) { $where .=" AND i.id_cidade=?"; } if($id_bairro) { $where .=" AND i.bairro=?"; } $sqlT_1 =$result->prepare("SELECT i.*, t.tipo_nome, b.bairro, n.tipo, c.cidade FROM imoveis i LEFT JOIN negocio_tipo n ON (n.id = i.id_negocio_tipo) LEFT JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel) LEFT JOIN cidades c ON (c.id = i.id_cidade) LEFT JOIN bairros b ON (b.id = i.bairro) WHERE ".$where.""); $sqlT_1->bind_param('ss'.$types.'ss',$ativo,$negocio,$tipo ,$id_cidade,$id_bairro); $sqlT_1->execute(); $this->sqlT_1 = $sqlT_1->get_result(); $this->get_total_rows+=$this->sqlT_1->num_rows; if($this->get_total_rows >0 ){ $this->total_pages = ceil($this->get_total_rows / $this->item_per_page); } $this->sqlT_1->num_rows; //break records into pages //get starting position to fetch the records if($this->get_total_rows > 0 ){ $this->page_position = (($this->page_number * $this->item_per_page) -$this->item_per_page); $this->pgst = ceil($this->get_total_rows / $this->item_per_page); } $sqlT_1->close(); endforeach; endforeach; $sqlT_2 =$result->prepare("SELECT i.id, i.valor,i.locacao, i.foto_exibicao,i.latitude,i.longitude, i.quartos, i.garagem,i.mapa, i.codigo, t.tipo_nome, n.tipo AS negocio, c.cidade, c.uf, b.bairro FROM imoveis i LEFT JOIN negocio_tipo n ON (n.id = i.id_negocio_tipo) LEFT JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel) LEFT JOIN cidades c ON (c.id = i.id_cidade) LEFT JOIN bairros b ON (b.id = i.bairro) WHERE ".$where." ORDER BY i.id DESC LIMIT ?,?"); $sqlT_2->bind_param('sssssss',$ativo,$negocio,$idi,$id_cidade,$id_bairro,$this->page_position,$this->item_per_page); $sqlT_2->execute(); $this->sqlT_2=$sqlT_2->get_result(); } } ?> Vejam no código que existem 2 consultas, um select é para montar a páginação sem reflesh e a outra é para buscar os dados do filtro de busca , e para deixar mais claro, se eu colocar no lugar cláusula IN em vez de IN (?) colocar IN ($variavel ) que já foi separada com o implode ela busca perfeitamente as informações , exemplo abaixo: $where = " i.ativo =? "; if( $negocio) { $where .="AND i.id_negocio_tipo LIKE ?"; }if( $id_tipo ) { $where .=" AND i.id_tipo_imovel IN (?)"; AQUI É AONDE TEM O ARRAY, E AS OUTRAS ESTÃO SEM ARRAYS PARA TESTAR APENAS ESSA VARIÁVEL } if( $id_cidade ) { $where .=" AND i.id_cidade=?"; } if($id_bairro) { $where .=" AND i.bairro=?"; } Acima da aquele erro de; Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement Mas agora logo abaixo vai de boa e forma a paginação e trás os valores: $where = " i.ativo =? "; if( $negocio) { $where .="AND i.id_negocio_tipo LIKE ?"; }if( $id_tipo ) { $where .=" AND i.id_tipo_imovel IN ($id_tipo)"; } if( $id_cidade ) { $where .=" AND i.id_cidade=$id_cidade"; } if($id_bairro) { $where .=" AND i.bairro=$id_bairro"; } E vi que o problema esta aqui abaixo: $sqlT_1->bind_param('ss'.$types.'ss',$ativo,$negocio,AQUI É A VARIÁVEL COM ARRAY -> $tipo ,$id_cidade,$id_bairro); Notem que esta variável dentro dos parâmetros ($types) ela trás o número de parâmetros conforme o critério de busca do filtro de busca, E este parametro como variável eu pego com o str_repeat E se eu montar as variáveis manualmente tipo > $tipo1=15'; e $tipo2='11'; e jogar lá no bind param ela chama de boa tipo assim : $tipo1='15'; $tipo2='11' $sqlT_1->bind_param('ss'.$types.'ss',$ativo,$negocio,$tipo1,$tipo2 ,$id_cidade,$id_bairro); se eu fizer desta forma chama perfeitamente, e vi que o problema é na hora de separar as variáveis do array. Já usei serialize, join, json_decode e nada . Se alguém souber de como contornar agradeço. E desculpe pela imensa explicação , mas é para entederem melhor :) Obrigado !
  5. Estou montando um website e gostaria de saber como faço para o usuário que acabou de deslogar ficar na mesma pagina ? por exemplo, na programação atual, ele clica em " Sair " e vai automaticamente para a index, independente de onde esteja. eu gostaria q ele permanecesse na mesma pagina em que estava programação q faz o mesmo deslogar... //essa é a navbar.php <li><a href="?sair=sim">Sair</a></li> // Esse é o logado.php if(isset($_GET['sair']) == "sim"){ $objUser->sairUsuario(); } //e esse é o usuarios.class.php public function sairUsuario(){ session_destroy(); header ('location: index.php '); }
  6. Bom dia amigos, tudo bem? Sou novo em POO e estou com algumas dificuldades. Tenho um método de uma classe que é bem simples, ele busca todos os campos da tabela USUARIO (Firebird 2.0) e retorna o array com elas. Só que a não consigo exibi-los com while. Sem o método eu faria: while($array = ibase_fetch_object($query)){ echo $array->ID; echo "<br>"; echo $array->ID; // E por aí vai... } public function selectAllUsers(){ $select = "select * from USUARIO"; $query = ibase_query($select); $array = ibase_fetch_object($query); return $array; } Só que com o array não consigo. Não sei como usar o while com esse array retornado. Por favor, se alguém puder me ajudar... serei grato. Um abraço a todos.
  7. Falcon89

    POO dúvida

    Antes de minha dúvida, deixo algumas considerações: - Estou em nível de aprendizagem, então, talvez a idéia e o script possa parecer bem "amador" - A dúvida não corresponde nada a função ou biblioteca Date, o ano utilizado é ficticio, no caso começando no ano de valor 1; - A minha dúvida se relaciona a POO, a utilização do Python como ilustração é meramente ilustrativa. Vamos a dúvida: Então eu criei uma classe chamada tempo com atributo ano, e uma classe pessoa com apenas os atributos em questão, a data de nascimento e a idade. O que eu queria que acontecesse, se possivel, era que ao instanciar uma nova pessoa, ela pegasse o ano atual do objeto 'tempo' já instanciado, e jogasse como ano de nascimento, e já setasse a idade da pessoa, subtraindo o ano atual do objeto tempo pela data de nascimento, fica meio confuso para explicar vou tentar dar um exemplo: Supondo que criei o 'tempoObj', que tem o valor do 'tempoObj.ano=1', nesse periodo eu instancio um objeto 'pessoaObj', então eu queria que essa pessoa pegasse o valor do ano que no caso seria 1 e jogasse na "pessoaObj.data_nascimento"que agora teria o valor de 1 e ano atual que também seria o mesmo valor e já setando atravéz da subtração a 'pessoaObj.idade' como 0, em tempo de execução, chamando a funçao avancar_ano() umas 3 vezes, o valor do ano atual seria 'tempoObj.ano = 4', nesse caso a idade dessa pessoa teria que seria 3, porem ao passar "tempoObj.ano" como argumento para data de nascimento e ano atual, ele sempre irá passar o mesmo valor para ambos fazendo com que a idade sempre seja 0. Nesse caso existe alguma forma que o valor seja passado para o metodo data_nascimento, some ao instanciar a classe pessoa, e o que o valor recebido so ano do tempoObj seja correspondente ao ano que esta armazenado no tempoObj.ano no momento de execução. Já tentei varias formas e sempre chego na mesma, se ficou entendido a questão e se é que existe uma solução, alguém tem essa solução? Desde já agradeço, e peço desculpa se não fui tão claro ao apresentar o problema.
  8. dayenne

    AGENDA EM JAVA DUVIDAS

    Galera então é o seguinte, tenho um trabalho da faculdade para fazer porém ainda não entendo quase nada de java, to meio perdida no trabalho. o trabalho propoe que eu faça uma agenda de contatos, onde eu possa armazenar contatos, excluir contatos, pesquisa-los, edita-los, tudo isso usando arquivos txt, porém não consigo de jeito nenhum sair da estaca 0, queria que você me orientasse melhor para que eu consiga flluir melhor os codigos.
  9. Boa tarde a todos, gostaria de uma ajuda, estou desenvolvendo um pequeno sistema de cadastro de clientes assinastes de um certo pacote de serviços, preciso que ao cadastrar o cliente, automaticamente o sistema grave a data do cadastro e atribui + 30 dias onde esta será a data de vencimento(após os primeiros 30 dias), até aí tudo bem, tudo funcionando, porém preciso também que o sistema liste os clientes em que a data do vencimento está se aproximando(faltando 5 dias para o vencimento), então determinei que o sistema lista os clientes que estão a 5 dias do vencimento, então então peguei a data de cadastro e atribuí + 25 dias, agora que vem o problema, na hora de listar esses clientes cuja data de vencimento se aproxima eu recebo a seguinte mensagem "Warning: Invalid argument supplied for foreach()", sou novo em php OO e não estou conseguindo resolver essa questão, vou deixar aqui a função que criei e a chamada da função também: public function proximosVencimentos(){ //DATA DA ASSINATURA/CADASTRO $dt_assinatura = $this->assinatura; //PEGA A DATA DA ASSINATURA E ACRESCENTA + 30 DIAS (VAI VIRAR A DATA DO VENCIMENTO APÓS 30 DIAS) $vencimento = date('Y-m-d', strtotime("+30 days" . strtotime($dt_assinatura))); //PEGA A DATA DA ASSINATURA E ACRESCENTA + 25 DIAS $vencimento_proximo = date('Y-m-d', strtotime("+25 days" . strtotime($dt_assinatura))); require 'conexao.php'; $sql = "select * from dados where current_date() between dt_vencimento_proximo = :dt_vencimento_proximo AND dt_vencimento = :dt_vencimento "; $stmt = $conn->prepare($sql); $stmt->bindParam(":dt_vencimento_proximo", $vencimento_proximo); $stmt->bindParam(":dt_vencimento", $vencimento); if($stmt->execute()== TRUE){ return $stmt->fetchAll(PDO :: FETCH_OBJ); }else{ $mensagem = "Não há dados a serem exibidos."; return $mensagem; } } ABAIXO O TRECHO ONDE EU CHAMO ESSA FUNÇÃO foreach ($listadados->proximosVencimentos() as $key => $valor){ echo $valor->nome; }
  10. raphaeltsr

    Objeto e listagem de todos os dados

    Boa tarde, pessoal! Após muitos anos resolvi voltar a trabalhar com programação e no meu quase sempre foi PHP. Quando parei (php4) POO no PHP era ainda algo muito pouco difundido. Estudei um pouco sobre POO, consegui entender bem os conceitos e agora resolvi por a mão na massa com alguns pequenos scripts para treinar. Pelos conceitos que aprendi, poderíamos ter o exemplo de "frutas" como sendo um objeto. Ela pode ter seus parâmetros que a define e também seus métodos. Só que suponhamos que eu queiro listar todos os objetos "frutas" que existem, estou obrigatoriamente armazenando os dados de parâmetro em um banco de dados, que estão disponíveis. Eu teria um método, por exemplo exibirTodas, dentro do objeto "frutas" ou eu teria um segundo objeto que faria essa listagem do que tenho registrado no banco como parâmetros para frutas? Espero que tenha sido claro, mas se faltou algum detalhe me avisem que completo. Obrigado!
  11. ndias

    ajax + phpoo_mvc + mysql_pdo

    To tentando fazer uma requisição Ajax em um projeto POO-MVC Tenho um formulário q eu uso o evento onchange pra chamar uma função JavaScript q por sua vez usa Ajax pra requisitar via POST uma página php <!DOCTYPE html> <head> <script> function consultaCPF($cpf) { $.ajax({ type : 'POST', url : 'ajax/consultaCPF.php', data : 'CPF='+$cpf, dataType: 'json', success : function(response){ if(response.codigo == "1") { }else{ } }, error: function(XMLHttpRequest, textStatus, errorThrown){ $("#erro").html('<b>ERRO</b>'+XMLHttpRequest.responseText); } }); } </script> </head> <body> <div id="erro"> <form name="form" method="post"> <input type="text" name="CPF" maxlength="14" onchange="return consultaCPF(this.value)" value="<?php if($_POST){echo $_POST['CPF'];}?>"> </form> </div> </body> </html> Até aí td bem... Na página php eu instancio uma classe da minha Model q faz uma consulta no bd pra saber se já existe ou não cadastrado o CPF digitado no form. Se existir me retorna 1, senão me retorna 2. A resposta eu capturo em json e passo de volta pro Ajax receber. Esse success é q vai determinar minha ação. <?php if($_POST && $_POST['CPF']){ $consulta = new \App\Models\Validacoes(\App\Init::getDb()); $res = $consulta->CPF($_POST['CPF']); if($res == 1){ $retorno = array('codigo' => 1, 'mensagem' => 'CPF ja existe'); echo json_encode($retorno); exit(); }else{ $retorno = array('codigo' => 2, 'mensagem' => 'CPF não cadastrado'); echo json_encode($retorno); exit(); } } Até aí tudo bem... Acontece que quando o Ajax faz a requisição da página php onde eu instancio minha classe, não sei pq tá dando Fatal Error Class Not Found (como se não tivesse conectando com meu banco). namespace App; class Init { public static function getDb(){ $db = new \PDO("mysql:host=127.0.0.1;dbname=root;charset=utf8","root","vertrigo"); return $db; } } Porém funciona se eu testar minha classe direto na página PHTML do formulário usando um método GET pra receber e passar a consulta pro meu objeto. namespace App\Models; class Validacoes { protected $db; public function __construct(\PDO $db) { $this->db = $db; } public function CPF($cpf){ $stmt = $this->db->prepare("Select CPF from tabela where REPLACE(REPLACE(CPF,'.',''),'-','') = :cpf LIMIT 1"); $stmt->bindParam(":cpf",$cpf); $stmt->execute(); if($stmt->fetchAll()){ $res = 1; }else{ $res = 2; } return $res; } } Será q o fato de não funcionar com o Ajax requisitando em public uma página php, tem haver com a rota? Pois só as Views estão usando Controllers! Ou estou fazendo errado utilizando uma página php na requisição Ajax? ERRO ( ! ) Fatal error: Class 'App\Models\Validacoes' not found in D:\Projetos\SAEE\public\ajax\consultaCPF.php on line 3 Call Stack # Time Memory Function Location 1 0.0010 335304 {main}( ) ..\consultaCPF.php:0
  12. Olá! Tenho uma classe instanciada e um método que retorna um array com informações. Tudo funciona bem se executo o método apenas uma vez, porém, se executo o método dentro de um loop while, só eh executado apenas uma vez, na segunda já apresenta erro na function. $arq = new arquivo(); $cont = 0; while ($cont < 2) { $texto = "arquivo" . $cont . ".txt"; $tamanho = $arq->getSize($texto); $cont++; }
  13. ndias

    Function Include Class POO

    eu gostaria de criar uma classe para incluir partes de html dentro do meu layout para isso eu queria fazer algo do tipo: class Includes { private $include; public function inc() { include_once "include/".$this->include.".phtml"; } } e <?php echo $include->bottom_master;?> no meu html como sou novo em orientação a objetos, não estou conseguindo fazer essa simples coisa. poderiam me dizer aonde estou errando, por favor? obrigado,
  14. Kelen Miranda Silva

    POO e PDO

    Olá pessoal. Estou aprendendo PDO e POO. Estou para fins de estudo, migrando um sistema meu procedural para POO. E obvio, recebendo varios erros e pesquisando muito. O erro da vez é este: Fatal error: Call to undefined method PDO::getMenu() in C:\xampp\htdocs\admacuco10\includes\sidebar.php on line 47 Na linha 47 tenho o seguinte: ... <ul class="sidebar-menu"> <li class="header">MAIN NAVIGATION</li> <?php require_once("model/dbconn.php"); require_once("model/sql.php"); $query = dbconn::getInstance(); $data = $query->getMenu(); //Linha 47 $key = $data[1]; foreach($key as $menu) { ?> ...Continua Agora segue a classe que contém o getMenu <?php class sql extends dbconn { public static $instance; private function __construct() { // } public static function getInstance() { if (!isset(self::$instance)) self::$instance = new sql(); return self::$instance; } public function getMenu() // Este aqui { try { $db="select * from r_menu order by urutan"; $stmt=dbconn::getInstance()->prepare($sql); $stmt->execute(); $stat[0] = true; $stat[1] = $stmt->fetchAll(PDO::FETCH_ASSOC); return $stat; } catch(PDOException $ex) { $stat[0] = false; $stat[1] = $ex->getMessage(); return $stat; } } //Continua... Partindo da premissa que sou leiga no assunto POO e PDO, dêem uma luz aí. Grata.
  15. André Tripode Colognesi

    Qual a conexão com banco mais recente?

    Estou começando a programar em PHP agora e estou em duvida sobre qual a conexão mais recente, sei que a pouco tempo atras era a mysqli, porem tenho duvida se existe alguma mais recente ou mysqli atraves de POO é a mais atual. abraços
  16. Bom dia galera, meu código está com um probleminha, não está cadastrando as fotos no banco de dados, esse problema só está acontecendo nas fotos, nas outras partes do código está cadastrando normalmente. Vocês poderiam me ajudar com esse problema? Aquí está a função de cadastramento: function cadastrarFotoServico($titulo,$cod_fotografo,$cod_servico,$descricao){ include("conexao.php"); $extensao = strtolower(substr($_FILES['arquivo']['name'], -4)); $novo_nome = md5(time()). $extensao; $diretorio = "upload/"; move_uploaded_file($_FILES['arquivo']['tmp_name'], $diretorio.$novo_nome); $sql = $conexao->prepare("INSERT INTO foto (titulo, cod_fotografo, cod_servico, descricao) VALUES (:titulo, :cod_fotografo, :cod_servico, :descricao)"); $sql->bindValue(":titulo",$titulo); $sql->bindValue(":cod_fotografo",$cod_fotografo); $sql->bindValue(":cod_servico",$cod_servico); $sql->bindValue(":descricao",$descricao); $sql->execute(); header("location:gerenciarFoto.php"); };
  17. Estou com muita dificuldade a parte de encapsulamento, parece que não entra na minha cabeça, parece que é um assunto muito genérico. Também quais livros eu devo ler, e qual é a forma de aprender POO de forma menos descomplicada?
  18. lucknot

    Duvida com POO E PDO

    Estou começando a ver sobre poo e pdo para o php só que encontrei um pedra no meio do caminho. A duvida e como passar a array do fecth dentro da function para obter os resultado fora da function. Obrigado se pode me ajudar! class class usuario extends conexao { private $id; public function login($id){ $this ->id = $id; $pdo = parent::getDB(); $buscardados=$pdo->prepare("SELECT * FROM usuario WHERE id = 1"); $buscardados->bindValue(":id", $this->getid() ); $buscardados->execute(); $linha = $buscardados->fetch(PDO::FETCH_OBJ) or die(print_r($query->errorInfo(), true));; var_dump($linha); } public function setid($id){ $this->id = $id; } public function getid(){ return $this -> id; } chamada da class require_once'../class/usuario.php'; $u = new usuario; echo $u->login(1); resultado da var_dump object(stdClass)#4 (3) { ["id"]=> string(1) "1" ["nome"]=> string(9) "teste " ["email"]=> string(5) "teste2" }
  19. Eu tenho uma duvida que ate hoje não consegui chegar a conclusão de qual á melhor forma, pois atualmente estou estudando a arquitetura MVC por conta. Se alguém puder me ajudar ou mandar algum artigo que trata sobre o assunto. Imagina que o meu diretório esteja organizado dessa forma: ASSETS JAVASCRIPT IMAGENS APP CONTROLLER MODELS ROUTES VIEWS CONFIG SERVER DB INDEX.PHP E na views tem uma página que eu gostaria de listar os clientes via ajax, da forma "tradicional" caso eu gostaria que essa listagem fosse feita no carregamento da página, no controller eu faria essa requisição ao model e entregava para a view um array de clientes, certo? Mas no cenário em que eu preciso desses clientes via ajax, qual seria a melhor forma? Eu pensei em duas situações, primeira: No model uma variável chamada função, que recebe por GET qual função executar, ai ficaria algo do tipo no modelCliente.php <?php $funcao = $_GET['funcao']; $objCliente = new Cliente; $lista = $objCliente->$funcao(); class Cliente{ public function all(){ ... echo $array_clientes; } } ?> Ai no JS, seria algo desse tipo: $.ajax({ url: "clienteModel.php", type: "get", data: {funcao: "all"}, success: function(result){ console.log(result); } }) A segunda maneira seria a modelCliente.php assim: <?php class Cliente{ public function all(){ ... return $array_clientes; } } ?> Ai teria uma página em PHP ponte, seria algo desse tipo listar_todos.php: <?php include_once "modelCliente.php"; $model_cliente = new Cliente; $clientes = $model_cliente->all(); echo $clientes; ?> Ai no JS, seria algo desse tipo: $.ajax({ url: "listar_todos.php", success: function(result){ console.log(result); } }) A segunda maneira eu acho mais simples, porém eu teria que ter um arquivo ponte para todas as classes do model e onde eu deixaria esses arquivos na arquitetura MVC?
  20. Fala galera tudo bem? Estou com uma dúvida sobre como eu devo fazer as perguntas para descobrir o que o cliente quer. Dei uma estudada em UML e entendi na teoria como funciona, mas na prática está meio dificil. Vocês podem me dar exemplos ou algum exercício para entender mais sobre o assunto? Eu acredito que deve-se basear em perguntas do tipo o que o cliente deseja desenvolver, o que cada setor desse sistema vai fazer e o quais serão as informações necessárias desse setores serão necessárias para que o sistema cumpra o que lhe foi requerido. Podem me passar um exemplo ou algum exercício para aprender mais sobre a análise do sistema? VLW
  21. George Feitosa Jr

    Estudando sobre PHP POO - ajuda

    Eai pessoal, seguinte estou estudando sobre como programar orientado a objetos no php e estava com algumas duvidas semana passada. Hoje estou tentando fazer um sistema simples de login(ainda estou terminando ele xD), mas orientado a objetos para ver se estou indo bem. Procurei a todo tempo fazer com que as classes sejam totalmente reutilizáveis. Poderiam analisar meu código e me informar se estou cometendo erros? Classe que faz a conexão com o banco de dados class Conexao { private $dsn, $user, $pass; protected $pdo; public function __construct($dsn, $user, $pass){ $this->dsn = $dsn; $this->user = $user; $this->pass = $pass; $this->connect(); } public function connect(){ try{ return $this->pdo = new PDO($this->dsn, $this->user, $this->pass); } catch(PDOException $e){ die('Falha na conexão com o banco de dados').$e->getMessage(); } } } Classe que resgata, edita, deleta e atualiza a tabela no banco de dados class CRUD extends Conexao{ private $sql; private $table; private $values; private $condition; public function __construct($table){ parent::__construct("mysql:host=localhost;dbname=sistema_compras;","root",""); $this->table = $table; } public function readDocumment($condition = null){ $this->condition = $condition; if($this->condition != null){ $this->sql = "SELECT * FROM {$this->table} WHERE {$this->condition}"; }else{ $this->sql = "SELECT * FROM {$this->table}"; } return $this->query($this->sql)->fetchAll(PDO::FETCH_ASSOC); } public function query($sql){ return $this->pdo->query($sql); } public function insertDocumment($values){ $this->values = $values; $this->sql = "INSERT INTO $this->table SET $this->values"; $this->query($this->sql); } public function updateDocumment($values, $condition){ $this->condition = $condition; $this->values = $values; $this->sql = "UPDATE $this->table SET $this->values WHERE $this->condition"; $this->query($this->sql); } public function deleteDocumment($condition){ $this->condition = $condition; $this->sql = "DELETE FROM $this->table WHERE $this->condition"; $this->query($this->sql); } } Classe que fica responsável pelo login do usuário class Login extends CRUD{ private $email, $pass; private $checkUser, $user; /*AQUI É INFORMADA A TABELA QUE VAI SER PROCURADO O USUARIO*/ public function __construct($table){ parent::__construct($table); } /*MÉTODO PARA PROCURAR O USUARIO NO BANCO DE DADOS*/ public function getUser($cond){ /*EXECUTA A QUERY DENTRO DA CLASSE CRUD PARA PROCURAR O USUARIO*/ $this->checkUser = parent::readDocumment($cond); /*SE NAO ACHAR NADA, INFORMA QUE OS DADOS ESTAO INCORRETOS*/ if(!$this->checkUser){ echo ('Dados incorretos'); }else{ /*SE ACHAR ELE RETORNA OS ARRAYS DO USUARIO*/ foreach($this->checkUser as $this->user){ return $this->user; } } } } $login = new Login("usuario_tb"); $usuario = 'usuario@email.com'; $senha = 'senha12345'; $dados = $login->getUser("email_usuario = '$usuario' AND senha_usuario = '$senha'"); if($dados){ extract($dados); echo 'Bem vindo - '.$nome_usuario; } enfim pessoal é isso, o que vocês acham? Estou ainda tendo uma ideia muito errada sobre poo ou estou indo pelo caminho certo? t+
  22. Oi galera blz? Então, decidi aprender POO no php e estou até entendendo como funciona, mas meu grande problema é na hora de pensar em criar alguma coisa e saber quais atributos eu devo botar logo de inicio... Estou pensando em fazer os métodos e quando precisar usar tal atributo, eu crio na hora, mas acredito que esse é o jeito errado de pensar. Enfim alguém pode me mostrar uma luz sobre como eu devo pensar na hora de iniciar uma classe, tipo por etapas. T+
  23. Gabrielvt14

    Dar echo quando objeto retorna inteiro

    Olá pessoal, Estou começando a brincar com o PHP orientado a objetos, e me deparei com um probleminha... Criei uma função bem besta pra retornar o ano atual... <?php class Ano { public function __construct() { return $ano = date('Y'); } } echo $ano = new Ano(); Quando dou echo no objeto da classe aparece a mensagem dizendo que o objeto da classe não pode ser convertido em string. Como eu faria para mostrar o retorno deste objeto na tela? Desde ja agradeço!
  24. monek

    Como interagir entre objetos?

    Vi uma seria de videos sobre POO e estou tentando fazer alguma coisa para testar meus conhecimentos, percebi que estou com muita dificuldade para criar interação entre objetos... Fiz essa classe player que cria um player E uma função bem porca de pvp pra criar 2 players e fazer PVP entre eles <html> <head><title>Test POO</title></head> <body> <?php require_once 'player.php'; $j[1] = new Player("Bubble", 4); $j[2] = new Player("Knurd Yep", 1); var_dump($j[1]); echo '<br>'; var_dump($j[2]); echo '<br>'; echo '<br>'; PvP($j[1], $j[2]); ?> </body> </html> <?php class Player { private $name; private $level; private $vocation; public function __construct($n, $v) { $this->setName($n); $this->setVocation($v); $this->setLevel(8); } // interação entre players function getAtk($j) { $atk = $j->getVocation() * $j->getLevel() return $atk; } function PvP($jA, $jB) { if(getAtk($jA) > getAtk($jB)) { echo 'Player' .$jA->getName(). 'matou' .$jB->getName().'!'; } else { echo 'Player' .$jB->getName(). 'matou' .$jA->getName().'!'; } } // getters e setters padrões function getName() { return $this->name; } function setName($nome) { $this->name = $nome; } function getLevel() { return $this->name; } function setLevel($l) { $this->level = $l; } function getVocation() { return $this->vocation; } function setVocation($v) { $this->vocation = $v; } } O que eu to fazendo de errado?
  25. Janni e Gui

    PHP com POO

    Estou precisando fazer um projeto para a faculdade a partir de um codigo pronto que o professor passou que faça basicamente upload, listagem e exclusao de fotos. Até aí tudo bem, eu já consegui fazer, o problema é que a classe diretorio tem que ficar orientada a objetos, e eu nao estou conseguindo raciocinar para fazer isso. abaixo segue os codigos da Index, CadastrarArquivo, ExcluirArquivo e a classe diretorio, que é a qual solicito ajuda no codigo para tornar-se POO. Agradeço a ajuda. //INDEX <?php // utilizar este arquivo ao invés de index.html // pois com o PHP vai ser possível tornar a lista de arquivos // uma lista dinâmica, ou seja, com base no que existe na pasta // e é preciso formatar o formulário para que esteja // enviando seus dados de forma correta para o script cadastrar_arquivo.php // ** lembre-se do método, do action e do enctype ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <title>MAPA</title> <!-- Bootstrap Core CSS --> <link href="../vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <!-- MetisMenu CSS --> <link href="../vendor/metisMenu/metisMenu.min.css" rel="stylesheet"> <!-- Custom CSS --> <link href="../dist/css/sb-admin-2.css" rel="stylesheet"> <!-- Custom Fonts --> <link href="../vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div id="wrapper"> <!-- Navigation --> <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0"> <div class="navbar-header"> <a class="navbar-brand" href="index.html">MAPA - EAD UniCesumar</a> </div> <!-- /.navbar-header --> </nav> <div id="page-wrapper" style="margin-left:0px"> <div class="row"> <div class="col-md-6 col-md-offset-3"> <h1 class="page-header">Projeto Mapa Unicesumar</h1> </div> <!-- /.col-lg-12 --> </div> <!-- /.row --> <div class="row"> <div class="col-md-6 col-md-offset-3"> <div class="panel panel-default"> <div class="panel-heading" > Digite o nome do arquivo e anexe o documento... </div> <?php if (isset($_GET['error'])) {?> <div class="panel-heading" style="background-color: #cccccc;"> Preencha o formulário corretamente! </div> <?php }?> <div class="panel-body"> <div class="row"> <div class="col-lg-12"> <form role="form" name="upload" action="cadastrar_arquivo.php" method="post" enctype="multipart/form-data"> <div class="form-group"> <label>Nome do Arquivo</label> <input name="nome" class="form-control"> <p class="help-block">Digite o nome que o arquivo será salvo...</p> </div> <div class="form-group"> <label>Anexar Arquivo</label> <input name="imagem" type="file"> </div> <button type="submit" class="btn btn-active">Enviar Arquivo</button> </form> </div> <!-- /.col-lg-12 (nested) --> </div> <!-- /.row (nested) --> </div> <!-- /.panel-body --> </div> <!-- /.panel --> </div> <!-- /.col-lg-12 --> </div> <!-- /.row --> <div class="row"> <div class="col-md-6 col-md-offset-3"> <div class="panel panel-default"> <div class="panel-heading"> Relatório de Arquivos </div> <!-- /.panel-heading --> <div class="panel-body"> <div class="table-responsive"> <table class="table table-striped table-bordered table-hover"> <thead> <tr> <th>#</th> <th>Arquivo</th> <th>Excluir?</th> </tr> </thead> <tbody> <?php $dir = '../uploads'; $files1 = scandir($dir); $i=0; foreach ($files1 as $file){ if(strlen($file)>3) { $i++; ?> <tr> <td><?php echo $i ?></td> <td><?php echo $file ?><img src="<?php echo $dir.'/'.$file ?>" title="<?php echo $file ?>" style="width: 15%;"/></td> <td><a href="excluir_arquivo.php?excluir=<?php echo$file?>">Excluir</a></td> </tr> <!-- <tr> <td><?php echo $i ?></td> <td><img src="<?php echo $dir.'/'.$file ?>" title="<?php echo $file ?>" style="width: 15%;"/></td> <td><a href="excluir_arquivo.php?excluir=<?php echo$file?>">Excluir</a></td> </tr>--> <?php } } ?> </tbody> </table> </div> <!-- /.table-responsive --> </div> <!-- /.panel-body --> </div> </div> </div> </div> <!-- /#page-wrapper --> </div> <!-- /#wrapper --> <!-- jQuery --> <script src="../vendor/jquery/jquery.min.js"></script> <!-- Bootstrap Core JavaScript --> <script src="../vendor/bootstrap/js/bootstrap.min.js"></script> <!-- Metis Menu Plugin JavaScript --> <script src="../vendor/metisMenu/metisMenu.min.js"></script> <!-- Custom Theme JavaScript --> <script src="../dist/js/sb-admin-2.js"></script> </body> </html> -------------------------------------------------------------------- //cadastrar arquivo <?php // script que recebe os dados do formulário // trata os dados // recebe o upload // recebe o nome do arquivo // move o arquivo para a pasta uploads // salvando com o nome informado pelo input // depois redireciona para a lista de arquivos novamente $error = ''; if (isset($_POST['nome']) && $_POST['nome']!='' && isset($_FILES['imagem'])) { $name = $_FILES["imagem"]["name"]; $ext = end((explode(".", $name))); # extra () to prevent notice $uploaddir = '../uploads/'; $uploadfile = $uploaddir . $_POST['nome'].'.'.$ext; if (move_uploaded_file($_FILES['imagem']['tmp_name'], $uploadfile)) { echo "Arquivo válido e enviado com sucesso.\n"; } }else { $error = "error"; } header('Location: '.'index.php?'.$error); ?> -------------------------------------------------------------------- //Excluir arquivo <?php $delete = $_GET['excluir']; unlink('../uploads/'.$delete); header('Location: '.'index.php'); ?> -------------------------------------------------------------------- //diretorio <?php interface DiretorioInterface { public function recuperarListaArquivos();//{} public function excluirArquivo($nome_arquivo);//{} public function cadastrarArquivo($arquivo);//{} /** * se precisra pode construir mais métodos * ou até mesmo dar manutenção nesta interface */ } class Diretorio implements DiretorioInterface { } ?>
×

Important Information

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