Ir para conteúdo

POWERED BY:

Omar~

Members
  • Total de itens

    1339
  • Registro em

  • Última visita

  • Dias vencidos

    15

Tudo que Omar~ postou

  1. Omar~

    Consulta sem duplicação

    Não entendi o objetivo, afinal os resultados duplicados segundo a query apresentada estão duplicados no banco de dados. Tente usar JOIN na query e monte-a mais conivente com o objetivo, como acredito eu que em ambas tabelas possuem dados duplicados o operador ON na query pode isolar aqueles que possuem colunas com valor igual. Sem ter mais informações considere algumas alternativas Usar a função nativa do php array_filter Criar novo array organizando e definindo esse array como necessário usando os dados obtidos da query. Evitar uso da função while quando não se está usando dados que podem ter inicio ou fim, pois dependendo da situação pode sobrecarregar o servidor (máquina) caso os dados podem ser inesperados, além de danos ao hardware em sobrecarga de tarefa em loops infinitos. Você pode testar durante o processo de produção e até pode identificar problemas apenas usando a função: echo "<pre>"; // a tag pre aqui serve apenas para exibir a orientação de código var_dump($banner); Forneça mais informações, de preferência a estrutura das tabelas "não precisa dos registros" apenas para fins de verificar como montar a query da forma mais coesa.
  2. Omar~

    Modelagem para questionário

    Depende do cenário a ser empregado, como vai ser executado: 1 - Questionários podem ser criados e editados? 2 - Perguntas podem ser criadas, editadas ou removidas do questionário? 3 - Mais de uma pessoa pode responder ao mesmo questionário? Supondo que sim no básico dessas três questões, sem levar em conta de como deve funcionar o carregamento dos dados, como será o funcionamento do software.... De qualquer forma eu optaria por usar tabelas distintas para cada armazenamento. Fica até mais simples gerenciar, evita confusão em manutenções se as tabelas apenas tem o que é necessário possuir, é a mesma lógica de um código orientado onde os métodos apenas fazem o que tem de fazer. Veja como pensei na arquitetura: DROP TABLE IF EXISTS `questionario`; DROP TABLE IF EXISTS `pergunta`; DROP TABLE IF EXISTS `resposta`; CREATE TABLE `questionario` ( `q_id` int(9) NOT NULL AUTO_INCREMENT, `q_title` varchar(100) NOT NULL DEFAULT '' COMMENT 'Titulo do questionario', `q_publicado` date COMMENT 'Data em que foi publicado', PRIMARY KEY (`q_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE `pergunta` ( `p_id` int(9) NOT NULL AUTO_INCREMENT, `p_pergunta` varchar(200) NOT NULL DEFAULT '' COMMENT 'Texto da pergunta', `p_questionario` int(9) NOT NULL DEFAULT '0' COMMENT 'A qual questionario pertence', PRIMARY KEY (`p_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE `resposta` ( `r_id` int(9) NOT NULL AUTO_INCREMENT, `r_resposta` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'Resposta da pergunta', `r_respondida` date COMMENT 'Data em que foi respondida', `r_pergunta` int(9) NOT NULL DEFAULT '0' COMMENT 'A qual pergunta pertence', `r_pessoa` int(9) NOT NULL DEFAULT '0' COMMENT 'Pessoa que respondeu', PRIMARY KEY (`r_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; Fazendo a(s) pergunta(s) Perceba que assim as perguntas podem ser carregadas sem as respostas evitando assim registros de perguntas duplicados no banco de dados para cada resposta que foi inserida. Imaginando assim não terei a mesma pergunta repetida em cada resposta para ela. Vendo a(s) resposta(s) do questionário Entretanto também pode-se armazenar a respostas se foi ou não respondida, exemplo se não houve dados para inserir na coluna r_resposta pode-se adicionar a base da tabela uma nova coluna para essa função -- na tabela resposta `q_respondida` enum('s', 'n') NOT NULL DEFAULT 'n' NULL COMMENT 's = foi respondida, n = nao foi respondida', Particularmente não vejo necessidade de registro para sim ou não, uma vez como mencionei é que se não tem registro do id da pergunta nas respostas para tal é porque não respondeu. Mantenha atenção na tabela de resposta, através dela você chega as perguntas, pelas perguntas ao formulário e vice-versa conforme for a necessidade. E mesmo que não haja necessidade de múltiplas pessoas responder, essa arquitetura acredito ser mais coesa.... se não há resposta o formulário não foi respondido. Por fim não se esqueça de um bom tratamento dos dados a serem inseridos na coluna r_resposta por ser um tipo text; códigos podem ser inseridos no banco de dados, códigos de quebra de estrutura ou executáveis ao serem carregados em uma instrução. #EDIT# Realmente para fins de agrupamento uma nova tabela seria necessária para registrar a data, porém pensando na ergonomia de dados possuir outra tabela nessa finalidade geraria muito mais armazenamento a longo prazo. Então apenas registre uma vez a data de uma resposta, assim não precisa armazenar novamente a mesma coisa; essa servirá para determinar quando foi respondido. - Se respondeu pergunta A registre a data, se respondeu pergunta B não precisa registrar a data novamente. Pode até optar em usar um varchar ao invés de date, assim pode-se manter a coluna vazia para as demais resposta economizando no armazenamento.
  3. Omar~

    Converter jpg para webp

    É um formato que particularmente detesto, mas em fim tentei algumas coisas aqui e a perda da qualidade da imagem ao recriar ela no servidor considerei ruim, pelo menos a meus olhos a perda de qualidade foi expressiva. Não sei se é meu servidor ou o php que não manipula bem esse formato. Então deixei a cargo do usuário decodificar o binário da imagem e apenas mandar esse código ao invés de fazer um upload. Mesmo assim não consegui recriar a imagem apenas usar o código para reescrever. Como usei script's meus tive de criar um exemplo https://drive.google.com/file/d/1Xyv05MLGNjEhojukh4tAzXuYY6L3B1b3/view?usp=sharing Ações: 1 Usuário - Selecionar uma imagem qualquer 2 Usuário - Codificar a imagem 3 Usuário - Pré visualizar essa imagem 4 Usuário - Adicionar todo código de informação da imagem 5 Usuário - Enviar os dados dessa imagem (não faz upload) 6 Servidor - Isolar o binário da imagem 7 Servidor - Reescrever uma imagem idêntica a selecionada pelo usuário na máquina dele
  4. Omar~

    Simulador Wamp

    Sim já sabia que certamente não funcionaria somente adicionando isso no código, por isso disse: Tudo é uma arquitetura depende de outros aspectos do código. Apenas apresentei a base ao qual o restante do código deve ser apoiado em cima. Lembrei que tinha um repositório com um esquema. Comecei a escrever e até hoje não dei continuidade https://github.com/Spell-Master/wesite_pessoal
  5. Omar~

    Variável get com url amigável

    Vai depender de como a reescrita do htaccess está formulada. Mas se fosse você optaria pelo mais fácil Existem funções nativas do php para tratar strings digamos: dominio.com.br/busca/?campo=assunto <?php $url = [ 0 => 'busca', 1 => '?campo=assunto' ]; $exemploA = substr($url[1], 1); var_dump( $exemploA ); // campo=assunto $exemploB = explode('?', $url[1]); var_dump( $exemploB[1] ); // campo=assunto E por aí vai basta apenas manipular a string do índice no array onde estão os dados
  6. Omar~

    Orientação - Jav + MySql

    De fato a instalação está com problemas, ou mesmo foi incompleta por motivos variados. Onde o my.ini está depende do sistema operacional ou local onde os demais arquivos do mysql estão.... O my.ini não se configura levianamente pois ele diz os limites de dados que o sql vai trabalhar, diretórios, arquivos etc, então configurar ele sem precisão pode complicar mais ainda. Já reiniciar não funcionar é porque não há um comando para o sistema operacional iniciar o mysql quando ativo, sendo sempre necessário iniciar. Aconselho usar o Xampp independente do seu sistema operacional, pois o software fornece o mysql dentre outros como o apache, ftp que são de grande uso de um desenvolvedor. Se seu sistema operacional for o windows veja esse vídeo onde é mostrado como instalar os recursos e serviços, sendo esses os serviços de iniciação automática um problema no windows, mas no video é mostrado o que fazer para que eles funcionem.
  7. Omar~

    Simulador Wamp

    Meio esquisito essa lógica aí... mas em fim... Primeiro é o seguinte, seu servidor está bem relaxado deixando que erros de código sejam ignorados, o que é muito perigoso E seu localhost no caso o wampp ele está mais rigoroso enquanto a permitir erros, até arisco dizer que os erros estão omitidos caso você seria informado dos erros e o código seria interrompido  Veja: $permissao = [ 'principal', 'contribua', 'quem-somos', 'politica-de-privacidade', 'termos-de-uso', 'evento', 'busca', 'galeria', 'galerias', 'clickbanner', 'noticia', 'noticias', 'contato', 'video' ]; function UrlIndex() { $filter = filter_input(INPUT_GET, 'pg', FILTER_DEFAULT); $setUrl = empty($filter) ? 'principal' : $filter; $explode = explode('/', $setUrl); $arr = array_filter($explode); return ($arr); } $url = UrlIndex(); $page = 'erro.php'; foreach ($permissao as $value) { if ($url[0] == $value) { $page = (file_exists($value . '.php') ? $value : '404') . '.php'; break; } } var_dump($page); Ao caso das variáveis, não as use! Você já vai possuir um array com esses dados caso necessite, mas sempre verifique se o valor existe antes de usar if (isset($url[3])) { // somente se obtiver a url dominio.com.br/A/B/C/D } No mais requer analise do htaccess para saber exatamente como a manipulação de dominio.com.br?pg=pagina/variavel
  8. Omar~

    Não consigo carregar imagem do captcha no meu formulário

    Veja se seu php está habilitado essas funções: imagejpeg e imagettftext Preparei um exemplo didático com arquivos aqui: https://drive.google.com/file/d/1dcqxJvZltxsxjLzBycCEKnr33S-IDUlG/view?usp=sharing
  9. Sugiro também sempre assegurar que o está manipulando seja o que espera, então a melhor forma é converter para o formato por vias das dúvidas, e sempre checar antes de prosseguir com o código $_REQUEST['campo_form'] = 01234567; var_dump($_REQUEST['campo_form']); // int $_REQUEST['campo_form'] = '01234567'; var_dump($_REQUEST['campo_form']); // str $_REQUEST['campo_form'] = (int) '01234567'; // string para integer var_dump($_REQUEST['campo_form']); // int $_REQUEST['campo_form'] = (string) 01234567; // integer para string var_dump($_REQUEST['campo_form']); // str Pelo que entendi a busca é pelo valor específico então eu não usaria o operador like, a não ser que quisesse todos registros começando ou terminando com o desejado. De qualquer forma executei a query aqui em pdo e o resultado foi alcançado $selecinar = $conexao->prepare("SELECT * FROM tabela WHERE coluna = :buscar"); $selecinar->execute([':buscar' => '12340000']); $resultado = $selecinar->fetchAll(PDO::FETCH_ASSOC); var_dump($resultado); Mas quando tentei buscar todos registros que tinham o zero no início ou no fim eu não consegui, confesso que faltou tentar mais. Então de improviso busquei todos registors e usei o php para isolar todos índices que eu desejo em uma nova array exemplo: /* * função que verifica se o caractere existe no texto * $caractere: qual string verficar * $texto: em qual texto verificar */ function noInicioFim($caractere, $texto) { if ($caractere == substr($texto, 0, 1) || $caractere == substr($texto, -1)) { return (true); } else { return (false); } } $registros_do_banco_de_dados = [ // simulando todos registros da tabela ['id' => 0, 'campo_str' => '01234567'], ['id' => 1, 'campo_str' => '12345670'], ['id' => 2, 'campo_str' => '12345678'], ['id' => 3, 'campo_str' => '12340000'], ['id' => 4, 'campo_str' => '11111111'], ['id' => 5, 'campo_str' => '22222222'], ['id' => 6, 'campo_str' => '33333333'], ['id' => 7, 'campo_str' => '44444444'], ['id' => 8, 'campo_str' => '55555555'], ['id' => 9, 'campo_str' => '00000000'], ['id' => 10, 'campo_str' => '10000009'] ]; $string_de_busca = '0'; // qual caractere será a chave de busca $indices_encontrados_com_zero = []; // novo array só com os índices encontrados foreach ($registros_do_banco_de_dados as $valor) { if (noInicioFim($string_de_busca, $valor['campo_str'])) { array_push($indices_encontrados_com_zero, ['id' => $valor['id'], 'campo_str' => $valor['campo_str']]); } } Não é a melhor alternativa dependendo do cenário que a aplicação deva funcionar.
  10. De fato se enviar algo o formulário é reiniciado para evitar problemas graves e deixe assim, mesmo que algum safado possa editar javascript para burlar isso a grande maioria não sabe e nem acidentalmente perturbaria o servidor. Mas se ao sair do navegador tudo é limpo é configuração dele ou está navegando anônimo ambos casos a aplicação web não pode fazer nada. Porém não fechar o navegador as sair de sua "janela" ou trocar de aba... Me parece ser algo restrito a sistema operacional ou mesmo software de navegação, até mesmo algum comando do aparelho para que limpe Nesse caso pode usar a função setInterval para que de tempo em tempo obtenha os valores dos input's no formulário e preencha os campos se houver dados registrados em variáveis Caso posso escrever e mostrar aqui um código javascript pra essa finalidade, mas você consegue pois é algo extremamente simples. Deixo observações....: Ainda não pode intervir no auto completar do navegador, não poderá dar valor a input se algum software do usuário negar essa ação, e o pior de tudo isso seria algo bem grotesco além que requereria processos que comprometeria a performasse de sua aplicação, sem mencionar que é desnecessário pois pessoalmente não vejo beneficio a não ser que eu esteja enganado e não entendi o motivo. Então não enviou o formulário e usou a função setInterval para manipular e os dados se perdem, nesse caso desconheço qualquer coisa do javascript para afim. Pois com certeza quem limpa o formulário é o usuário involuntariamente por algum software que esteja usando.
  11. Omar~

    Java - Ajuda para Instalar o Jasper Reports no Eclipse

    Eu encontrei isso depois de algumas pesquisas: https://stackoverflow.com/questions/78003228/any-fork-of-previous-jasper-studio-or-eclipse-plugin-source-code Então você pode instalar o addon manualmente fora da IDE eclipse/software funcionando mover cada arquivo para seu devido diretório na IDE "estranho chamar o eclipse de IDE rsrsrsr ^.^" Provavelmente vai precisar usar alguma versão antiga do eclipse, o que na minha opinião não compensa pela quantidade de itens códigos descontinuados. Experimentou o software Jaspersoft community edition? Pelo que li é a única alternativa viável. Bom.... não uso o eclipse e o pouco que tive contato com ele foi a anos.... anos.... e mais e mais anos. Mas qualquer ferramenta de desenvolvimento que usar desatualizado, pode levar a erros que compromete o estabilidade e funcionamento do software que está escrevendo, isso quando o torna tão defeituoso que simplesmente a coisa nunca vai funcionar. E é isso, se tentar enfiar o jasper studio na IDE você pode encontrar os arquivos para afim somente compatível com uma versão antiga do eclipse, ou sei lá alguém resolveu isso, compartilhou e apenas eu não encontrei. Mas se eu estivesse na sua situação procuraria usar outro recurso, uma vez que qualquer arquivo antigo jasper terá de obter de terceiros e vai lá saber quais problemas gravíssimos pode enfrentar ao usar arquivos de código suspeito, porém você pode revisar isso
  12. Omar~

    Java - Ajuda para Instalar o Jasper Reports no Eclipse

    Problema similar ao seu já me fora perguntado, como uso a IDE netbeans a anos. Enfim esse tal jasper tbm sumiu das aplicações de todas IDE, pelo que entendi o Jasper passou a ter o código fechado. Meu amigo que teve esse problema seu, teve de usar uma versão antiga da IDE e conseguiu sei lá onde o Jasper Reports. Por fim acabou abandonando a plataforma. Tente isso: https://community.jaspersoft.com/download-jaspersoft/community-edition/
  13. Omar~

    mostrar quanto tempo foi postado um conteudo

    Para isso acredito ser necessário alguma função que calcule as diferenças de tempo de forma apresentar somente x tempo em questão. Deixo aqui algo que possa usar para aprendizado, nunca necessitei fazer algo assim, mas conheço essa classe nativa do php que reproduz um resultado similar <?php $antes = new DateTime( '2001-01-01 00:01:01' ); $agora = new DateTime( date('Y-m-d H:i:s') ); $intervalo = $agora->diff($antes); echo '<pre>'; var_dump("\nTempo passado desde antes até agora:\n Anos > {$intervalo->y} Meses > {$intervalo->m} Dias > {$intervalo->d} Horas > {$intervalo->h} Minutos > {$intervalo->i} Segundos > {$intervalo->s}"); Espero que ajude
  14. Omar~

    PHP - Tecla de Atalhos para salvar

    Ações do usuário são feitas pelo lado dele exemplo usando o javascript.. Ações do php é realizado no lado do servidor. O php não consegue manipular o usuário nem o usuário pode manipular O php apenas entrega renderizado ao usuário toda parte gráfica processado no servidor e não interage com ele 2 métodos a mesma coisa Usuário diz oi > javascript leva pro servidor essa mensagem > servidor pensa e diz olá > Usuário deve recarregar o conteúdo para saber qual foi a mensagem Usuário diz oi > javascript leva pro servidor essa mensagem > servidor pensa e diz olá > javascript retorna com a mensagem para o usuário..
  15. Omar~

    PHP - Atualizar INPUT com função moeda

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat
  16. Omar~

    O autoload do Omar só funciona no projeto dele

    Nem pensar em usar isso, só vai complicar sua vida ainda mais. Vamos por parte... DIRECTORY_SEPARATOR é uma constante nativa do PHP ela vem configurado de acordo com a separação padrão do sistema operacional, se a separação usa barra, o valor será "/", se a separação usa contra-barra o valor será "\". Quase impossível encontrar um SO que não reconheça a separação pela barra comum, ou seja Isso: 'dirA' . DIRECTORY_SEPARATOR . 'dirB' . DIRECTORY_SEPARATOR . 'dirC' . DIRECTORY_SEPARATOR É a mesma coisa de usar: 'dirA/dirB/dirC/ Na verdade eu só uso que desse modo ao bater os olhos em cima já vejo que tem algo sendo anexo alí. Você pode usar a constante mágica nativa do PHP "__DIR__" sempre retorna o diretório do arquivo em que ela é acionada. Digamos que eu queira voltar uma diretório atrás e entrar em outro: __DIR__ . '../outro_diretorio' Ou seja do local atual retroceda e entre em outro, essa é uma das melhores dicas que sempre apresento as pessoas, pois assim fica muito mais fácil apontar locais de arquivos, se começar por onde está arquivo que vai anexar outro evitando qualquer discordância gerada por um de reescrita por htaccess em exemplo no apache. Notei um problema bem perigoso no código, isso pode gerar uma dor de cabeça para ajeitar no futuro... Existem em seu código arquivos, diretórios e afins que usam caracteres diacríticos Fora o nome de classes, métodos, funções, objetos etc... que estão com letras acentuadas, isso nunca deve acontecer, vemos incontáveis pessoas que cometem esse erro depois ficam malucas tentando corrigir codificação, acentuações e tais. É como construir uma casa, se faz o alicerce errado, não adianta mais concerta-lo depois do telhado pronto, é derrubar tudo e reiniciar do zero. POO não tem essa de "eu vou fazer do meu jeito porque assim fica melhor", o padrão deve ser LEI INVIOLÁVEL. Classes sempre devem ter nomes iniciadas com letras maiúsculas O nome do arquivo deve ser idêntico ao nome da classe. Métodos de classe devem sempre começar com letras minúsculas e se for mais de uma palavra ficam juntas sendo a segunda começando com letra maiúscula. Expl: meuMetodo() Funções devem começar com letras maiúsculas e segue o mesmo dos métodos de classe ao usar palavras compostas. Voltando ao problema... Não sei se de fato isso vai interferir na composição do PHP, mas quando tentei aderir tive muitos problemas parecidos, e todo mundo que conheço que usou passou por problemas. Usar uma barra antes para indicar o caminho de um arquivo, como aqui: Em teoria o php irá gerar na memória o código do controle.php, por causa da barra ele irá ao topo da arquitetura, antes do index, não sei se é realmente isso Além do mais você usa uma má prática de sintaxes depurativas que não é usar propriedades de atributos entre aspas, o não uso é apenas para fins de testes de desempenho pois vai forçar muito mais a máquina porque o navegador vai ter que concertar seu erro antes de renderizar o HTML e nem sempre ele corrige corretamente uma vez que há muito código do html mau escrito, assim como tem barras na propriedade que indica o arquivo para onde deve redirecionar o navegador pode chegar a enviar uma informação incoerente ao servidor que terá que entregar a composição da arquitetura completamente bagunçada. Você pode colocar propriedades fora de aspas? Pode, mas somente se não utiliza um linguagem de servidor por trás como o PHP, é nos mesmos princípios de escrever uma string dentro de uma função em usar aspas. Algumas coisas que você pode testar: Dentro da tag <head> do html você pode usar: <base href="endereco_http_do_website" /> Assim seu html sempre será definido a partir de onde está o arquivo index ou seja a partir da raiz. Não influência diretamente no php, exceto em informações que vem do usuário, como endereço de um arquivo para formulários Para agilizar esse processo existe uma função no mesmo projeto BaseURI.php que sabe qual o endereço físico real independente do provedor, servidor ou diretórios acessados. Por isso mencionei um possível erro, é que controle.php está sendo gerado e anexo na memória antes do index.php ou seja antes que a função ou constantes existam. Similar a um problema é que se você tem 2 arquivos A & B. No arquivoA uma variável é criada, depois disso faço o inclusão do arquivoB e esse também vai reconhecer a variável pois ele está na memória depois. Por outro lado usamos o objeto XMLHttpRequest anexar o arquivoB ao A, nesse caso a variável ainda não existe para ele pois B está logo após o cabeçalho HTTP, mesmo que seja renderizado no HTML depois, o PHP o processa antes que sequer o arquivoA exista. Uma solução bem simples para essa situação é criar um arquivo coringa, esse irá carregar e definir tudo aquilo que será usado praticamente a todo momento. Esse arquivo coringa você o requisita novamente sempre quando precisar dos tais dados de uso periódico. O projeto usa um arquivo coringa como esse: https://github.com/Spell-Master/wesite_pessoal/blob/master/system/config.php Ou seja sempre que algo for anexo e os dados mais importantes gerados em config.php não existir novamente requisito ele sempre usando a função nativa do PHP require_once. Teste esses conceitos e vamos ver no que ai dar. No entanto acredito que só o uso de um arquivo coringa já deve solucionar o problema. Por fim deixo dicas de softwares bem mais eficientes, são gratuitos e o melhor não possuem propaganda nem rouba dados de sua máquina: Substituir o wampserver por: https://www.apachefriends.org/pt_br/download.html Substituir o vscode por: https://netbeans.apache.org/front/main/ Depois que passar a usar nunca mais vai querer usar outros. O netbeans mesmo a melhor IDE que existe, te ajuda muito te puxa a orelha quase sempre quando se tenta inventar moda e escrever o código errado, de fato o netbeans não te deixa escrever sintaxes de código errado.
  17. Omar~

    Significado de alguns conceitos php e sql

    @Frank K Hosaka Sugiro que crie um tópico sobre o assunto, para não desviar esse. Seu problema me parece ser da configuração do seu PHP, o que requer alguns posts até encontrar qual é o problema mesmo. Faça o download desse projeto meu que nem vou trabalhar mais nele. https://github.com/Spell-Master/wesite_pessoal Em system/config/connections.php configure um banco de dados seu aí. O banco de dados crie uma tabela e um registro qualquer. Peque qualquer arquivo dentro de modules existe até um de teste de produção _TESTE_.php Nele faça a leitura da tabela que você criou: <?php $objeto = new Select(); $objeto->query('nome_da_tabela_no_banco_de_dados'); echo "<pre>"; var_dump($objeto->result()); Se configurou corretamente o acesso em connections.php e não há problemas de configuração do seu php verá todos os registros da tabela no banco de dados que você criou. Note que em nenhum momento o arquivo da classe Select.php e nem a Connect.php foram incluídas ou requeridas elas estão em diretórios distintos, mas uma função usada no projeto o spl_autoload_register fez a mágica acontecer. Se não funcionou com meu projeto, crie um tópico a respeito do problema para que toda comunidade possa ajudar a encontrar uma solução. Frameworks podem causar anomalias ao usar recursos nativos do PHP ou até conflitar com eles, normalmente eles para funcionar desativam ou ativam aplicações do PHP alterando sua configuração padrão. Também temos o lado da versão do PHP, enfim são várias questões a serem abordadas.
  18. Omar~

    Significado de alguns conceitos php e sql

    Laravel nada mais é que um framework que usa o PHP logo a ferramenta tem suas raízes que é o PHP. Mas sim, não é PHP bruto e simples. Possui suas próprias peculiaridades para usar o PHP. Não uso e não recomendo o uso de frameworks apesar deles serem de grandiosa utilidade por agilizar conceitos básicos do desenvolvimento. Um framework te prende a ele e somente a ele impedindo e limitando o que pode ser feito apenas usando as sintaxes do simples PHP, fora que com que o utilizador aos poucos perca suas capacidades de desenvolver um software, robusto e leve. Frameworks são Úteis? Claro que sim. Frameworks são Inúteis? Claro que sim. Orientação ao objeto não é nada difícil, os tutoriais/aulas que tem por aí que enfiam isso na cabeça de quem está a aprender só para o egocentrismo de dizer: "Orientação é difícil veja como sou expert por te ensinar". Orientação ao objeto é que torna a programação em PHP muito mais fácil.
  19. Omar~

    PHP INCLUDE E INCLUDE_ONCE

    Evite fazer requisição de arquivos em métodos, sei que dependendo do cenário isso é necessário. Nosso colega apresentou um recurso viável e muito coeso. Possuir uma classe específica só para conectar. Mas vou sugerir algo diferente, ao invés de manter a conexão fixa hora que o servidor pode cair o uso do método construtor na classe pode gerar problemas nessa situação nada grave. Enfim pode optar por herança, toda classe que possuir métodos para acesso ao banco de dados é filha da classe mãe que faz a conexão. Na classe mãe você pode optar por duas alternativas: Usar um método que devolve o atributo que armazena a conexão. Usar o mesmo atributo que armazena a conexão (menos confiável). Em ambos os casos para que a classe filha possa acessar o método ou atributo deve ser protegido, não público para que não haja alguma forma de arbitrariedade da aplicação. A classe filha você estende ela para a mãe assim pode usar quaisquer atributos ou métodos criado anteriormente. Outra dica que digo; é usar constantes, assim em toda a aplicação ela é válida sendo em classes ou qualquer outro ambiente da aplicação. (Use para armazenar dados de acesso). Veja na prática com essas duas classes que utilizam PDO. Veja que na classe filha o uso do prefixo extends depois do nome da classe atual seguida da classe ao qual vai herdar valores. Queria deixar aqui uma dica bônus, para que não precise ficar usando require nos arquivos de classe, uma função que no momento que você declara um objeto ela vai fazer isso de forma mágica, toda vez que uma classe for necessária essa função automatiza o processo para que não precise ficar escrevendo require de arquivo por arquivo. Portanto basta apenas usar um require no arquivo de que guarda a função no index.php por exemplo, dependendo da arquitetura do seu projeto, você nem precisará mais requerir Obs.:
  20. Omar~

    Como identificar um nome assim: urKNPIjafGeLWsnT

    Use captcha, é para essa finalidade que isso existe. Você pode desenvolver um, não use sistemas alheios a eficácia está no código não ser conhecido para que programas não possam ser projetados para burlar. Existe um serviço da google que é "gratuito" onde você implementa somente a interface, sendo o código protegido pela empresa. Comece lendo: https://www.google.com/recaptcha/about/
  21. Omar~

    Como identificar um nome assim: urKNPIjafGeLWsnT

    @terra É realmente necessário? A primeiro ver acredito que daria para criar uma expressão de avaliação de string, tal essa verificaria incoerência no texto. No entanto uma só não funcionaria, teria que fazer uma análise nas milhares possibilidades de combinações de letras possíveis. Aí entra o contexto que assim exigiria muito processamento para algo que realmente não seja necessário. Teria que ser somente com uso de expressões regulares e não daria para criar uma lista de nomes possíveis permitidos. Quantos nomes diferentes existem nos 8 bilhões de pessoas que existem aproximadamente no mundo? Inviável criar uma listinha para isso. Tenha em mente que seria um algoritmo bem chato de criar e levaria tempo para produzir-lo com eficácia aceitável, analisar diferentes combinações de letras para determinar o que é válido ou não, além do mais existem nomes de pessoas bem "bizarros"
  22. Omar~

    pegar ref da url

    Só para complementar o tópico do colega que no geral postou algo simplificado, mas devo acrescentar em caso do leigo compreender que pode ser executado algo assim. Lembrando que no exemplo ou na condição de simplificação do aprendizado não há problemas. Armazena o valor que atribuído ref que veio no protocolo não se sabe de quem ou de onde nem mesmo se foi seu formulário que enviou. O php vai armazenar na variável $ref sem problemas escapando qualquer codec. O problema é se usar instrução como essa em uma aplicação pronta e operando: Veja e $ref entrou na string de comando sem tratamento algum, sem mencionar o perigo ao banco de dados apenas atentarei em uma quebra de código, tal finalizando o php na linha e imprimindo todo o código fonte processado pelo php, isso inclui dados de acesso em geral que a aplicação está usando no momento. Por fim, como mencionado não há problemas em usar, se for no termos de simplificar um exemplo, um teste ou para prover a curva do aprendizado, pois você sabe que é você que está enviando, e sabe o que está enviando. Nosso colega não errou em passar a var direto na string, pois o tratamento de dados requer um refino bem apurado de acordo com a situação e não cabe em um só post. Complementando meu post anterior havia me esquecido: <form method="get" action="pagina2.php"> <input type="text" name="envio" value="exemplo" /> <button type="submit">Enviar</button> </form> <-- Tag's form não utilizam a atributo "name", somente seus componentes No atributo "action" você indica para onde os dados devem ser enviados (forneça o endereço se necessário) Submetendo o formulário teremos na url pois enviamos pelo GET e não POST: endereço http atual/pagina2.php?envio=exemplo Pode ser relativo dependendo das configurações do apache ou um htaccess --> O arquivo pagina2.php recebe a mesma coisa sem o uso do formulário, pode-se até digitar na barra de navegação que vai do mesmo jeito. <a href="pagina2.php?envio=exemplo">Enviar</a> POST também pode ser enviado, de forma arbitrária, só que não convém apresentar as formas necessárias para isso.
  23. Omar~

    pegar ref da url

    Vou te mostrar a função mais últil do PHP: var_dump Com ela você testar qualquer informação existente ou não, com erros ou não Se clicado no link da tag <a> em pagina1.php: var_dump($_GET); // Tudo que existe na super global GET Se submetido o formulário var_dump($_POST); // Tudo que existe na super global POST Para que haja redirecionamento na tag <a> o atributo deve possuir na propriedade o endereço do arquivo pagina2.php Para que haja redirecionamento na tag <form> e os valores dos elementos do formulário possam está na url, basta apenas alterar o protocolo de método substituindo post por get. Apenas para manipular o endereço da barra de navegação do usuário, leia seu tópico anterior pois respondi lá com o link da API que gerencia essa ação. Obs.: Não aconselhável manipular dados no servidor usando GET, apenas use para passar informações de referência, nunca para validação de dados.
  24. Omar~

    url

    https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState
  25. Omar~

    pegar nome digitado

    Antes de mais nada, assim como o colega disse o método usado mais ideal para levar dados de uma página/arquivo a outro é usando o protocolo GET. Respondendo a questão, não importa se vai levar dados por GET ou POST, basta apenas capturar o valor do input do formulário do arquivo anterior e ao atributo value pode-se usar o comando echo do PHP para isso Usar 1 arquivo ao invés de 2 tem pros e contras Pros: Menos arquivos que na verdade uso de mais é desnecessário, além que deixa o código mais flexivel. Contras: Maior arquivo de armazenagem, requer mais memória e processamento de condicionais que monitorarão qual parte do código deve entrar em ação. Minha sugestão é que se é necessário reutilizar o valor de um input do formulário anterior que use um só mesmo, não precisa inventar moda, quanto mais simples, mais limpo, mais eficaz. Afinal de contas do que adianta levar o valor do input do primeiro formulário para o segundo se nesse segundo o usuário pode modificar, sem sentido não é? Fica a dica de um só formulário. Se for algo indispensável usar 2 ou mais formulários "o que acredito que não seja", pode-se deixar a responsabilidade de processamento com o usuário criando novos formulários através do javascript, assim poupa o servidor em criar algo desnecessário, pois o consumo do usuário será praticamente o mesmo, em criar novos form's sem redirecionar ou usando o servidor que no caso o download de todos os dados a cada processo.
×

Informação importante

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