Ir ao conteúdo

DiF

Moderador
  • Posts

    14.206
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de DiF em PC com Core i3 2120 irá suportar trabalhar com programação front end? foi marcado como solução   
    @programador novato Sim, vai poder programar sem problemas algum... Naturalmente, usar programas mais pesados como o vscode ou netbeans pode acarretar em alguma travada.... mas existem alternativas mais leves como o Eclipse for PHP por exemplo,  Notepad++ é outra IDE boa e leve. 
     
    Nada impede de você programar.  Eu mesmo, muito usei um notebook antigo com Intel Core 2 Duo T6400, 4GB (2x 2GB) 800MHz DDR2 e um HD comum 250GB 5400rpm SATA 👍
     
     
    Depende do programador...  Eu por exemplo não tenho costume de abrir trocentas abas.. só abro as que eu realmente necessito.  Geralmente uma aba com alguma api na qual estou estudando, uma aba pra youtube, caso precise pesquisar algo sobre a linguagem ou algo que eu queira desenvolver...  e uma aba para testes  enfim... isso é algo muito subjetivo e depende muito do programador.  Você não pode se basear na sua experiência e no método que você usa, pois cada um tem seus próprios métodos e manias! 👍
  2. O post de DiF em Um pc liga sem a placa de vídeo ou processador com vídeo integrado? foi marcado como solução   
    @enaomi O pc ligar, vai... porém não terá vídeo... pois seu processador não possui vídeo integrado, sem placa de vídeo dedicada, não terá vídeo.
    No caso, se você tivesse um Ryzen 5 5600G, funcionaria normalmente.
  3. O post de DiF em ajax não trás informações de uma coluna de outra página no modal foi marcado como solução   
    @vitxr Olá,
     
    Tenho algumas considerações...
    Olhando assim por cima no seu código, talvez o erro possa estar na linha de recebimento do valor ID no arquivo ajaxfile.php...
     
    Veja bem, você está passando por POST, o valor do ID.  Mas no arquivo ajaxfile.php. é recebido por GET.
    Experimenta trocar para:
    $id = $_POST["id"];  
    Além disso, nesse caso em específico, não tem necessidade de usar o input_filter() pois é um valor que não é editável.. se fosse um campo de texto sim, mas como é um data-atribute com o valor id "fixo"...  não precisa, mas se você faz questão,  pelo menos troca o INPUT_GET por INPUT_POST.
     
    Basicamente, o erro acontece, pois o  arquivo não recebeu valor id...   então a intrução SQL não pode ter sido feita, que naturalmente ocasionou o undefined, pois o idobra e nome estão "vazio", no vetor.  
    Reveja a parte do código em php, que é onde está o problema provavelmente.
     
     
    Um extra,  Se você estiver usando a versão mais recente do jQuery,  a estrutura do ajax  foi alterada para este modelo.. e  no seu modelo há um pequeno erro. O type, não é POST... no caso você deve especificar o POST no atributo method.    e o dataType como HTML.
    $.ajax({ url: 'ajaxfile.php', dataType: 'HTML', method: 'POST', data: {id: id} }).done(function(response){ $('.modal-body').html(response); $('#empModal').modal('show'); });  
  4. O post de DiF em Buscador de noticias para meu site foi marcado como solução   
    @Victor Hugo Barbosa Silva Olá, 
    Um jeito simples de cumprir o básico do objetivo é criar uma área de "redator", onde nele vai ter um campo para digitar o título da notícia, um campo para descrição da noticia, algo que fique com poucas palavras, pois o objetivo não é fazer a noticia em si, mas sim dar uma prévia dela. um campo para inserir o link da noticia.   
    Implementar um banco de dados por exemplo o MySQL.
     
    Por exemplo:  Na área do redator crie um formulário assim:

     
     
    a partir daí, o redator vai ter que buscar a noticia no site do GE por exemplo,  ele vai copiar o link da notícia e depois preencher o formulário na área do redator..
     

     
    Aí, você grava essas informações no banco de dados...  E então na área do site, você carrega as informações e monta a estrutura do link que redireciona para o site da notícia.
    De outro jeito, ficaria muito mais complexo, então nem vou entrar no mérito. Este jeito que apresentei é o mais fácil, que cumpre o esperado, porém exige intervenção humana, ou seja, alguém vai ter que gerenciar o site, catar as notícias e cadastrar no banco de dados de forma manual como mostra na imagem.
     
    Basicamente é isso.
    Boa sorte.
  5. O post de DiF em Fiz o login e tudo certo, funciona no Xampp, mas não no 000webHos foi marcado como solução   
    @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..
  6. O post de DiF em Não sei como funciona instalação do Windows no SSD novo foi marcado como solução   
    @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.  
     
     
  7. O post de DiF em Comprar licença do Windows foi marcado como solução   
    Prezado usuário,
     
    As licenças em questão são provenientes do que chamamos de "mercado cinza" de keys. São baratas porque são ilegais. Essas licenças são obtidas de maneira ilícita, por meio de desvios - a partir de fabricantes de computadores, Youtubers, influenciadores, universidades e instituições públicas - ou mesmo compradas com cartão de crédito roubado. Isso continua sendo pirataria conforme os termos da Microsoft. As únicas licenças legais são vendidas pela própria Microsoft ou por revendedores oficiais credenciados em seu site.
     
    Pedimos que você dê uma olhada no tópico abaixo:
     
    Diante do acima exposto, e evitando perpetuar qualquer tipo de discussão sobre pirataria, estamos fechando o tópico.

    Contamos com a compreensão de todos.
     
    Atenciosamente,
    Equipe Clube do Hardware
  8. O post de DiF em como fazer modal que mostra informações da tabela? foi marcado como solução   
    @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.
  9. O post de DiF em Como intera com outro usuario cadastrado no banco de dados a partir do meu login foi marcado como solução   
    @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.
  10. O post de DiF em login com numeros ou email foi marcado como solução   
    @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. 
  11. O post de DiF em Enviar resposta do Ajax por e-mail com phpmailer foi marcado como solução   
    @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.
     
  12. O post de DiF em Dica p/ enganar Sql injection foi marcado como solução   
    @xrogerinho Tem N formas de previnir SQL injection...  Por exemplo utilizando o preg_replace do php.... 
    Exemplo:
     
    $loginSeguro = preg_replace('/[^[:alpha:]_]/', '',$login); $senhaSegura = preg_replace('/[^[:alnum:]_]/', '',$senha);  
    Ambos usam expressões regulares, onde o [:alpha:] é a mesma coisa que [a-zA-Z]   e  [:alnum:] é a mesma coisa que [a-zA-Z0-9]
    Basicamente remove a possibilidade de colocar o  " OR  ‘ 1=’1 "
     
    Outro método é utilizar o PDO..
    O PDO utiliza "prepared statements" na formação das queries. Nada mais é que um template que irá ajudar a escrever uma instrução.
    Por que isso ajuda a prevenir ataques de injeção de SQL? Como é um “template”, a estrutura nos permite saber onde exatamente irão entrar os valores para as nossas queries. 
     
  13. O post de DiF em Como exibir um Objeto Javascript dentro de uma div? foi marcado como solução   
    @imDEV
    O método getElementsByClassName  retorna um vetor de objetos, o HTMLcollection que contém todos elementos filhos que possuem o nome da classe informado.
    Ele vai pegar as várias ocorrências de uma classe.. é uma lista também. Então no caso,  no exemplo  continha apenas 1 elemento com essa classe, logo, seria necessário buscar o primeiro elemento dessa lista.. que é o índice zero.   [0]  
     
    document.getElementsByClassName("objeto")[0]  
    Agora vamos a outro exemplo:
    p.azul{ color: blue;} p.vermelho{color: red;}  
    <div> <p class="azul">Este parágrafo contém uma frase em azul</p> <p class="vermelho">Este parágrafo contém uma frase em vermelho</p> <p class="vermelho">Este parágrafo contém uma frase em vermelho</p> <p class="vermelho">Este parágrafo contém uma frase em vermelho</p> </div>  
     
    Vamos supor que você precisa alterar o texto e a cor do segundo paráfrafo de um dos filhos de um elemento
    document.getElementsByClassName("vermelho")[1].innerHTML = "Agora este segundo parágrafo está na cor verde"; document.getElementsByClassName("vermelho")[1].style.color = "#52cf44";  
    Veja, que agora, o elemento possui 3 ocorrências da mesma classe, para buscar o segundo elemento, informamos ao getEelementsByClassName que seja pego o elemento no índice [1]
     
    Veja na prática: https://jsfiddle.net/dife/t40z2m8x/1/
  14. O post de DiF em Como instalar NodeJs de forma correta? foi marcado como solução   
    @GOD_K4MU1 Olá,  você pode instalar onde você quiser.  Mas para funcionar no cmd,  provavelmente vai ter que adicionar nas variáveis de sistema, o caminho dele.
     
    Pressione a tecla windows + R > digite "sysdm.cpl" (sem aspas) > aba Avançado > Variáveis de Ambiente > Em váriaveis do sistema
     

     
    Feito isso, você já poderá usar o node.js pelo cmd.
     
  15. O post de DiF em Quando muda a resolução da tela os elementos ficam desorganizados. foi marcado como solução   
    @CaioNeves Você resolve isso usando o media query.    Basicamente o media Query permite aplicar as mesmas regras  para diferentes resoluções com diferentes propriedades e valores..
     
    exemplo:
     
    body{ background-color: red; } @media only screen and (max-width: 400px) { body { background-color: green; } }  
    O código CSS acima, diz que o elemento body vai ter uma cor de fundo vermelha, mas se a resolução de tela for 400px  ou menos, o fundo de tela vai ser verde.   Você pode aplicar isso para a posição dos elementos.
  16. O post de DiF em Preciso que meu vídeo carregue somente a capa. foi marcado como solução   
    @Josiel Viega Sim , é possível fazer isso com javascript. E também com php...
     
    Veja um exemplo com javascript:
    <div> <vídeo id="meu-vídeo" autobuffer controls autoplay> <source id="mp4" src="http://grochtdreis.de/fuer-jsfiddle/vídeo/sintel_trailer-480.mp4" type="vídeo/mp4"> </vídeo> <button id="snap" onclick="print()">Criar capa do vídeo</button> </div> <canvas id="canvas" width="640" height="480"></canvas>  
    Javascript:
    let vídeo = document.querySelector('vídeo'); let canvas = document.querySelector('canvas'); let context = canvas.getContext('2d'); let w, h, ratio; //Adciona o loadedmetadata que irá ajudar a identificar os atributos de vídeo vídeo.addEventListener('loadedmetadata', function() { ratio = vídeo.videoWidth / vídeo.videoHeight; w = vídeo.videoWidth - 100; h = parseInt(w / ratio, 10); canvas.width = w; canvas.height = h; }, false); ///define a função para tirar o print function print() { context.fillRect(0, 0, w, h); context.drawImage(vídeo, 0, 0, w, h); }  
    Veja funcionando aqui: https://jsfiddle.net/dife/kewczobx/
     
    Não necessariamente você precisa separar o próprio vídeo em imagens. Você pode criar sua própria imagem com um paint brush, gimp ou photoshop...  Mas claro, usar uma imagem do próprio vídeo, é mais rápido.  No caso, você pode usar o exemplo dali de cima, para implenentar uma maneira de ao gerar a capa, você possa forçar o download da imagem criada, ao invés de só mostrar em tela como eu fiz ali.  
    Se usar o php, você pode combinar com o ajax em javascript, para que ao criar a capa, automaticamente faça um upload dessa imagem para uma pasta no servidor e incluir dentro do elemento de slide.  
     
    Exemplo com php:
    Primeiro você precisa usar  o PHP-FFMpeg.
    Então usar um código parecido com isso:
    <?php //faz o autoload do arquivo necessário require 'vendor/autoload.php'; $sec = 10; //seu vídeo $movie = 'test.mp4'; //capa $thumbnail = 'thumbnail.png'; $ffmpeg = FFMpeg\FFMpeg::create(); $vídeo = $ffmpeg->open($movie); $frame = $vídeo->frame(FFMpeg\Coordinate\TimeCode::fromSeconds($sec)); $frame->save($thumbnail); //mostra o print em um elemento img echo '<img src="'.$thumbnail.'">'; Source de onde achei a informação sobre o php e vídeo:  https://stackoverflow.com/questions/2043007/generate-preview-image-from-vídeo-file  Solution #2
     
    Acredito que com essas informações, você consiga implementar no seu sistema.
  17. O post de DiF em Colocar botão além do texto na coluna HTML foi marcado como solução   
    @David Martinho @MailingTester Seguindo o que o colega disse ali,  defina a regra da célula da tabela com position relative,  e o botão dentro desta célula com position absolute. dessa forma você consegue colocar algo ali Veja um exemplo:
     
    <table> <tr> <td>Mudar de sitio <button>Ver mais</button></td> </tr> <tr> <td>trocar cor</td> </tr> <tr> <td>Revisão</td> </tr> <tr> <td>Trocar peça</td> </tr> </table>  
    table{ width: 150px; } table, td{ border: 1px solid #000; } table td{ position: relative; height: 100px; } table td button{ position: absolute; top: 0; right: 0; }  
     
  18. O post de DiF em download de imagem html foi marcado como solução   
    @B0bão Você pode utilizar o novo atributo  "download"   https://www.w3schools.com/tags/att_a_download.asp
     
    Porém, só funciona em navegadores mais novos.   Recomendo que faça o mecanismo de download usando uma linguagem de programação como o PHP.
  19. O post de DiF em Tabuada 1 a 10 php? foi marcado como solução   
    @Berus-kun Qual o problema está tendo?
     
    Ao analisar, não precisa daquela verificação antes.  E ainda você não recebe o dado vindo do form.
    A única verificação, necessária é se o campo está vazio ou não.
    Altere para:
     
    $numero = $_GET["numero"]; if(empty($numero)): echo "O campo está vazio. Prencha com algum valor"; else: for($i = 1; $i < 11; $i++): echo" $i x $numero = " . $i*$numero . "<br>"; endfor; endif;  
  20. O post de DiF em Tabuada 1 a 10 php? foi marcado como solução   
    @Berus-kun Qual o problema está tendo?
     
    Ao analisar, não precisa daquela verificação antes.  E ainda você não recebe o dado vindo do form.
    A única verificação, necessária é se o campo está vazio ou não.
    Altere para:
     
    $numero = $_GET["numero"]; if(empty($numero)): echo "O campo está vazio. Prencha com algum valor"; else: for($i = 1; $i < 11; $i++): echo" $i x $numero = " . $i*$numero . "<br>"; endfor; endif;  
  21. O post de DiF em Tabuada 1 a 10 php? foi marcado como solução   
    @Berus-kun Qual o problema está tendo?
     
    Ao analisar, não precisa daquela verificação antes.  E ainda você não recebe o dado vindo do form.
    A única verificação, necessária é se o campo está vazio ou não.
    Altere para:
     
    $numero = $_GET["numero"]; if(empty($numero)): echo "O campo está vazio. Prencha com algum valor"; else: for($i = 1; $i < 11; $i++): echo" $i x $numero = " . $i*$numero . "<br>"; endfor; endif;  
  22. O post de DiF em Tabuada 1 a 10 php? foi marcado como solução   
    @Berus-kun Qual o problema está tendo?
     
    Ao analisar, não precisa daquela verificação antes.  E ainda você não recebe o dado vindo do form.
    A única verificação, necessária é se o campo está vazio ou não.
    Altere para:
     
    $numero = $_GET["numero"]; if(empty($numero)): echo "O campo está vazio. Prencha com algum valor"; else: for($i = 1; $i < 11; $i++): echo" $i x $numero = " . $i*$numero . "<br>"; endfor; endif;  
  23. O post de DiF em Tabuada 1 a 10 php? foi marcado como solução   
    @Berus-kun Qual o problema está tendo?
     
    Ao analisar, não precisa daquela verificação antes.  E ainda você não recebe o dado vindo do form.
    A única verificação, necessária é se o campo está vazio ou não.
    Altere para:
     
    $numero = $_GET["numero"]; if(empty($numero)): echo "O campo está vazio. Prencha com algum valor"; else: for($i = 1; $i < 11; $i++): echo" $i x $numero = " . $i*$numero . "<br>"; endfor; endif;  
  24. O post de DiF em Site com tela login em php foi marcado como solução   
    @Berus-kun Quais exatamente são as mensagens de erro?
     
    Sinceramente, a abordagem do vídeo não é das melhores. Digamos que seja, só o conceito básico de um login, ele não serve para nada.
    Ok,  depois de analisar seu código com mais calma, há alguns erros e bem simples!
     
    O primeiro está lá no topo, onde esqueceu de colocar o ? na frente de <?php
     
    O segundo erro, está nos fechamentos de chaves dos blocos de IF e ELSE.   Recomendo não usar  { } quando for um if else interno.
    Troque para esta estrutura:
    if(setença) : algo else: algo endif;  
    Seu código corrigido fica assim:
    Index.php
    <?php session_start() ?> <!DOCTYPE html> <html> <head> <title>Login </title> </head> <body> <?php if(!isset($_SESSION['login'])){ if(isset($_POST['acao'])): $login = 'rubens'; $senha = '123456'; $loginform = $_POST['login']; $senhaform = $_POST['senha']; if($login == $loginform && $senha == $senhaform): //logado com sucesso! $_SESSION["login"] = $login; header('Location: index.php'); else: //algum erro ocorreu echo 'dados invalidos!'; endif; endif; include('login.php'); }else{ if(isset($_GET['logout'])): unset($_SESSION["login"]); session_destroy(); header('Location: index.php'); endif; include('home.php'); } ?> </body> </html>  
    login.php
    <form method="post"> <input type="text" name="login"> <input type="password" name="senha"> <input type="submit" name="acao" vale="Enviar!"> </form>  
    home.php
    <?php echo '<h2>Bem-Vindo '.$_SESSION['login']. '</h2>'; echo '<a href="?logout">Fazer logout!</a>'; ?>  
    Testei aqui e funciona corretamente.
    Repare que os blocos de IF e ELSE internos, estão diferentes do comum... justamente para diferenciar e não se atrapalhar com o monte de chaves espalhadas.  O seu maior erro estava no posicionamento errado das chaves.
  25. O post de DiF em Site com tela login em php foi marcado como solução   
    @Berus-kun Quais exatamente são as mensagens de erro?
     
    Sinceramente, a abordagem do vídeo não é das melhores. Digamos que seja, só o conceito básico de um login, ele não serve para nada.
    Ok,  depois de analisar seu código com mais calma, há alguns erros e bem simples!
     
    O primeiro está lá no topo, onde esqueceu de colocar o ? na frente de <?php
     
    O segundo erro, está nos fechamentos de chaves dos blocos de IF e ELSE.   Recomendo não usar  { } quando for um if else interno.
    Troque para esta estrutura:
    if(setença) : algo else: algo endif;  
    Seu código corrigido fica assim:
    Index.php
    <?php session_start() ?> <!DOCTYPE html> <html> <head> <title>Login </title> </head> <body> <?php if(!isset($_SESSION['login'])){ if(isset($_POST['acao'])): $login = 'rubens'; $senha = '123456'; $loginform = $_POST['login']; $senhaform = $_POST['senha']; if($login == $loginform && $senha == $senhaform): //logado com sucesso! $_SESSION["login"] = $login; header('Location: index.php'); else: //algum erro ocorreu echo 'dados invalidos!'; endif; endif; include('login.php'); }else{ if(isset($_GET['logout'])): unset($_SESSION["login"]); session_destroy(); header('Location: index.php'); endif; include('home.php'); } ?> </body> </html>  
    login.php
    <form method="post"> <input type="text" name="login"> <input type="password" name="senha"> <input type="submit" name="acao" vale="Enviar!"> </form>  
    home.php
    <?php echo '<h2>Bem-Vindo '.$_SESSION['login']. '</h2>'; echo '<a href="?logout">Fazer logout!</a>'; ?>  
    Testei aqui e funciona corretamente.
    Repare que os blocos de IF e ELSE internos, estão diferentes do comum... justamente para diferenciar e não se atrapalhar com o monte de chaves espalhadas.  O seu maior erro estava no posicionamento errado das chaves.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!