tabel = 1 selvom den er 0?
Jeg har mit login hvor man skal have aktiveret sin account. Dette gøres ved at et nummer i min tabel bliver ændret fra 0 til 1, men selvom mit felt er = 0 bliver jeg logget ind. Her er min kode:<?php
function getDBH() {
static $DBH = null;
if (is_null($DBH)) {
$DBH = new mysqli('', '', '', '');
}
if (mysqli_connect_errno()) {
printf('Connecting error');
exit();
}else{
return $DBH;
}
}
function login($mail, $pass){
$dbh = getDBH();
functions('varSec');
if (preg_match ('%^[A-Za-z0-9._\%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$%', security($mail))) {
functions('passSec');
$pass = security(passSec($pass));
$stmt = $dbh->prepare('SELECT `id`, `navn`, `pass`, `mail`, `admin`, `ip`, `aktivering` FROM users WHERE mail = ? AND pass = ?');
$stmt->bind_param('ss', $mail, $pass);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows == 1){
$stmt->bind_result($id, $navn, $pass, $mail, $admin, $ip, $aktiveret);
$stmt->fetch();
$stmt->free_result();
if(isset($id, $navn, $pass, $mail, $admin, $ip, $aktiveret)){
if($aktiveret == 1){
functions('ipTjek');
$ipTjek = ipTjek($_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_ADDR']);
if($ipTjek == 'Accepted'){
functions('adminTjek');
$rank = adminTjek($mail, $admin);
$info = array('Rank'=>$rank, 'Ip'=>$_SERVER['REMOTE_ADDR'], 'Navn'=>$navn, 'Mail'=>$mail, 'Id'=>$id);
unset($pass);
return $info;
}else{
functions('errorTjek');
return $error = error('ipError');
}
}else{
functions('errorTjek');
return $error = error('aktiveringsError');
}
}else{
functions('errorTjek');
return $error = error('stringError');
}
}else{
functions('errorTjek');
return $error = error('noMatch');
}
}else{
functions('errorTjek');
return $error = error('emailError');
}
}
?>
Hvad er fejlen? Og hvad kan jeg ellers gøre for at optimere og gør min kode mere sikker.
//DePlex