我应该为这些用户功能使用一个类吗

时间:2019-05-23 08:43:21

标签: php oop

我已经阅读了几篇文章,得出的结论是,使用类来存储用户信息比仅将其存储在数组中要好。我可以这样做,但问题是我有一些存储在变量中的用户注册字段,似乎无法弄清楚如何将其实现到用户类。
变量本身看起来很丑,我稍后将其放在sql表中。
我要使用它,以便admin / mod可以从控制面板轻松添加/删除/编辑用户注册字段。

我想知道我是否应该尝试使用类,也许可以从该类的变量(未来sql表)中获得有关如何使用用户注册信息的提示

// type = br - for new line with text or empty ; text - text field ; checkbox ...
// empty = check if empty
// repeat = check if exists
// min = minimum characters
// max = maximum characters
// preg = check preg
// value = default value of a field ; value to be displayed on new line as text
// values = values of a selecion field or smthing
// hide = Hides item from u - user view profile ; r - register menu ; e - edit profile menu ; c - control panel
$def_user_info = array(
"username"  => array("name" => "Потребителско име", "type" => "text", "empty" => 1, "repeat" => 1, "min" => 3, "max" => 20, "preg" => 1),
"space1"    => array("type" => "br", "value" => "<hr/>", "temp" => 1),
"email"     => array("name" => "E-mail", "type" => "email", "empty" => 1, "repeat" => 1, "min" => 3, "max" => 20),
"email2"    => array("name" => "Потвърждение на E-mailа", "type" => "email", "eq" => "email", "temp" => 1, "hide" => "uc"),
"space4"    => array("type" => "br", "value" => "Ще е нужно да потвърдите E-mailа си след смяна.", "temp" => 1),
"space5"    => array("type" => "br", "value" => "<hr/>", "temp" => 1),
"password"  => array("name" => "Парола", "type" => "password", "empty" => 1, "min" => 3, "max" => 20, "hide" => "uc"),
"password2" => array("name" => "Потвърждение на паролата", "type" => "password", "eq" => "password", "temp" => 1, "hide" => "uc"),
"password3" => array("name" => "Въведете сегашната си парола", "type" => "password", "temp" => 1, "hide" => "urc"),
"space6"    => array("type" => "br", "value" => "<hr/>", "temp" => 1),
"userkey"   => array("hide" => "urec")
);
$extra_user_info = array(
"name1"     => array("name" => "Име", "type" => "text", "empty" => 1, "min" => 3, "max" => 20),
"name2"     => array("name" => "Фамилия", "type" => "text", "empty" => 1, "min" => 3, "max" => 20),
"gender"    => array("name" => "Пол", "type" => "select", "values" => array("Мъж", "Жена", "Педерас", "Джендър", "Нещо друго"), "empty" => 1),
"space7"    => array("type" => "br", "value" => "<hr/>", "temp" => 1),
"signature" => array("name" => "Подпис", "type" => "text", "max" => 300, "hide" => "rc"),
"tos"       => array("name" => 'Приемам <a href="tos.php">Правилата и Условията</a> за използване на сайта', "type" => "checkbox", "value" => "1", "temp" => 1, "hide" => "ue")
);
$all_user_info = $def_user_info + $extra_user_info;
// what to be requested and checked on login
$login_request_info = array("username", "password");

// Create new user
function CreateUser($info)
{
    global $all_user_info;
    global $DB_USERS;
    global $db;
    $keys = '';
    $values = '';
    $i = 0;
    $info += ['last_time' => time(), 'reg_time' => time()];
    $size = count($info);
    foreach($info as $key => $val)
    {
        $i++;
        if(isset($all_user_info[$key]['temp']))
            continue;
        $keys = $keys . $key;
        $values = $values . "'" . $val . "'";
        if($size != $i)
        {
            $keys = $keys . ",";
            $values = $values . ",";
        }
        $keys = $keys . " ";
        $values = $values . " ";
    }
    $qry = "INSERT INTO " . $DB_USERS . " (" . $keys . ") VALUES (" . $values . ")";
    if($db->query($qry))
        return true;
    return false;
}```

0 个答案:

没有答案