[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: классы и объекты!!!
Страницы: 1, 2
redcass
Тема такова... Я пишу админку, интересно вот изучаю потихоньку, а тут на работе как раз админка нужна... Я заинтерисовался сделал ну слишком простую.... Сейчас смотрю примеры сложных но тупо код копировать не хочу!!! Помогите мне разобрать код пожалуйста)
redcass
Или это супер код, или я не знаю что тогда... В таблице на phpMyAdmin есть таблица Users в ней
столбец usr_is_admin! Значение у него 1 админ а 0 не админ.
Так вот я не могу понять где запрос к этой таблице к этому столбцу! Подскажите пожалуйста 3 суток капаюсь найти не могу(((
redcass

<?php
//Класс для подключения и управления базой данных mysql
require_once("constants.php");
require_once("utils.php");

class DBController
{

private $link;

public function __construct()
{
mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");
$this->link = mysqli_connect(DB_SERVER, DB_USER, DB_PASS,DB_NAME);
if (mysqli_connect_errno())
{
exit();
}
}


public function __destruct()
{
$this->disconnect();
}

public function confirmUserID($username, $userid)
{
$username = mysqli_real_escape_string($this->link,$username);

//Убедитесь, что пользователь находится в базе данных
$q = "SELECT usr_userid FROM users WHERE pk_user = '$username'";

$results = mysqli_query($this->link,$q);

if(!$results || (mysqli_num_rows($results) < 1))
{
mysqli_free_result($results);
return -1;
}

//Убедитесь, что пользователь находится в базе данных
$dbarray = mysqli_fetch_array($results,MYSQLI_ASSOC);
$dbarray['usr_userid'] = stripslashes($dbarray['usr_userid']);
$userid = stripslashes($userid);
mysqli_free_result($results);


if($userid == $dbarray['usr_userid'])
{
return 1; //Успеха! Username, userid подтвержден
}
else{
return -2; //Указывает что userid не потвержден
}
}




public function dbgetUserInfo($username){
$username = mysqli_real_escape_string($this->link,$username);
$q = "SELECT pk_user,email,usr_userid FROM users WHERE pk_user = '$username'";
$results = mysqli_query($this->link,$q);
if(!$results || (mysqli_num_rows($results) < 1)){
mysqli_free_result($results);
return NULL;
}
$dbarray = mysqli_fetch_array($results,MYSQLI_ASSOC);
mysqli_free_result($results);
return $dbarray;
}

//dbgetUserAccountDetails - возвращает результат в массив из mysql
//запрос с просьбой некоторые данные, касающиеся
//данный логин(email). Если запрос завершается ошибкой, возвращается значение NULL.

public function dbgetUserAccountDetailss($userkey)
{
$q = "SELECT U.*,C.country_name FROM users U,Country C WHERE U.pk_user = '$userkey' AND C.country_code = U.country_code";

$results = mysqli_query($this->link,$q);
//Ошибка, возвращает имя по умолчанию
if(!$results || (mysqli_num_rows($results) < 1))
{
mysqli_free_result($results);
return NULL;
}
//Возвращает (результат)result в массив
$dbarray = mysqli_fetch_array($results,MYSQLI_ASSOC);
mysqli_free_result($results);
return $dbarray;
}

public function user_confirm($urlemail,$urlhash)
{
$new_hash = sha1($urlemail.supersecret_hash_padding);
if ($new_hash && ($new_hash == $urlhash))
{
$q = "SELECT email FROM users WHERE usr_confirm_hash = '$new_hash'";
$results = mysqli_query($this->link,$q);

if (!$results || (mysqli_num_rows($results) < 1))
{
$feedback = 'ERROR -- Hash not found';
mysqli_free_result($results);
return $feedback;
}
else
{
// Подтвердить электронную почту и настройки учетных записей для активации
$email = $urlemail;
$hash = $urlhash;

$query = "UPDATE users SET usr_is_confirmed='1' WHERE usr_confirm_hash='$hash'";
mysqli_query($this->link,$query);
return 1;
}
}

else {
$feedback = 'ERROR -- Values do not match';
return $feedback;
}
}


//проверяет, является ли значение и соответствует ли оно полю в таблице пользователей
public function matchUserField($value,$field,$userkey)
{
$value = mysqli_real_escape_string($this->link,$value);
$q = "SELECT pk_user FROM users WHERE ".$field." = '$value' and pk_user = '$userkey'";

$results = mysqli_query($this->link,$q);
$numr = mysqli_num_rows($results);
mysqli_free_result($results);
return ($numr > 0);
}

//изменение сведений об учетной записи Пользователя, и возвращает 1, успешную
public function dbeditaccount($email, $flname, $country_code, $pass, $userkey)
{

$email = mysqli_real_escape_string($this->link,$email);
$pass = mysqli_real_escape_string($this->link,$pass);
$flname = mysqli_real_escape_string($this->link,$flname);
$country_code = mysqli_real_escape_string($this->link,$country_code);

//############### обновление ###############
mysqli_autocommit($this->link,FALSE);
mysqli_query($this->link,"SET NAMES 'utf8'");
$q="";
if($pass)
$q = "UPDATE users SET email='$email',flname='$flname',password='$pass',country_code='$country_code' where pk_user = '$userkey'";
else
$q = "UPDATE users SET email='$email',flname='$flname',country_code='$country_code' where pk_user = '$userkey'";

mysqli_query($this->link,$q);
if(mysqli_errno($this->link))
{
mysqli_rollback($this->link);
return -1;
}
else
{
mysqli_commit($this->link);
return 1;
}
return -1;
}

//проверяет, есть ли страна, вводимая пользователем, существует ли она в таблице "страны". Возвращает идентификатор страны, или null
public function dbexistsCountry($country_name)
{
$country_name_lower = mb_strtolower(html_entity_decode($country_name,ENT_NOQUOTES, 'UTF-8'));
$q = "SELECT country_code FROM Country WHERE LOWER(country_name) = '$country_name_lower'";
$results = mysqli_query($this->link,$q);
if(!$results || (mysqli_num_rows($results) < 1))
{
mysqli_free_result($results);
return null; //ошибка выбора страны
}
$dbarray = mysqli_fetch_array($results,MYSQLI_ASSOC);
$dbarray['country_code'] = stripslashes($dbarray['country_code']);
mysqli_free_result($results);
return $dbarray['country_code'];
}

//Увеличивает количество учетных записей пользователя
public function incrementLogins($userkey)
{
$q = "SELECT usr_nmb_logins FROM users WHERE pk_user = '$userkey'";
$results = mysqli_query($this->link,$q);
if(!$results || (mysqli_num_rows($results) < 1))
{
mysqli_free_result($results);
return -1;
}
else
{
$dbarray = mysqli_fetch_array($results,MYSQLI_ASSOC);
$nmb_logins = $dbarray['usr_nmb_logins'];
$nmb_logins_inc = $nmb_logins + 1 ;
mysqli_free_result($results);
mysqli_autocommit($this->link,FALSE);
$qu = "update users set usr_nmb_logins = '$nmb_logins_inc' WHERE pk_user = '$userkey'";
mysqli_query($this->link,$qu);
if(mysqli_errno($this->link))
{
mysqli_rollback($this->link);
return -2;//Указывает на ошибку при обновлении строки
}
else
{
mysqli_commit($this->link);
return 1;
}
}

return -3;
}

//Возвращает массив с пользователями на Country info
//Примечание: это только для пользователей, которые подтвердили свои учетные записи !
//Она не включает в себя пользователя(admin)

public function getUsersPerCountry($userkey)
{
$q = "SELECT COUNT(*) AS value,users.country_code,country_name FROM users INNER JOIN Country ON Country.country_code = users.country_code WHERE usr_is_confirmed=1 and pk_user <> '$userkey' GROUP BY users.country_code";
$results = mysqli_query($this->link,$q);
/* Error occurred, return given name by default */
if(!$results || (mysqli_num_rows($results) < 1)){
mysqli_free_result($results);
return NULL;
}


//Возвращаем результат в массив
$aResults = array();
while ($row = $results->fetch_assoc())
{
$aResults[] = array( "country_name"=>$row['country_name'] ,"value"=>$row['value']);
}
mysqli_free_result($results);
return $aResults;
}

//возвращает масив с данными пользователя
public function getUsersData($userkey)
{
mysqli_query($this->link,"SET NAMES 'utf8'");
$q = "SELECT pk_user,country_name,email,flname,usr_ip,usr_nmb_logins,usr_signup_date,usr_is_blocked FROM users INNER JOIN Country ON Country.country_code=users.country_code WHERE usr_is_confirmed=1 and pk_user <> '$userkey'";
$results = mysqli_query($this->link,$q);
//Произошла ошибка, возвращает имя по умолчанию
if(!$results || (mysqli_num_rows($results) < 1))
{
mysqli_free_result($results);
return NULL;
}
//возвращаем результат массива
$aResults = array();
while ($row = $results->fetch_assoc())
{
$aResults[] = array( "pk_user"=>$row['pk_user'] ,"country_name"=>$row['country_name'] ,"email"=>$row['email'],"flname"=>$row['flname'],"usr_ip"=>$row['usr_ip'],"usr_nmb_logins"=>$row['usr_nmb_logins'],"usr_signup_date"=>$row['usr_signup_date'],"usr_is_blocked"=>$row['usr_is_blocked']);
}
mysqli_free_result($results);
return $aResults;
}

//query - запрос, выполняет запрос к базе данных и
//возвращает результат, который может быть false, true или
//идентификатор ресурса.

public function query($query)
{
return mysqli_query($this->link,$query);
}

public function disconnect()
{
mysqli_close($this->link);
}


}

?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.