Ir ao conteúdo
  • Cadastre-se

DiF

Moderador
  • Posts

    14.093
  • Cadastrado em

  • Última visita

Tudo que DiF postou

  1. @Lipeco Você não inicou a sessão. Você deve colocar session_start() no topo do seu arquivo php, acima de tudo, logo abaixo da abertura da tag do php. Eu sempre uso este modelo aqui para autenticar a sessão: <?php session_start(); setcookie("ck_authorized", "true", 0, "/"); date_default_timezone_set("Brazil/East"); if(!isset($_SESSION["login"])): header("location: ../index.html"); else //atribui na varíável de sessão o login do usuário, aqui pode ser um username ou email $login = $_SESSION["login"]; //atribui na variavel de sessão o ultimo acesso do usuário $ultimo = $_SESSION['ultimoacesso']; //atribui na variável de sessão o código id do usuário $idUsuario = $_SESSION["codusuario"]; //atribui na variável de sessão o nome do usuário $nome = $_SESSION["nome"]; require '../../conexao/conexao.php'; require '../../includes/functions.php'; //aqui gera a data e hora atual $data = date('Y-m-d H:i:s'); // faz um update na tabela de ultimo acesso, para registro de usuário $sqldata = "UPDATE admin SET ultimoacesso= '$data' WHERE idUsuario ='$idUsuario'"; $dados = mysql_query($sqldata); //aqui faz um slit na data para mostrar ao usuário $separaData = explode(" ", $ultimo); $dataNova = $separaData[0]; $hora = $separaData[1]; endif; ?> Esse trecho sempre deve ser colocado em cada página php onde o usuário vai logar, no caso por exemplo a página depois que ele loga. Basicamente ele testa, se não houver sessão, ele redireciona direto pra página de login, se não, ele atribui em cada variável os dados da sessão... com isso você tem controle, e pode fazer várias coisas.. como no exemplo ali, eu tenho como gravar o ultimo acesso do usuário, o código iD dele, o nome do usuário, username de login.. e etc..
  2. DiF

    C Programa com matriz 5x5 em C

    @IgorS10 Caro usuário, Seja bem-vindo ao Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
  3. Caro usuário, Seja bem-vindo ao Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
  4. @Eduardo Rafael Não é possível fazer isso com uma página html. Você naturalmente vai precisar usar uma linguagem de programação server-side como o PHP. Somente assim. Recomendo usar o PHP e um banco de dados, principalmente se é um site de vendas.
  5. @César Briop Geralmente quando coloca um novo HD ou SSD em um computador/notebook, ao entrar no windows, ele automaticamente já reconhece como uma nova unidade. Ele mesmo atribui uma letra pra unidade, de praxe, EU sempre formato a nova unidade, antes de instalar alguma coisa ou jogar arquivos pra dentro dele. Mas eventualmente, PODE ocorrer, onde o novo HD ou SSD não ser reconhecido como unidade, mas pelo gerenciador é possível ver que tem espaço não alocado. Nesse caso, basta selecionar a unidade com espaço não alocado e atribuir uma letra, daí ele vai ser reconhecido. Mas esse procedimento só deve ser feito SE e SOMENTE SE a unidade não for reconhecida. Certifique-se de queo windows que você está usando no caso a unidade " C ", seja o SSD. Sendo assim, só remove do seu notebook o disco rígido, e coloque o novo SSD.
  6. @César Briop Então, presumo eu, que seu windows 11 está instalado no SSD que veio de fábrica certo? Basta remover HD normal e substituir pelo novo SSD. Você não precisa instalar o sistema novamente. No caso o próprio windows já vai reconhecer o SSD como uma nova unidade. Por garantia, depois que instalar o SSD novo(vazio) entra na BIOS e verifica se ele está sendo reconhecido... PS: Caso o windows não reconheça a unidade, entra no gerenciador de discos, e veja se está ali, se tiver, mas não está sendo reconhecido, basta atribuir uma letra pra unidade que ele volta ser a reconhecido.
  7. @César Briop Deixa eu ver se entendi o problema. Você tem um notebook com um HD normal com o windows 11 instalado, mas vai comprar um SSD novo. Certo? Pelo que me lembro se você colocar o novo SSD e instalar o windows 10 nele, enquanto outro que já tem o sistema instalado, vai ocasionar um dual boot, onde vai ter uma lista pra escolher qual windows quer acessar. Para evitar isso, Retira primeiro o HD com esse windows 11. Instala o SSD, instala o windows 10 no SSD. Dessa forma você vai ficar com o sistema windows 10 como padrão no SSD. Desliga o notebook, pluga o HD normal com o windows 11, e depois entra no seu windows 10. Acessa o HD com o windows 11, salva o que tiver que salvar para o seu SSD e formata o HD com o windows 11. Corrijam-me se eu estiver enganado rsrs faz muito tempo que não lido com esse tipo de coisa.
  8. @Lipeco Isso por que você passou de forma errada o parâmetro no link do botão de avaliar e também na outra página de avaliação, você fez uma consulta na tabela de forma geral e não baseada no id do usuário. Altere esta linha no arquivo que lista os usuários para avaliar: <td><a href="avaliar_colaborador.php?id_colaboradores=$_GET['id_colaboradores']" type="submit" para: <td><a href="avaliar_colaborador.php?id_colaboradores=<?php echo $id_colaboradores; ?>" type="submit" Isso por que a tabela está fora do php, então você precisa abrir e fechar as tags do php dentro do link e colocar o echo na frente da variável com o valor ID para passar como GET na URL. Na página de avaliação, você precisa resgatar o valor ID passado pela URL desta forma: <?php //recebe o valor id vindo da URL $ID = $_GET["id_colaboradores"]; //consultar no banco de dados $result_usuario = "SELECT * FROM colaboradores WHERE ID = $ID"; $resultado_usuario = mysqli_query($mysqli, $result_usuario); Assumindo que o nome do campo de chave primária da tabela de é ID Dessa forma, você pega os dados específicos do usuário em questão que está avaliando
  9. @vitxr A única forma de fazer isso é implementar o ajax. Recomendo fazer isso com o jQuery, pois é muito mais prático e tem funções especificas para isso.. por exemplo a função $.ajax() Onde nessa função, você insere parâmetros como, url, tipo de arquivo enviado e etc... além disso tem duas funções que podem ser encadeadas com ele que é .done() e .fail() onde cada uma respectivamente funciona para mostrar no modal quando tiver sucesso ou mostrar um erro quando falhar. Exemplo: No HTML, você insere dinamicamente com o php o valor ID do usuário no atributo "data" no elemento de link ou no elemento que você use como "botão" Nesse exemplo usei um link... mas pode ser qualquer outro. <ul> <li>Fulano <a href="#" class="btn" data-id="1"><span> Visualizar</span></a> </li> <li>Beltrano <a href="#" class="btn" data-id="2"><span> Visualizar</span></a> </li> <li>Ciclano <a href="#" class="btn" data-id="3"><span> Visualizar</span></a> </li> </ul> let btn = $("#btn_visualizar"); btn.on("click", function(){ let id = $(this).attr("data-id"); $.ajax({ url: "visualizar.php", method: "GET", dataType: "HTML", data: {id: id} }).done(function(retorno){ $("#modal").html(retorno); }).fail(function(retorno){ $("#modal").html(retorno); }); }); Basicamente, ao clicar no botão visualizar, que está atribuido ao elemento de link <a>, ele vai pegar o valot do "data-id" e então vai passar via GET, para o arquivo visualizar.php. Lá você vai fazer toda a query para pegar os dados na tabela do banco de dados.. baseado no valor ID do usuário.. e então inserir no seu modal. No arquivo visualizar.php, você monta o jeito de como vai ser mostrado dentro do modal.
  10. @Lipeco Não esqueça que para funcionar o jeito que você quer avaliar, pelo seu código, você deve passar o valor ID do usuário via URL em get. Então o trecho deve ser algo assim: <?php while($row_usuario = mysqli_fetch_assoc($resultado)){ $id = $row_usuario["ID"]; ?> <tr> <th><?php echo $row_usuario['nome']; ?></th> <td><?php echo $row_usuario['sobrenome']; ?></td> <td><button onclick="window.location.href = 'avaliacao.php?id=<?php echo $id; ?>'" type="button" class="btn btn-success m-2">AVALIAR</button></td> </tr> <?php E então no seu arquivo avaliacao.php, receber este ID com $id = $_GET["ID"];
  11. @Lipeco Sempre crie uma tabela separada, que faça relacionamento de 1:N com a tabela mandante. Isso garante a integridade e ainda colocar pelo menos na 1 NF(normas formais) de banco de dados. Basicamente, na sua tabela de avaliação crie um índice(index) para o campo ID_usuario que servirá de chave estrangeira. Daí na aba de designer(desenhador se for em português) no phpmyadmin, faça o relacionamento de 1:N entre a tabela usuario e avaliacao. Onde na tabela usuario o campo ID, se ligará com o campo ID_usuario na tabela de avaliação. Exemplo: Repare na imagem, Clicando no nome do banco de dados (primeira seta vermelha da esquerda), vai habilitar a aba "Desenhador" Clicando nele, vai abrir essa tela com as tabelas. Você vai clicar no oitavo ícone de cima para baixo, do menu que esta na vertical ali do lado esquedo, é um icone de "ligamento". Depois de clicar nele, você vai clicar no campo ID da sua tabela mandante(usuário) e em seguida, no campo ID_usuario na sua tabela de avaliação. Se você tiver criado o índice, você terá feito o relacionamento corretamente, se aparecer uma janela perguntando duas ou mais opções, escolha a opção que permita deletar um registro, somente se na outra tabela não houver registro. isso garantirá que você delete por engano um usuário, caso ele tenha uma avaliação, sem antes, deletar primeiro a avaliação. Feito o relacionamento corretamente, você poderá inserir na tabela de avaliação o valor ID desse usuário, a nota e a mensagem para ele. Quando ele for logar, no perfil dele, você pode fazer uma query na tabela de avaliação pegando a nota dele e a mensagem e mostrar na tela para ele ler.
  12. @Lipeco Basicamente é como o colega disse. Evite de guardar imagens no banco de dados, pois só vai consumir espaço e banda pra fazer a query. Faça o upload da imagem para um diretório no servidor, e no banco de dado guarde a referência com o nome dela... daí na query, você puxa o nome da imagem, e monta o caminho no php... por exemplo Vamos supor que guardou a imagem assim: ID nome fotoPerfil 1 Fulano foto.png E no servidor você guardou a imagem no diretório "img". Você faria assim: <?php $id = $_SESSION["usuario_ID"]; $query = mysqli_query($conexao, "SELECT fotoPerfil FROM usuario WHERE id = $id"); $dados = mysqli_fetch_object($query); $fotoPerfil = "img/" . $dados->fotoPerfil; ?> <img class="rounded-circle" src="<?php echo $fotoPerfil ?>" alt="" style="width: 40px; height: 40px;">
  13. @Gabriel Meira22 Nunca use programas piratas, isso vai colocar seu computador em risco. Existe um programa muito similar ao Office, chamado FreeOffice. Ele é exatamente igual ao office, possui word, powerpoint, excel... e é completamente gratuito. Eu uso ele e gosto bastante. Basicamente, baixe ele, e peça a chave de ativação no seu e-mail, é completamente gratuito e supre tudo que o word faz.
  14. @Lipeco Sim, você pode fazer isso. No php quando você recebe um dado, você faz uma verificação no banco de dados com a clausula OR. Mas nesse caso, é interessante que você transforme o email e o numero de matricula em chaves primárias, formando uma chave primária compostas ou transformar pelo menos o numero de matricula em uma Chave candidata. No php, você pode usar a estrutura de switch case... onde você testa o tipo de dado vindo do formulário... se for um email, você faz um select baseado no email, se for um número, faz o select baseado no numero. Por exemplo: <?php $dados = "[email protected]"; switch ($dados) { case is_numeric($dados): echo "é um número"; break; case filter_var($dados, FILTER_VALIDATE_EMAIL): echo "É um e-mail"; break; default: echo "O valor é inválido"; } A estrutura ali em cima faz esse teste. No caso, ele diria que é um e-mail. no lugar do echo, você faria a estrutura do seu select... algo do tipo: <?php $dados = $_POST["login"]; $senha = $_POST["senha"]; switch ($dados) { case is_numeric($dados): $query = mysqli_query($conexao, "SELECT matricula, senha FROM cadastro WHERE matricula = $dados AND senha = $senha"); // todo o resto da estrutura de login break; case filter_var($dados, FILTER_VALIDATE_EMAIL): $query = mysqli_query($conexao, "SELECT email, senha FROM cadastro WHERE matricula = $dados AND senha = $senha"); //todo o resto da estrutura de login break; default: echo "O valor é inválido"; } Basicamente é isso. Bem simples.
  15. Caro usuário, Seja bem-vindo ao Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
  16. Senhores, só levem em conta, que se forem comprar da "China" como falaram, tenham em mente que são placas usadas em mineração de criptomoedas. O preço é atrativo, mas ela foi usada por esse propósito.. então pensem bem antes de comprar qualquer placa "barata" de lá.
  17. Warhammer: vermintide 2 está de graça na steam. Adicione na sua biblioteca permanentemente. Resgate até dia 11 de novembro. https://store.steampowered.com/app/552500/Warhammer_Vermintide_2/ DLC gratuita - https://store.steampowered.com/app/1601550/Warhammer_Vermintide_2__Chaos_Wastes/ Dia 8 de novembro, será lançada mais uma DLC gratuita chamada de Trail of Treachery.
  18. Caros usuários, este é o tópico mensal que deverá ser usado para discutir promoções de jogos, o que inclui descontos e produtos gratuitos por tempo limitado, em todas as plataformas e distribuidoras. De forma a garantir a organização, por favor mantenham o foco nas promoções, sendo as dúvidas paralelas direcionadas para tópicos próprios. Este tópico será trancado no dia 30/11/2022, sendo criado e destacado novo tópico para o próximo mês. Tópico do mês anterior:
  19. Atrapalha não. Se você ver cuidadosamente, há passagens de ar na lateral no painel frontal. é exatamente o mesmo que o meu gabinete, é só alguns centimetros, mas o ar passa muito bem por ali. no meu gabinete ainda possuo apenas 1 fan na frente e as temperaturas aqui estão todas normalizadas, inclusive, tenho 1 na frente e um atras apenas, e mesmo assim não tenho problemas de temperaturas. Aqui na minha região quando fica verão, é extremamente quente, meu gabinete anterior, a lataria de tras chegava a ficar quente com o processador, com esse novo gabinete não, porque o fluxo de ar foi projetado melhor. Bom, eu sugiro não ficar mexendo nas coisas que os especialistas projetaram né... rsrs se eles fizeram dessa forma, certamente passou por testes, senão nem colocavam no mercado. Mas a escolha é sua. Na minha opinião o ideal é priorizar o fluxo negativo, ou seja, adicionar mais exaustores do que injetores.. por exemplo 1 fan atras, e dois em cima.. Lembrando que é apenas a minha opinião, retirar o ar quente é mais eficiente do que jogar ar frio pra dentro.
  20. @lndr Todo gabinete é projetado para ter um fluxo de ar. Se remover a tampa frontal, ou a lateral, vai prejudicar a circulação de ar, impedindo de ela fluir como foi projetada. Meu gabinete é similar, só não possui uma tampa de vidro na frente, é de plástico, mas é similar, onde só tem uma abertura nas laterais para puxar o ar pro fan jogar para dentro. é pela fresta entre a tampa de vidro na frente que o ar passa. Concordo com o colega, melhor deixar a tampa.
  21. Caro usuário, Seja bem-vindo ao Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
  22. @tiagopraz Acredito que você não precisa do form, para enviar dados pelo ajax. Basta pegar o valor dos campos, e enviar... mas de fato é bem mais fácil se você adicionar a tag form no modal que tem os campos.. Por exemplo, sem form: let btn = $("#btn_enviar"); btn.on("click", function({ let tipo = $("#type").text(); let empregado = $("#employee").text(); let msg = $("#message").text(); $.ajax({ url: "envia.php", method: "POST", dataType: "HTML", data: {tipo: tipo, employee: empregado, menssage: message} }).done(function(retorno){ //aqui você coloca mensagem de envio }).fail(function(retorno){ //aqui você coloca mensagem de erro }); Mas se você adicionar o form no seu modal, você faz inserir os dados em um input, sem bordas.. parecendo que está ali sem ser em um input... dai você pega com ".val() " os dados... E se tiver um form.. fica mais simples porque você só precisa pegar o valor total do form e colocar em uma variavel com serialize... dessa forma: <form> <span id="type"><input type="text" name="tipo" value="" /></span> <span id="message"><input type="text" name="message" value="" /></span> <span id="time"><input type="text" name="time" value="" /></span> <span id="jobposition" style="display:none"><input type="text" name="employee" value="" /></span> <span id="company" style="display:none"></span> </form> let dados = $("form").serialize(); usando o serialize.. iria gerar a seguinte url: tipo=valor&message=valor&time=valor&employee=valor ai é só separar no php... e montar seu envio para o email.
  23. @bela1000 Por gentileza, poste seu código. Apenas com esse fragmento não tem muito o que falar. Mas basicamente, se está recebendo o erro de notice:Undefined variable, definitivamente a variável esperada está sem valor algum. Pelo que você postou ali na linha, você tem essa tag em HTML e o php inserida nela.. nesse caso você precisa colocar o echo e as tags de abertura e fechamendo do php. exemplo: <a href="prog.php?codigo=<?php echo $row['Codigo']; ?>"> Dessa forma, vai ser passado pela URL o valor que da variável. Na página onde você resgata deve estar com: $id = $_GET["codigo"];
  24. @Pedrockz verifique se o arquivo descrito existe. Caso exista, verifique de deu as devidas permissões de leitura. No linux, é normal que se não definir as permissões o arquivo é considerado inexistente, pois ele não consegue acessar o diretório.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!