marinapeixoto Posted September 22, 2016 at 01:37 PM Report #599075 Posted September 22, 2016 at 01:37 PM Boa tarde, gostaria de obter ajuda num erro que me apareceu ao tentar criar um login e registo. Quando insiro toda a informação à cerca registo não dá erro nenhum mas no entanto ao aceder à base de dados não está lá nem o nome, senha e email. Entretanto se tentar fazer o login com esses dados, pelo menos para receber a informação de que não existe esse usuário, também nada se passa. Poderiam-me explicar o que é necessário alterar ou acrescentar? Segue o código php: <?php function introduzirUtilizador(){ $nome = $_POST["nome"]; $senha = $_POST["senha"]; $senha2 = $_POST["senha2"]; $email = $_POST["email"]; if (!$_POST['nome']) { $errNome = 'true'; } else{ $errNome = 'false'; } if (!$_POST['senha']) { $errSenha = 'true'; } else{ $errSenha = 'false'; } if (!$_POST['senha2']) { $errSenha2 = 'true'; } else{ $errSenha2 = 'false'; } if (!$_POST['email']) { $errEmail = 'true'; } else{ $errEmail = 'false'; } if($senha != $senha2){ $errSenhaVerifica = 'true'; } else{ $errSenhaVerifica = 'false'; } if($errNome != 'true' && $errSenha != 'true' && $errSenha2 != 'true' && $errEmail != 'true' && $errSenhaVerifica != 'true'){ $ligacao = mysqli_connect("localhost","root","","site_interno"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $sql = "INSERT INTO USUARIOS (NOME,SENHA,EMAIL) VALUES ('$nome',,'$senha','$email')"; //echo "query: $sql"; $resultado = mysqli_query($ligacao,$sql); /*if($resultado){ echo "yes"; } else { echo "no"; }*/ mysqli_close($ligacao); } else { /*echo '<script language="javascript">'; echo 'alert("Erro no preenchimento dos campos!")'; echo '</script>';*/ } } if (!isset($_SESSION)) session_start(); if(isset($_POST["submit1"])){ introduzirUtilizador(); } function login_usuario(){ $emaillogin = $_POST["emaillogin"]; $pwd = $_POST["pwd"]; if (!$_POST['emaillogin']) { $errEmaillogin = 'true'; } else{ $errEmaillogin = 'false'; } if (!$_POST['pwd']) { $errPwd = 'true'; } else{ $errPwd = 'false'; } if($errEmaillogin != 'true' && $errPwd != 'true' ){ $ligacao = mysqli_connect("localhost","root","","SITE_INTERNO"); if (mysqli_connect_errno()) { echo "Erro na ligação MySQL: " . mysqli_connect_error(); } $sql = "SELECT * FROM USUARIOS WHERE EMAIL='$emaillogin' AND SENHA='$pwd'"; $resultado = mysqli_query($ligacao, $sql); if($resultado){ if(mysqli_num_rows($resultado) == 1) { // inicia ou cria a sessão se ainda não tiver sido efectuado. if (!isset($_SESSION)) { session_start(); } $_SESSION['email'] = $_POST["emaillogin"]; echo "<script type='text/javascript'>alert('Login efetuado com sucesso!')</script> "; header("Location: index.php?email=$emaillogin"); } else { echo "Erro no login"; } } else { echo "Ocorreu um erro"; } } } if(isset($_POST["submit2"])){ login_usuario(); } ?> Muito obrigado
M6 Posted September 22, 2016 at 03:19 PM Report #599081 Posted September 22, 2016 at 03:19 PM Tens um erro de sintaxe no INSERT, tens 3 campos declarados e envias 4 valores. Repara que tens duas virgulas seguidas após o nome. Esse código está mais complexo (e mal formatado) o que não ajuda à leitura, mas se reparares bem estares a verificar se algo existe no POST para depois afetares uma variável de controlo que é usada numa condição é totalmente desnecessário, basta-te ver na condição se algo existe no POST. Ou seja, as variáveis $errSenha, $errSenha2 e afins são totalmente desnecessárias além de que devias afetar-lhes valores booleanos e não strings. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
ruicosta.web Posted September 22, 2016 at 04:39 PM Report #599083 Posted September 22, 2016 at 04:39 PM Não coloques esse código online. Tem mais buracos que um queijo suiço! Por favor revê todo o código. Pesquisa por "sql inection" "xss attack".... Protege o teu trabalho. Nada é 100% mas pelo menos não abras totalmente todas as portas
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