ppshaman Posted January 2, 2017 at 10:16 PM Report Share #601705 Posted January 2, 2017 at 10:16 PM 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 More sharing options...
Estêvão Braga Posted January 2, 2017 at 10:26 PM Report Share #601707 Posted January 2, 2017 at 10:26 PM (edited) Olá ppshaman, Tente estudar sobre requisição Ajax. Para poder comunicar seu front com o backend em php Edited January 2, 2017 at 10:26 PM by Estêvão Braga Link to comment Share on other sites More sharing options...
ppshaman Posted January 2, 2017 at 11:11 PM Author Report Share #601715 Posted January 2, 2017 at 11:11 PM 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 More sharing options...
Knitter Posted January 3, 2017 at 08:10 AM Report Share #601722 Posted January 3, 2017 at 08:10 AM Validação de passwords não se faz no cliente, faz-se no servidor. O JavaScript não deve validar a password. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 3, 2017 at 10:56 AM Report Share #601726 Posted January 3, 2017 at 10:56 AM 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 Portugol Plus Link to comment Share on other sites More sharing options...
ppshaman Posted January 5, 2017 at 12:51 AM Author Report Share #601795 Posted January 5, 2017 at 12:51 AM Obrigado HappyHippyHippo. Não consegui resolver a tempo, mas assim já sei como devo fazer para a próxima. Cumprimentos. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now