Ir para conteúdo
Fórum Script Brasil

RpgBoss

Membros
  • Total de itens

    10
  • Registro em

  • Última visita

Posts postados por RpgBoss

  1. Deixa eu ver se entendi, emails comuns não podem ser usados, mas muitos emails institucionais contém ".br", ".com", etc.

    O mais pratico seria listar todas as possibilidades de emails institucionais, para confirmar o envio, você pode validar por Javascript mas se quer por PHP:

    <?php
    $listprov=["unicamp.br","pucsp.edu.br","@usp.br"];
    $youprov=explode("@",$_POST['email'])[1];
    $chkprov=false;
    for ($m=0; $m<=$listprov.length; $m++) {
    	if($youprov == $listprov[m]){
    		$chkprov=true;
    	}
    }
    if($chkprov==true){
    	echo "Email ".$_POST['email']." permitido";
    }else{
    	echo "Você não pode se cadastrar com este email";
    }
    ?>

     

  2. Mas o erro também está nas todos e nos A, nenhum deles está fechado, isso é HTML básico.

    <a href="" atributos>link</a>

    A maneira correta.

    foreach($sql->fetchAll() as $usuario){
        // Montagem da tabela
        echo '<tr>';
        echo '<td>'.$usuario['nome'].'</td>';
        echo '<td>'.$usuario['email'].'</td>';
        echo '<td><a href="editar.php?id='.$usuario['id'].'" class="btn btn-info">Editar<a/> <a href="excluir.php?id='.$usuario['id'].'" class="btn btn-danger"> Excluir</a><td/>';
        echo '</tr>';
    }

    Por que se não o primeiro link pode transformar a table toda num link ou parte dela.

  3. Primeiro você vai ter que aprender a ler o XML com parse:
    https://www.w3schools.com/xml/xml_parser.asp

     

    Depois para conferir o conteúdo selecionado:

    Como Bolean:

    function lerStatus() {
      var statusmsg = xmlDoc.getElementsByTagName('status')[0].firstChild.nodeValue;
      var statusmsg = eval(statusmsg);
      if(statusmsg == true){
        //Caso True
      }else{
        //Caso False
      }  
    }

     

    Se quiser como String:

    function lerStatus() {
      var statusmsg = xmlDoc.getElementsByTagName('status')[0].firstChild.nodeValue;
      if(statusmsg == "true"){
        //Caso True
      }
      if(statusmsg == "false"){
        //Caso False
      }  
    }

     

    Com Zero e Um:

    function lerStatus() {
      var statusmsg = xmlDoc.getElementsByTagName('status')[0].firstChild.nodeValue;
      (statusmsg == true) ? 1 : 0;
      if(statusmsg == 1){
        //Caso 1
      }else{
        //Caso 0
      }  
    }

     

  4. Eu consegui descobrir a razão de alguns sites pegarem o IPV4 mesmo usando IPV6 ao mesmo tempo e a minha hospedagem não, as rotas usadas podem variar do servidor onde foi hospedado a script PHP, então não tem realmente como isso ser feito sem uso de serviço de terceiros.

    Agora uma solução alternativa, vale lembrar que não vou postar o serviço de terceiros que usei por que acredito que isso seja mal visto pela comunidade, e que também pode ser considerado um sistema mal feito.

    Para poder solucionar eu usei este serviço para converter em JSON o IPV4:

    http://<ipv4 ipv6 service>/json/widgetdata.php?callback=_jqjsp&_1518034744039=

    Ele retorna uma JSON:

    _jqjsp({"address":"XXX.XXX.XXX.XXX","proto":"ipv4","country_code":"BR","country":"Brazil"})

    Mas não se pode usar xmlHTTPrequest para receber valores de outra um JSON de outra hospedagem, então através da URL dela eu alterei o termo da variavel **callback** de maneira que a gambiarra fazendo com que o PHP do serviço criasse uma variavel Javascript:

    http://<ipv4 ipv6 service>/json/widgetdata.php?callback=dataipv4=

    E chamando ele por HTML a variavel fica acessivel ao seu navegador como um objeto JSON:

    dataipv4=({"address":"XXX.XXX.XXX.XXX","proto":"ipv4","country_code":"BR","country":"Brazil"})

    Então agora sim com xmlHTTPRequest bastou usar a variavel dataipv4.address para obter o IP e enviar por método GET pra um PHP que use o IP:

    function showIpv(ip) {
         var xmlhttp = new XMLHttpRequest();
         xmlhttp.onreadystatechange = function() {
             if (this.readyState == 4 && this.status == 200) {
                 console.log()
             }
         };
         xmlhttp.open("GET", "write_ipv4.php?ip="+ip, true);
         xmlhttp.send();
    }

    O arquivo write_ipv4.php que fica na hospedagem:

    <?php
    if(isset($_GET['ip']) && !empty($_GET['ip'])){
       /* User a variavel global $_GET['ip'] da maneira que preferir
          Por exemplo:
          echo $_GET['ip']
          retorna o IP no formato XXX.XXX.XXX.XXX
       */
    }else{
       console.log('Acesso direto proibido');
    }
    ?>

     

  5. O erro está na sua linha da IF e da função mail().

     

    Olha, vale lembrar que eu não concordo com uso de PHP para enviar EMAIL sem ter uma va.lidação perfeita que checa até o formato do email, sendo isso feito inicialmente em javascript e depois pelo próprio PHP.

    Mas como aparentemente você está fazendo testes existem essas duas maneiras.

    if(isset($vnome) && isset($vemail) && isset($vassunto) && isset($vmensagem)){
        mail("emaildosite@provedor.com",$vassunto,"De ".$vnome."\n\n".$vmensagem);
    }else{
        echo "Houve algum erro no preenchimento do formulário";
    }

    Ou pra retornar o erro correto:

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $vnome=$_POST['nome'];
        $vemail=$_POST['email'];
        $vassunto=$_POST['assunto'];
        $vmensagem=$_POST['mensagem'];
    	
        /* Declarar variavel para contar quantos campos foram preenchidos */
    	$validador = 0;
    	if(!empty($vnome)){
    		$validador = $validador + 1;
    	}else{
    		echo "ERRO: Preencha o seu nome<br>\n";
    	}
    	if (!empty($vassunto)){
    		$validador = $validador + 1;
    	}else{
    		echo "ERRO: Preencha o assunto<br>\n";
    	}
    	if (!empty($vemail)){
    		$validador = $validador + 1;
    	}else{
    		echo "ERRO: Preencha seu email<br>\n";
    	}
    	if (!empty($vmensagem)){
    		$validador = $validador + 1;
    	}else{
    		echo "ERRO: Preencha o corpo do email<br>\n<br>\n";
    	}
    
    	/* Condição para enviar o email */
    	if ($validador == 4){
    		/** TUDO CERTO ENVIAR EMAIL **/
    		//coloque aqui o e-mail que deve receber a mensagem do formulário
    		mail("email@provedordaempresa.com",$vassunto,"Email enviado por ".$vnome.".\n\n".$vmensagem."\n\n\nResponda para ".$vemail);
    		echo "E-MAIL enviado com sucesso! Agora aguarde chegar na nossa caixa de entrada.<br>\n<br>\nMuito obrigado.";
    	}else{
    		/** SE ALGUM DOS ITEMS ESTIVER VAZIO **/
    		echo "O seu email não foi enviado, veja acima os campos que faltaram preencher	";
    	}
    }else{
    	echo "Você não pode acessar essa página diretamente, volte para o formulário, preencha o email e aperte ENVIAR";
    }

    Eu ia colocar um método para enviar uma cópia para o cliente por garantia, mas o servidor limita a um chamado da função mail() por requisição.

    mail("email@provedordaempresa.com;".$vemail,...

    Então se quiser mandar uma cópia altere

  6. Eu sempre usei $_SERVER['REMOTE_ADDR'] para obter o IP do usuário/visitante em alguns sistemas. Porém comecei a usar um IP FIXO no trabalho, que é IPV4, mas quando vou ver o registro eu acessei com IPV6.

     

    Mas em sites como fóruns e blogs os sistemas em PHP deles registram o IPV4, e analisei os códigos e mesmo assim não consegui entender o algorítimo que consegue passar o IPV6 ou outro método para IPV4.

     

    Então acredito que seja possível somente com PHP, se alguém puder me ajudar.

×
×
  • Criar Novo...