Jump to content

Validar Senha Login (PHP com JAVASCRIPT)


ppshaman

Recommended Posts

Bom ano a todos.

Estou a fazer um trabalho para uma disciplina "Programação WEB com base de dados". Trata-se de um forum onde temos de trabalhar sobretudo com php. Uma das exigências é usar Javascript para umas validações, então pensei em usar para o registo de novos membros (validação de segurança na password). Acontece que não sei como juntar JavaScript com Php. Tenho um <form> onde são preenchidos dados e passados pelo método $_POST. Gostaria de validar a password por javascript e só depois de os dados estarem correctos, serem passados para o PHP para serem inseridos na base de dados.  

Passo o ficheiro de registo.php:

<?php
  ob_start();
  session_start();

  if (!file_exists('./config/config.h')){
    header ('Location: erro.php');
  }

  include_once './config/config.h';
  include_once 'login.php';

  if( isset($_POST['btnRegisto'])){
    $nomeUtilizador = $_POST['primeiroNome'];
    $alcunha = $_POST['alcunha'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $passwordVerifica = $_POST['passwordVerifica'];

      //Verificar se Passwords são Iguais
    if ($password == $passwordVerifica){
      //Encriptar Palavra Passe
      $passwordEnc = sha1($password);

      $sql = "INSERT INTO utilizador(nome,alcunha,senha,email,foto,estado,id_tipo) VALUES ('$nomeUtilizador','$alcunha','$passwordEnc','$email','default.png',0,3)";

      $resultado = mysqli_query($conn,$sql);
      if($resultado){
        echo "A conta foi criada com sucesso.";
      }else{
      echo "A conta não foi criada com sucesso.";

      }

    }else{
        $mensagem = "As password não coincidem.";
    }
  }
?>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
      <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><?php echo $nomeForum; ?></title>
	<!-- BOOTSTRAP STYLES-->
    <link href="assets/css/bootstrap.css" rel="stylesheet" />
     <!-- FONTAWESOME STYLES-->
    <link href="assets/css/font-awesome.css" rel="stylesheet" />
        <!-- CUSTOM STYLES-->
    <link href="assets/css/custom.css" rel="stylesheet" />
     <!-- GOOGLE FONTS-->
   <link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css' />
</head>
<body>
    <div id="wrapper">
        <nav class="navbar navbar-default navbar-cls-top " role="navigation" style="margin-bottom: 0">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".sidebar-collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="index.php"><?php echo $nomeForum; ?></a>
            </div>

        </nav>
           <!-- /. NAV TOP  -->
           <?php
             include ("loginHTML.php"); //Barra de login
           ?>
        <!-- /. NAV SIDE  -->
        <div id="page-wrapper" >
            <div id="page-inner">
                <div class="row">
                    <div class="col-md-12">
                     <h2 align="center">Registo</h2>
                      <center>
                        <?php
                          if ( isset ($mensagem)){
                            echo "<h4>$mensagem </h4>";
                          }

                         ?>
                        <form action="" method="POST">
                          <br>
                          Nome: <br>
                          <input class="form-control" type="text" name="primeiroNome"><br>
                          Alcunha: <br>
                          <input class="form-control" type="text" name="alcunha"><br>
                          Email: <br>
                          <input class="form-control" type="email" name="email"><br>
                          Password: <br>
                          <input class="form-control" type="password" name="password"><br>
                          Reintroduza a Password: <br>
                          <input class="form-control" type="password" name="passwordVerifica"><br>
                          <button  type="submit" class="btn btn-default" name="btnRegisto">Registar</button>
                        </form>
                      </center>

                    </div>
                </div>
              </div>
             <!-- /. PAGE INNER  -->
            </div>
         <!-- /. PAGE WRAPPER  -->
        </div>
     <!-- /. WRAPPER  -->
    <!-- SCRIPTS -AT THE BOTOM TO REDUCE THE LOAD TIME-->
    <!-- JQUERY SCRIPTS -->
    <script src="assets/js/jquery-1.10.2.js"></script>
      <!-- BOOTSTRAP SCRIPTS -->
    <script src="assets/js/bootstrap.min.js"></script>
    <!-- METISMENU SCRIPTS -->
    <script src="assets/js/jquery.metisMenu.js"></script>
      <!-- CUSTOM SCRIPTS -->
    <script src="assets/js/custom.js"></script>
</body>
</html>

Agradeço ajuda.

Outra questão é se alguém sabe como indentar código no programa "ATOM".

Obrigado

Link to comment
Share on other sites

44 minutos atrás, Estêvão Braga disse:

Olá ppshaman,

Tente estudar sobre requisição Ajax. Para poder comunicar seu front com o backend em php

Obrigado Estêvão Braga. Vou dar uma vista de olhos, o problema é que tenho de entregar o trabalho na quarta. Já tenho o forum completo e falta-me esta validação :(.

Cumprimentos

Link to comment
Share on other sites

primeiro de tudo : tira o código de validação do teu ficheiro onde tens o HTML, é o maior problema de quem está a começar a programar, e não percebo porque se continua a ensinar que é boa prática enfiar todo o código no mesmo saco (ficheiro)

segundo, como vejo que tens o jquery carregado na página, o que tens de fazer será algo deste género:

    $('form').on('submit', function(event) {            // registar um callback a ser executado quando fazes submit do formulário
        event.preventDefault();                         // prevenir a execução normal do formulário
        $.post('o_script_que_vai_validar_a_auth.php',   // iniciar o envio de AJAX para o script pretendido
                $( this ).serialize(),                  // adicionar a informação do formulário
                function (result) {                     // função a ser executada após o resultado de autenticação
                    // trabalhar o JSON recebido
                }, 'json');                             // dizer que a resposta será no formato JSON
    });

terceiro, o código de autenticação deverá retornar JSON, isto é algo convencional em pedidos AJAX:

  // ...
  if ($password == $passwordVerifica){
    if($resultado){
      echo json_encode([
        'success' => 1,
        'message' => 'A conta foi criada com sucesso.'
      ]);
    } else {
      echo json_encode([
        'success' => 0,
        'message' => 'A conta não foi criada com sucesso.'
      ]);
    } else {
      echo json_encode([
        'success' => 0,
        'message' => 'As password não coincidem.'
      ]);
    }
  }
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.