Jump to content

[Resolvido] Erro no login devido a variável de higienizar


Rafael Almeida

Recommended Posts

Boa tarde.

Estou a fazer um programa em que até ao momento, preciso de que esteja tudo a funcionar bem pelo log in.

Descobri estes códigos pela net e até agora preciso que uma função de higienizar utilizadores faça parte do programa.

O problema é que de onde descobri este código, a variável ($data) que é mencionada na função de higienizar utilizadores, não está a atribuir a nada, e o meu programa dá erro por causa disso. Todos os meus ficheiros deste programa estão ligados por includes e requires, mas vou mostrar os códigos mais importantes:

--------------------------------------------------------------------------------------------------------------

Funções de Utilizadores (users.php):

<?php

function user_exists($username){

$username = sanitize($username);

return (mysql_result(mysql_query("SELECT COUNT(user_id) FROM users WHERE username = '$username'"), 0) == 1) ? true : false;

}

function user_active($username){

$username = sanitize($username);

return (mysql_result(mysql_query("SELECT COUNT(user_id) FROM users WHERE username = '$username' AND active = 1"), 0) == 1) ? true : false;

}

function login($username, $password){

return(mysql_result(mysql_query("select * from users where username='$username' and password='$password'"), 0) == 1) ? $user_id : false;

}

?>

--------------------------------------------------------------------------------------------------------------

Login:

<?php

include 'core/init.php';

if(empty($_POST) === false){

$username=$_POST['username'];

$password=$_POST['password'];

if(empty($username) === true || empty($password) === true) {

$errors[] = 'You need to enter a username and a password';

}else if (user_exists($username) === false) {

$errors[] = 'We can\'t find that username. Have you registered?';

}else if (user_active($username) === false) {

$errors[] = 'You Haven\'t activate your account.';

}else{

}

}

print_r($errors);

}

?>

--------------------------------------------------------------------------------------------------------------

General:

<?php

funciton sanitize($data){

return mysql_real_escape_string($data);

}

----------

Alguém sabe a que posso atribuir a variável $data?

Obrigado pela resposta.

Edited by yoda
Link to comment
Share on other sites

Boas,

A função sanitize a unica coisa que faz é um "escape" às variaveis antes de as usar em pedidos à base de dados mais info AQUI

Deves de o fazer sempre para prevenir SQL injection

A function exists_user vê se existe na base de dados um utilizador com aqui username se existir retorna 1 senão retorna 0 o mesmo para exist password

Penso que foi isto que perguntaste

Espero ter ajudado

Tiago Tavares

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.