Ir ao conteúdo
  • Cadastre-se

Dark-Programação

Membro Pleno
  • Posts

    20
  • Cadastrado em

  • Última visita

Tudo que Dark-Programação postou

  1. Estou fazendo um Deploy no heroku de um projeto pessoal desenvolvido em PHP no qual está quase concluído, porém, estou tendo esse erro com uma query do meu projeto que não está sendo executada no servidor, mas a mesma query no banco de dados do localhost ela executa normalmente, acredito que o mysql do JawsDB seja uma versão inferior da qual eu estava usando, porém, não sei como vou substituir essa query para uma versão que seja suportada e ela consiga entregar o mesmo padrão da anterior, também tentei usar o clearDB mas acontece o mesmo problema. O que eu quero fazer é o seguinte. Quero que a query consiga resgatar o valor da tabela agrupados pelo dia do mês, mesmo se não tiver gasto naquele dia, ele retorna a data e o valor 0 dessa forma que está no print. Assim eu consigo colocar no gráfico os dados mensais de gasto do usuário. Porém, no Workbench ele apresenta essa informação "WITH" não é válido nesta posição para esta versão do servidor, esperando EOF,BEGIN, CACHE, CHECKSUM, COMMIT, DEALLOCATE. Eu sinceramente não sei como substituir a query, estou iniciando no desenvolvimento web. O código mysql que desenvolvi: use `jk1zzmwwn6wtsy1v`; WITH days AS( SELECT DATE_ADD('2020-07-01',INTERVAL rnk DAY) day FROM(SELECT row_number() over() -1 rnk FROM information_schema.columns LIMIT 31)gerado) SELECT days.day, IFNULL(sum(expenses.value), 0) as amount FROM days LEFT JOIN tb_expenses as expenses ON expenses.date = days.day AND expenses.id_wallet = 0 AND expenses.status = 1 WHERE days.day BETWEEN '2020-07-01' AND '2020-07-31' GROUP BY days.day ORDER BY days.day Versão do JawsDB = 5.7.23-log (Source distribution) e está sendo compilado no linux. Versão do ClearDB = 5.5.62 (MySQL Comminity Server - GPL) e está sendo compilado no linux. Versão do meu localhost = 8.0.20 (MySQL Comminity Server - GPL)
  2. @MillenaSantos Olha pelo que eu entendi você que passar uma array vazia caso o usuário não informar nada, correto ?? Se for isso, o que você pode está fazendo é criando uma array vazia no próprio php e se caso o usuário passar algum parâmetro no checkbox você colocar os dados do chack no lugar dessa array, da seguinte forma <?php $check = array(); if(isset($_POST('check') && !empty($_POST('check')) { $check = $_POST('check'); } ?> Porém, se o erro estiver na questão de percorrer a array com o foreach porque basicamente a array vai está vazia, você pode fazer o seguinte <?php if(!empty($_POST['check']) { foreach($_POST['check'] as $key => $value) { //código... } } ?> Espero ter ajudado, qualquer coisa só responder!!
  3. Eu acabei esquecendo de colocar aqui, é que a session_start está fora da classe. Mas então mano, eu encontrei o problema é que tinha esquecido que ativei o session.cookie_secure do meu php.ini, fazendo com que ele só criasse o cookie da sessão se eu estivesse com uma conexão segura (SSL), por isso ele não estava executando. Porém, com pesquisas para encontra algo para substituir essa forma de login, encontrei o JWT (Json Web Token), que segundo alguns artigos é mais seguro usar JWT do que a session do php, já que a session fica exposta ao usuário, fazendo com que ele possa editar o cookie de sessão e entrar na área de clientes, já com jwt ele só iria conseguir se tivesse a senha usada para gerar o JWT, fazendo com que a segurança fosse mais forte nesse sentido. Mas muito obrigado pela atenção.
  4. Boa noite!! Então amigo, não entendi muito algumas linhas de seu código, como por exemplo o por que de ter um echo $nome ali no while e por que sua função não tem uma identificação para ela um nome exemplo function name(), mas o que pode está acontecendo é que a variável nome ela está contida dentro de um escopo "local" no caso na função, para você conseguir mostrar o nome do usuário, você teria que colocar uma variável $nome fora da função, porque o global $nome, faz com que você possa alterar alguma variável que esteja fora dessa função, dessa maneira. <?php $name = null; function getName() { global $nome; $name = "Dark"; } // Executando a função getName(); // Vai mostrar o nome = Dark, porém, executei ela dentro de uma função. echo $name ?> Assim, quando você coloca a variável fora da função você consegue capturar ela no HTML, porque ela não está no escopo local que seria dentro da função e sim no escopo global que seria fora da função. Não fiz o teste do seu código porque não estou no Pc, estou pelo celular agora, porém, se não resolver só avisar.
  5. Olá, estou com um grande problema que está tirando minha paciência e noites de sono kkk, estou fazendo um projeto pessoal a onde estou usando uma estrutura MVC, com rotas e executando a estrutura com o próprio apache do PHP. Na área de login do usuário, os dados do usuário é enviado para uma rota de back-end através do Ajax, a onde é feita a validação do cliente para verificar se aquela conta existe, até ai está funcionando perfeitamente não contém nem um problema. O problema é que quando eu inicio a sessão e passo os dados do usuário nessa sessão para ser resgatado na página App, onde é a página de usuários, eu simplesmente perco essa sessão, é como se não existisse ou eu não passasse nada nela, simplesmente uma array vazia, porém na pagina de login, eu consigo visualizar no ajax que a array está preenchida corretamente, também tentei usar sem ajax, mas acontece a mesma coisa e eu não sei o que está acontecendo. Lembrando que quando o usuário é autenticado eu envio ele para a página de usuários através do JavaScript usando o location.href = '/app'. Código jQuery que faz a validação de dados que o usuário enviou para efetuar o login. function invalidRegister() { $('.loadingArea').hide(); $('.sectionLoginOneInfo p').show(); $('.sectionLoginOneForm').addClass('formInvalid'); setTimeout(() => { $('.sectionLoginOneForm').removeClass('formInvalid'); }, 1000); } $('.sectionLoginOneForm form').on('submit', function(e) { e.preventDefault(); $('.loadingArea').show() const form = $(this).serializeArray(); const email = form[0]; const password = form[1]; // Validar email const valid = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/); let validate = true; if(email.value == '' || !valid.test(email.value)) { invalidRegister(); $('.sectionLoginOneInfo p').html('Ops… Usuário invalido!'); validate = false; } if(password.value == '' || password.value.length < 8) { invalidRegister(); $('.sectionLoginOneInfo p').html('Ops… Usuário invalido!'); validate = false; } if(validate) { $.ajax({ type: 'post', url: '/authenticateUser', data: form, dataType: 'json', success: d => { if(d.messege == 'success') { // Envia o usuário para a página de usuários location.href='/app'; } else { invalidRegister(); $('.sectionLoginOneInfo p').html(d.messege); } }, error: erro => { invalidRegister(); $('.sectionLoginOneInfo p').html('Algum erro inesperado aconteceu, tente novamente mais tarde.'); } }) } }) Função que faz a verificação de autenticidade do cliente, para verificar se a conta existe no banco de dados. Os posts estão sendo enviados pelo Ajax. /** * Função para autenticar a entrada do usuário no sistema * @access public */ public function authenticateUser() { $info = array(); $email = $_POST['email']; $password = $_POST['password']; // Criando conexão com o banco de dados e se comunicando com o modal. $user = Container::getModel('User'); $user->__set('user_email', $email); $user->__set('user_password', $password); /** * Verifica se o usuário existe. * Verifica se o email do usuário existe no banco de dados, para depois veficar * a senha do usuário. Se estiver valido, iniciamos a sessão. * @name $date */ $date = $user->getUserEmail(); if(count($date) > 0) { if($this->checkArgon2id($password, $date[0]['user_password'])) { if($date[0]['user_confirmed'] == 1) { $_SESSION['authenticate'] = md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']); $_SESSION['id'] = $date[0]['id']; $_SESSION['name'] = $date[0]['user_name']; $_SESSION['surname'] = $date[0]['user_surname']; $_SESSION['user_email'] = $date[0]['user_email']; $_SESSION['user_gender'] = $date[0]['user_gender']; // Informando ao ajax que o login foi efetuado com sucesso $info['messege'] = 'success'; } else { // Informando ao ajax que o usuário falta confirmar seu acesso $info['messege'] = 'Você não confirmou o seu cadastro, por favor, verifique seu e-mail.'; } } } else { // Informando o usuário não foi encontrado $info['messege'] = 'Ops… Usuário invalido!'; } // Envia as informações da info para o Ajax, através do json print_r(json_encode($info, JSON_UNESCAPED_UNICODE)); } Caso a pergunta não ficou claro, só informar, estou precisando muito da ajuda de alguém, desde já agradeço muito.
  6. Muito obrigado cara, vou dar uma estudada nessa teoria, a função que você fez deu certo, mas a complexidade dele está muito alta, demorando em alguns caso de teste mais de 1 segundo kkkkk, mas deu para ter uma noção de como fazer, pena que estouro o tempo de execução kk, mas acho que consigo diminuir a complexidade da uma otimizada nele, sem estresse kk, mas então amigo, muitoooo obrigado, me ajudou muito, vou lhe adicionar no discord para a gente troca uma ideia e falar mais sobre programação, abraços e muito obrigado!!
  7. valeu amigo, muitoooo obrigado mesmo, sem estresse, eu encontrei algo sobre programação dinâmica e estou entendo mais, se conseguiu teria como me explicar a teoria que usou e se existe algum matemático que já tenha feito esse problema para eu pesquisar mais e saber como ele fez ??
  8. Oii Brund, estou sim amigo eu tentei fazer mas simplesmente deu erro, eu estou tentando resolver uma questão da obi de 2006 do nível 2, 2° fase, a colheita de caju, também tem ela no uri https://www.urionlinejudge.com.br/judge/en/problems/view/2305 , mas a ideia que eu tive fazendo umas somas que nem sei se está certo, funcionou para os 3 exemplos do uri, mas o debug já não funcionou da a resposta errada, já tentei de tudo e não conseguir e sobre essa forma que pensei da matriz eu não consigo ter uma ideia de como eu vou implementar ela, eu pensei em recursão mas não dá certo porque eu não sei qual a área que o usuário vai querer para calcular, ou seja, não sei onde iria parar a recursão, pensei em programação dinâmica mas não achei nem um conteúdo que desse uma luz sobre esse assunto, vou deixa o código que eu tentei aí em baixo caso queira dá uma olhada, muito obrigadoo!! Lembrando que não sei se está correto, acredito que está totalmente errado pois não conseguir resolver os exemplos do debug que esse exercício possui e já estou sem ideia kkk L, C, M, N = input().split() l = int(L) c = int(C) m = int(M) n = int(N) matriz = [0] * l acumulado = [0] * l max_ponto = 0 for i in range(l): entrada = list(map(int, input().split())) matriz[i] = list(entrada) acumulado[i] = list(entrada) a = matriz b = acumulado for i in range(len(b)): if i<l: b[i][0] = 0 for j in range(len(b[i])): if j < n: b[i][0] += a[i][j] for j in range(len(b[i])): if 0 < j < (c-n+1): b[i][j] = b[i][j-1] + a[i][j+n-1] - a[i][j-1] for j in range(len(a)): if j < (c-n+1): a[0][j] = 0 for i in range(len(a[j])): if i < m: a[0][j] += b[i][j] for i in range(len(a[j])): if 0 < i < (l-m+1): a[i][j] = a[i-1][j] + b[i+m-1][j] - b[i-1][j] for i in range(len(a)): if i < l-m+1: for j in range(len(a[i])): if j < (c-n+1): if a[i][j] > max_ponto: max_ponto = a[i][j] print(max_ponto)
  9. Nessa matriz que colocou ele só poderia pegar 1xn com n<=5 se ele escolhesse um exemplo 1x2 ele iria pegar as seguintes áreas [1,2]=3, [2,1]=3, [1,1]=2, [1,1]=2, não é necessário mostrar os índices apenas os resultados possíveis. Para fixar melhor, vamos supor que temos a seguinte matriz [1, 2, 3, 4, 5] e ele quer uma área de 1x2 então devemos calcular [1,2] = 3, [2,3] = 5, [3,4] = 7 e [4,5] = 9, mesmo exemplo se sobrepõe para matrizes de NxM com área de LxC, caso ainda tiver dúvida só falar!!
  10. Não amigo ele vai pegar o seguinte matriz = [ [1, 1, 1, 3, 1], # Ele soma (1 +1 (linha 1) + 1 + 2 (linha 2)), depois 1 + 1 + 2 + 1, depois 1 + 3 + 1 + 1, depois 3 + 1 + 1 +1 [1, 2, 1, 1, 1], # Ele soma (1 + 2 (linha 2) + 1 + 1(linha 3)), depois 2 + 1 + 1 + 1, depois 1 + 1 + 1 + 2, depois 1 + 1 + 2 + 1 [1, 1, 1, 2, 1], # Ele soma (1 + 1 (linha 3) + 1 + 1 (linha 4)), depois 1 + 1 + 1 + 2, depois 1 + 2 + 2 + 1, depois 2 + 1 + 1 + 1 [1, 1, 2, 1, 1], # 2, 3 [1, 3, 1, 1, 3] # 4, 2 ] e assim por diante, caso ainda não ficou claro só avisar que tento explicar novamente! Acho que dar para fazer por programação dinâmica mais não tenho mínima ideia de como faria, não encontrei na internet conteúdo que explicasse isso.
  11. Cara poderia ver se essa conversão estaria correta ? Pois a resposta algumas bate e outras não. #include <iostream> using namespace std; int main() { int l, c, m, n, i, j, k; int a[1000][1000], b[1000][1000]; cin >> l >> c >> m >> n; for (i = 0; i < l; i++) for (j = 0; j < c; j++) cin >> a[i][j]; for (i = 0; i < l; i++) { b[i][0] = 0; for (j = 0; j < n; j++) b[i][0] += a[i][j]; for (j = 1; j < c-n+1; j++) b[i][j] = b[i][j-1] + a[i][j+n-1] - a[i][j-1]; } for (j = 0; j < c-n+1; j++) { a[0][j] = 0; for (i = 0; i < m; i++) a[0][j] += b[i][j]; for (i = 1; i < l-m+1; i++) a[i][j] = a[i-1][j] + b[i+m-1][j] - b[i-1][j]; } int max = 0; for (i = 0; i < l-m+1; i++) for (j = 0; j < c-n+1; j++) if ( a[i][j] > max ) max = a[i][j]; cout << max; return 0; } L, C, M, N = input().split() l = int(L) c = int(C) m = int(M) n = int(N) matriz = [0] * l acumulado = [0] * l max_ponto = 0 for i in range(l): entrada = list(map(int, input().split())) matriz[i] = list(entrada) acumulado[i] = list(entrada) a = matriz b = acumulado for i in range(len(b)): if i<l: b[i][0] = 0 for j in range(len(b[i])): if j < n: b[i][0] += a[i][j] for j in range(len(b[i])): if 0 < j < (c-n+1): b[i][j] = b[i][j-1] + a[i][j+n-1] - a[i][j-1] for j in range(len(a)): if j < (c-n+1): a[0][j] = 0 for i in range(len(a[j])): if i < m: a[0][j] += b[i][j] for i in range(len(a[j])): if 0 < i < (l-m+1): a[i][j] = a[i-1][j] + b[i+m-1][j] - b[i-1][j] for i in range(len(a)): if i < l-m+1: for j in range(len(a[i])): if j < (c-n+1): if a[i][j] > max_ponto: max_ponto = a[i][j] print(max_ponto)
  12. Esse a e b são duas matrizes ? adicionado 34 minutos depois Muito obrigado !! Eu conseguir fazer, não precisei traduzir, conseguir seguir uma linha de raciocínio parecida e fiz, o que tinha me quebrado era como eu ia analisar as áreas que podia ser MxN mas eu conseguir, valeu mesmo
  13. Gostaria que alguém de enorme coração fizesse uma 'conversão/tradução' desse algoritmo que está em c++ para python, da questão https://www.urionlinejudge.com.br/judge/en/problems/view/2305 ficaria muitoooooooooooo super grato se alguém conseguir, vai fazer uma pessoa muito feliz kk. #include <iostream> using namespace std; int main() { int l, c, m, n, i, j, k; int a[1000][1000], b[1000][1000]; cin >> l >> c >> m >> n; for (i = 0; i < l; i++) for (j = 0; j < c; j++) cin >> a[i][j]; for (i = 0; i < l; i++) { b[i][0] = 0; for (j = 0; j < n; j++) b[i][0] += a[i][j]; for (j = 1; j < c-n+1; j++) b[i][j] = b[i][j-1] + a[i][j+n-1] - a[i][j-1]; } for (j = 0; j < c-n+1; j++) { a[0][j] = 0; for (i = 0; i < m; i++) a[0][j] += b[i][j]; for (i = 1; i < l-m+1; i++) a[i][j] = a[i-1][j] + b[i+m-1][j] - b[i-1][j]; } int max = 0; for (i = 0; i < l-m+1; i++) for (j = 0; j < c-n+1; j++) if ( a[i][j] > max ) max = a[i][j]; cout << max; return 0; } Muito obrigado!!!
  14. Então, estou com um problema de programação que é basicamente esse problema ai de baixo. Ficaria muito grato se alguém pode-se me dar uma luz kk. Preciso através da entrada do usuário retornar a soma de todas as áreas que o usuário determinou que a matriz contém, por exemplo: tenho uma matriz (determinada também pelo usuário) de 5x5 (5 linhas e 5 colunas) e ele hipoteticamente quer que eu retorne a soma de todas as 2x2 (2 linha e 2 coluna) que a matriz 5x5 contém, ou seja, ele quer todas as somas possíveis da área de tamanho 2x2 que a matriz possui. Exemplo mais palpável: possuo essa matriz em baixo matriz = [[1, 1, 1, 3, 1], [1, 2, 1, 1, 1], [1, 1, 1, 2, 1], [1, 1, 2, 1, 1], [1, 3, 1, 1, 3]] O usuário quer que eu retorne todas as somas possíveis de uma área 2x2 contida na matriz 5x5, ou seja, soma = ([1, 1], [1, 2]) = 5, ([1,1], [2,1]) = 5, ([1,3], [1,1]) = 6 e assim por diante... Se não ficou muito claro peço desculpas e deixa um comentário que eu tento editar ou explicar com outras palavras. Muito obrigado!!
  15. Ajudou sim amigo, mas ainda minha ideia está muito abstrata para a resolução do exercício, eu tenho uma lista do mapa do tabuleiro em formato de matriz, que fica as devidas localizações de cada navio no seguinte formato: [['.', '#', '.', '.', '.', '.', '#'], ['#', '#', '#', '.', '.', '#', '#'], ['.', '#', '.', '.', '.', '.', '#'], ['.', '.', '.', '.', '#', '.', '#'], ['.', '#', '.', '.', '#', '.', '#'], ['.', '#', '#', '#', '#', '.', '#'], ['.', '.', '.', '.', '.', '.', '.', ' ']] Da seguinte entrada : 7 7 .#....# ###..## .#....# ....#.# .#..#.# .####.# ....... Onde as # são navios e os . são as águas, então eu pensei no seguinte fato. Torna as partes dos navios adjacentes em um ÚNICO int cada navio, adicionaria esse int em uma lista e quando eu fosse dando as coordenadas de onde explodiria a bomba eu ia transformando esses int em variável 'X', assim no final quando eu desse todas as coordenadas ele percorre toda a lista do mapa e o número inteiro que não estiver lá é porque ele afundou o navio, logo no final só precisaria fazer a contagem da lista de números inteiros que não está contido no mapa, entende ?? mas ainda está muito abstrata e nem sei se isso é o correto. adicionado 5 minutos depois Também pensei em vez de adicionar nos navios um int, poderia adicionar diretamente o X e manda ele verificar se aos redores de 1 quadrado, direita, esquerda, cima, baixo se estaria com #, caso tivesse eu não contava como navio afundado, mas caso não tivesse eu seguia adiante e analisava o X vizinho a ele, para saber se contem # se eu achasse somente X e PONTO ai eu contava como navio afundado, pois só não é afundado se conter alguma # adjacente, logo se só contém X e PONTO é porque ele foi afundado. Já estou ficando meio maluco nessa questão.
  16. Boa tarde !! Estou com um ***** problema, tenho que fazer um algoritmo para batalha naval e gostaria de saber como poderia implementar flood fill em Python, para que eu possa identificar os blocos vizinhos e ver se existem partes de navio adjacentes e transformar em um só navio para posteriormente contar quantos navios foram afundados a partir das coordenadas dadas pelo usuário. Lembrando que estou fazendo a matriz por lista
  17. Caramba cara, parabéns mano!! Sobre freelancer dar para tirar um dinheiro legal no mês ou semana com dev web ? Se fosse dar uma dica para quem quer começar no mundo de desenvolvimento web e mobile só por diversão e para levantar uma grana, já que só universidade não dar dinheiro a curto prazo... E como estou precisando levantar um dinheiro, vir a web como válvula de escape já que existe uma demanda enorme para o desenvolvimento web, claro que não vai ser do dia pra noite até vou aprender web kkkk mas ao pouco estou aprendendo e gostando bastante!!
  18. Ok!! Muito obrigado amigo, me ajudou muitooo, vou finalizar então o curso de PHP, que já vem com um pacote para o frontend "não muito completo" pois acho as aulas de JS desse curso bem básico, mas já estou fazendo uns planejamento para quando terminar PHP dar uma aprofundada melhor no frontend. Por enquanto html5 e css3 junto com um pouco de JavaScript já me ajuda bastante no front para web e como o curso é php do básico ao super avançado (no caso profissional) dar para ter um ótimo backend. valeu mano, agradeço pela ajuda, você já trabalha como desenvolvedor web ? Se sim, a quanto tempo ?
  19. Então seria mais usual aprender HTML, CSS, banco de dados, git e começar Django ? Infelizmente não conheço bons curso de Django completo que seja barato e não conheço nem um naqueles sites Torrents, se é que me entende... felizmente é muita tecnologia e infelizmente a pessoa acaba se perdendo, eu fiquei de aprender Django para usar em interface, mas como eu tive um professor péssimo em introdução a programação que ensinou tkinter em vez de Django para interface, acabou que fiquei meio perdido, mas sei a lógica de programação bem e sei usar bem o python, só preciso começar a focar nas bibliotecas dele, mas então... Voltando a o que importa, eu finalizo HTML, CSS, banco de dados, git e parto para Django ou concluo PHP ? Eu sério mesmo estou começando a ficar meio perdido kkk mas estou gostando muito de desenvolvimento web!!
  20. Olá pessoa !! Atualmente curso sistema de informação estou no 2° período e a linguagem padrão da universidade é python, tenho um certo domínio em python, mas atualmente queria começar a estudar desenvolvimento web, mas especificamente ser Full Stack (o mais rápido possível) pois necessito começar a fazer freelancer pois nem só de estudo vive o homem kk, mas estou com uma grande dúvida, eu estou fazendo um curso online de PHP, mas inicialmente estou aprendendo html5 e css3, no curso também aprenderei JavaScript do "básico" ao "avançado", está em aspas porque pelo que eu vir é meio superficial comparado a cursos focado em JS, aprenderei também git, Banco de Dados, bootstrep v3 e v4, Jquery, AngularJS, NodeJS. O nodeJS e o angular é bem superficialmente, mas PHP aprendo bem aprofundado, aí é que gera minha dúvida, conversando com amigos e olhando alguns vídeos, percebi que misturar duas linguagens é bem complicado e quero posteriormente migrar para desenvolvimento mobile também, aí recomendaram eu aprender JavaScript e usar apenas JavaScript para front e back e posteriormente aprender React, ficaria mais fácil já que se usa apenas JavaScript. Então minha dúvida é o seguinte, continuo PHP e aprendo totalmente aprofundado com um pouco de JavaScript e depois aprofundo mais em JavaScript ou largo PHP e foco em JavaScript depois futuramente aprendo PHP aprofundado ?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...