Ciao belli, ho scritto una classe in php, è la mia prima classe come si deve, volevo chiedervi un aiutino! la classe funziona e viene correttamente richiamata dal file login.php due directory più in alto, non ci sono problemi, volevo solamente chiedervi se possono esserci magari problemi di sicurezza, ecco a voi:
Codice PHP:
<?
$obj = new dos();
$obj-> login('Salvy',base64_encode('12345678'));
class dos{
public function login($UserName,$Base64Pass){
include('config.php');
$db = mysql_connect($dbhost, $dbuser, $dbpasswd);
mysql_select_db($dbname, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
/*Gestita connessione al database */
session_start();
$query = "SELECT * FROM reg_users WHERE UserName='".$UserName."' AND PassWord='".$Base64Pass."'";
$x = mysql_query ($query, $db);
if(mysql_num_rows($x)==1){/* 2 Se i dati inseriti sono giusti... fai questo... */
if($this->check_if_right(mysql_fetch_array($x))){
$query="UPDATE reg_users SET session= NULL WHERE session ='".$_COOKIE['PHPSESSID']."'";
if(!mysql_query ($query, $db)){
echo("Si e' verificato un problema interno. Riprova ad effettuare il login!");
session_destroy();
}
$query="UPDATE reg_users SET session ='".addslashes($_COOKIE['PHPSESSID'])."' WHERE UserName = '".$UserName."' AND PassWord='".$Base64Pass."'";
if(mysql_query ($query, $db)){
echo("Hai effettuato il login.");
}
else{
echo("Ciao ".$UserName. " Ci sono problemi interni, riprova tra poco.");
}
}
else{
echo($this->check_if_right(mysql_fetch_array($x)));
}
}
else{
echo("Errore durante il log-in. Username o Password inesatte :( "); return false;}/* 2 END Se i dati inseriti sono giusti... fai questo... */
mysql_close($db);
}
public function check_if_right($Array){
if($Array['status']=='BANNED'){/* 4 Se l'utente è bannato... fai questo... */
session_destroy();
echo('Spiacente, sei stato bannato!');
return false;
}
else if($Array['validate']=='FALSE'){/* 3 Se l'utente non ha validato l'account... fai questo... */
session_destroy();
echo('Spiacente, non hai ancora validato il tuo account!');
return false;
}
else{
return true;
}
}
}
?>
Il mio problema è che forse faccio confusione con public e private, ho paura >.<
Non è che magari qualcuno include questo file da un altro server, e fa qualcosa del tipo
$obj = new dos();
echo($obj->dbpasswd);
aiutoooooooooooooooooooooooooooooooooooooooooooooo o