Fixing export/import session list from CSV/XML see #4069

skala
Julio Montoya 14 years ago
parent 88c2054453
commit d813a5463f
  1. 30
      main/admin/add_users_to_session.php
  2. 2
      main/admin/course_add.php
  3. 2
      main/admin/course_import.php
  4. 5
      main/admin/resume_session.php
  5. 52
      main/admin/session_export.php
  6. 144
      main/admin/session_import.php
  7. 3
      main/create_course/add_course.php
  8. 110
      main/inc/lib/course.lib.php
  9. 27
      main/inc/lib/sessionmanager.lib.php
  10. 3
      main/inc/lib/usermanager.lib.php

@ -5,7 +5,7 @@
*/
// name of the language file that needs to be included
$language_file=array('admin','registration');
$language_file = array('admin','registration');
// resetting the course id
$cidReset = true;
@ -59,8 +59,7 @@ if (!api_is_platform_admin()) {
}
//checking for extra field with filter on
require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
require_once api_get_path(LIBRARY_PATH).'sessionmanager.lib.php';
$extra_field_list= UserManager::get_extra_fields();
$new_field_list = array();
if (is_array($extra_field_list)) {
@ -218,24 +217,19 @@ $users=$sessions=array();
$noPHP_SELF=true;
if($_POST['form_sent']) {
$form_sent=$_POST['form_sent'];
$firstLetterUser=$_POST['firstLetterUser'];
$firstLetterSession=$_POST['firstLetterSession'];
$UserList=$_POST['sessionUsersList'];
$ClassList=$_POST['sessionClassesList'];
if(!is_array($UserList)) {
$form_sent = $_POST['form_sent'];
$firstLetterUser = $_POST['firstLetterUser'];
$firstLetterSession = $_POST['firstLetterSession'];
$UserList = $_POST['sessionUsersList'];
$ClassList = $_POST['sessionClassesList'];
if (!is_array($UserList)) {
$UserList=array();
}
if ($form_sent == 1) {
//added a parameter to send emails when registering a user
//added a parameter to send emails when registering a user
SessionManager::suscribe_users_to_session($id_session, $UserList, null, true);
//adding the session to the access_url_rel_session table
//if(empty($_GET['add']))
//header('Location: '.Security::remove_XSS($_GET['page']).'?id_session='.$id_session);
//else
header('Location: resume_session.php?id_session='.$id_session);
exit;
}
@ -247,9 +241,7 @@ Display::display_header($tool_name);
$nosessionUsersList = $sessionUsersList = array();
/*$sql = 'SELECT COUNT(1) FROM '.$tbl_user;
$rs = Database::query($sql);
$count_courses = Database::result($rs, 0, 0);*/
$ajax_search = $add_type == 'unique' ? true : false;
global $_configuration;

@ -153,7 +153,7 @@ if ($form->validate()) {
$exemplary_content = empty($course['exemplary_content']) ? false : true;
$disk_quota = $course['disk_quota'];
$course_info = CourseManager::create_course($title, '', $exemplary_content,
$course_info = CourseManager::create_course($title, '', '', $exemplary_content,
$tutor_name, $category_code, $course_language, api_get_user_id(),
$department_name, $department_url, $disk_quota, $course['subscribe'], $course['unsubscribe'], $course['visibility'], $course_teachers);
header('Location: course_list.php');

@ -120,7 +120,7 @@ function save_data($courses) {
$uidCreator = 1;
}
$course_info = CourseManager::create_course($course['Title'], $course['Code'], false,
$course_info = CourseManager::create_course($course['Title'], $course['Code'], '', false,
$titular, $course['CourseCategory'], $course_language, $uidCreator);
if (!empty($course_info)) {
$msg .= '<a href="'.api_get_path(WEB_COURSE_PATH).$course_info['directory'].'/">'.$course_info['title'].'</a> '.get_lang('Created').'<br />';

@ -15,7 +15,9 @@ require_once '../inc/global.inc.php';
$this_section=SECTION_PLATFORM_ADMIN;
api_protect_admin_script(true);
$tool_name = get_lang('SessionOverview');
$interbreadcrumb[]=array('url' => 'index.php','name' => get_lang('PlatformAdmin'));
$interbreadcrumb[]=array('url' => 'session_list.php','name' => get_lang('SessionList'));
@ -48,7 +50,8 @@ if(!api_is_platform_admin() && $session['session_admin_id']!=$_user['user_id'])
$sql = 'SELECT name FROM '.$tbl_session_category.' WHERE id = "'.intval($session['session_category_id']).'"';
$rs = Database::query($sql);
$session_category = '';
if(Database::num_rows($rs)>0) {
if (Database::num_rows($rs)>0) {
$rows_session_category = Database::store_result($rs);
$rows_session_category = $rows_session_category[0];
$session_category = $rows_session_category['name'];

@ -30,25 +30,26 @@ $tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_U
$archivePath = api_get_path(SYS_ARCHIVE_PATH);
$archiveURL = api_get_path(WEB_CODE_PATH).'course_info/download.php?archive=';
$archiveURL = api_get_path(WEB_CODE_PATH).'course_info/download.php?archive=';
$tool_name = get_lang('ExportSessionListXMLCSV');
global $_configuration;
$tool_name = get_lang('ExportSessionListXMLCSV');
$interbreadcrumb[] = array('url' => 'index.php',"name" => get_lang('PlatformAdmin'));
set_time_limit(0);
if ($_POST['formSent'] )
{
if ($_POST['formSent']) {
$formSent = $_POST['formSent'];
$file_type = ($_POST['file_type'] == 'csv')?'csv':'xml';
$session_id = $_POST['session_id'];
if (empty($session_id))
{
if (empty($session_id)) {
$sql = "SELECT id,name,id_coach,username,date_start,date_end,visibility,session_category_id FROM $tbl_session INNER JOIN $tbl_user
ON $tbl_user.user_id = $tbl_session.id_coach ORDER BY id";
global $_configuration;
if ($_configuration['multiple_access_urls']) {
$tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();
@ -248,13 +249,9 @@ if ($_POST['formSent'] )
// display the header
Display::display_header($tool_name);
// display the tool title
// api_display_tool_title($tool_name);
//select of sessions
$sql = "SELECT id, name FROM $tbl_session ORDER BY name";
global $_configuration;
if ($_configuration['multiple_access_urls']) {
$tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();
@ -270,25 +267,17 @@ if ($_configuration['multiple_access_urls']) {
$result=Database::query($sql);
$Sessions=Database::store_result($result);
?>
<?php
if(!empty($errorMsg))
{
echo '<div class="actions">';
echo '<a href="../admin/index.php">'.Display::return_icon('back.png', get_lang('BackTo').' '.get_lang('PlatformAdmin'),'','32').'</a>';
echo '</div>';
if(!empty($errorMsg)) {
Display::display_normal_message($errorMsg, false); //main API
}
?>
<form method="post" action="<?php echo api_get_self(); ?>" style="margin:0px;">
<input type="hidden" name="formSent" value="1">
<?php
echo '<div class="actions">';
echo '<a href="../admin/index.php">'.Display::return_icon('back.png', get_lang('BackTo').' '.get_lang('PlatformAdmin'),'','32').'</a>';
echo '</div>';
//echo '<div class=row><div class="form_header">';
//echo $tool_name;
//echo '</div></div>';
?>
<table border="0" cellpadding="5" cellspacing="0">
<tr>
<td nowrap="nowrap" valign="top"><?php echo get_lang('OutputFileType'); ?> :</td>
@ -303,15 +292,12 @@ echo '</div>';
<option value=""><?php echo get_lang('AllSessions') ?></option>
<?php
foreach($Sessions as $enreg)
{
foreach($Sessions as $enreg) {
?>
<option value="<?php echo $enreg['id']; ?>" <?php if($session_id == $enreg['id']) echo 'selected="selected"'; ?>><?php echo $enreg['name']; ?></option>
<option value="<?php echo $enreg['id']; ?>" <?php if($session_id == $enreg['id']) echo 'selected="selected"'; ?>>
<?php echo $enreg['name']; ?></option>
<?php
}
unset($Courses);
?>
@ -325,12 +311,10 @@ unset($Courses);
</tr>
</table>
</form>
<?php
/*
==============================================================================
FOOTER
==============================================================================
*/
Display::display_footer();
?>
Display::display_footer();

@ -14,10 +14,8 @@ $this_section = SECTION_PLATFORM_ADMIN;
api_protect_admin_script(true);
require_once api_get_path(LIBRARY_PATH).'fileManage.lib.php';
require api_get_path(CONFIGURATION_PATH).'add_course.conf.php';
require_once api_get_path(LIBRARY_PATH).'add_course.lib.inc.php';
require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php';
require_once api_get_path(LIBRARY_PATH).'urlmanager.lib.php';
$form_sent = 0;
$error_message = ''; // Avoid conflict with the global variable $error_msg (array type) in add_course.conf.php.
@ -41,6 +39,8 @@ $purification_option_for_usernames = false;
$inserted_in_course = array();
global $_configuration;
if ($_POST['formSent']) {
if (isset($_FILES['import_file']['tmp_name'])) {
$form_sent = $_POST['formSent'];
@ -110,8 +110,7 @@ if ($_POST['formSent']) {
// When it is applicable, adding the access_url rel user relationship too.
Database::query($sql);
$return = Database::insert_id();
global $_configuration;
require_once api_get_path(LIBRARY_PATH).'urlmanager.lib.php';
if ($_configuration['multiple_access_urls']) {
if (api_get_current_access_url_id() != -1) {
UrlManager::add_user_to_url($return, api_get_current_access_url_id());
@ -161,79 +160,28 @@ if ($_POST['formSent']) {
}
// Creating courses from <Sessions> <Courses> base node.
/*
if (count($root->Courses->Course) > 0) {
foreach ($root->Courses->Course as $courseNode) {
$course_code = trim(api_utf8_decode($courseNode->CourseCode));
$title = trim(api_utf8_decode($courseNode->CourseTitle));
$description = trim(api_utf8_decode($courseNode->CourseDescription));
$language = api_get_valid_language(api_utf8_decode($courseNode->CourseLanguage));
$username = trim(api_utf8_decode($courseNode->CourseTeacher));
$course_code = trim(api_utf8_decode($courseNode->CourseCode));
$title = trim(api_utf8_decode($courseNode->CourseTitle));
$description = trim(api_utf8_decode($courseNode->CourseDescription));
$language = api_get_valid_language(api_utf8_decode($courseNode->CourseLanguage));
$username = trim(api_utf8_decode($courseNode->CourseTeacher));
// Looking up for the teacher.
$sql = "SELECT user_id, lastname, firstname FROM $tbl_user WHERE username='$username'";
$rs = Database::query($sql);
list($user_id, $lastname, $firstname) = Database::fetch_array($rs);
global $_configuration;
$keys = define_course_keys($course_code, '', $_configuration['db_prefix']);
if (sizeof($keys)) {
$current_course_code = $keys['visual_code'];
$current_course_id = $keys['currentCourseId'];
if (empty($current_course_code)) {
$current_course_code = $current_course_id;
}
$current_course_db_name = $keys['currentCourseDbName'];
$current_course_repository = $keys['currentCourseRepository'];
// Course creation.
if ($current_course_id == api_strtoupper($course_code)) {
if (empty ($title)) {
$title = $keys['currentCourseCode'];
}
prepare_course_repository($current_course_repository, $current_course_id);
update_Db_course($current_course_db_name);
$pictures_array = fill_course_repository($current_course_repository);
//fill_Db_course($current_course_db_name, $current_course_repository, 'english', $pictures_array);
//register_course($current_course_id, $current_course_code, $current_course_repository, $current_course_db_name, "$lastname $firstname", $course['unit_code'], addslashes($course['FR']['title']), $language, $user_id);
fill_Db_course($current_course_db_name, $current_course_repository, $language, $pictures_array);
register_course($current_course_id, $current_course_code, $current_course_repository, $current_course_db_name, api_get_person_name($firstname, $lastname, null, null, $language), null, addslashes($title), $language, $user_id);
$sql = "INSERT INTO ".$tbl_course." SET
code = '".$current_course_id."',
db_name = '".$current_course_db_name."',
directory = '".$current_course_repository."',
course_language = '".$language."',
title = '".$title."',
description = '".lang2db($description)."',
category_code = '',
visibility = '".$defaultVisibilityForANewCourse."',
show_score = '',
disk_quota = NULL,
creation_date = now(),
expiration_date = NULL,
last_edit = now(),
last_visit = NULL,
tutor_name = '".api_get_person_name($firstname, $lastname, null, null, $language)."',
visual_code = '".$current_course_code."'";
Database::query($sql);
$sql = "INSERT INTO ".$tbl_course_user." SET
course_code = '".$current_course_id."',
user_id = '".$user_id."',
status = '1',
role = '".lang2db('Professor')."',
tutor_id='1',
sort='". ($sort + 1)."',
user_course_cat='0'";
Database::query($sql);
}
if (empty($title)) {
$title = $course_code;
}
$course_info = CourseManager::create_course($title, $course_code, lang2db($description), false,
api_get_person_name($firstname, $lastname, null, null, $language), '', $language, $user_id);
}
}
}*/
// Creating sessions from <Sessions> base node.
if (count($root->Session) > 0) {
@ -554,11 +502,11 @@ if ($_POST['formSent']) {
$user_counter = 0;
$course_counter = 0;
$session_name = $enreg['SessionName'];
$date_start = $enreg['DateStart'];
$date_end = $enreg['DateEnd'];
$visibility = $enreg['Visibility'];
$session_category_id = $enreg['SessionCategory'];
$session_name = $enreg['SessionName'];
$date_start = $enreg['DateStart'];
$date_end = $enreg['DateEnd'];
$visibility = $enreg['Visibility'];
$session_category_id = $enreg['SessionCategory'];
// Searching a coach.
if (!empty($enreg['Coach'])) {
@ -684,33 +632,38 @@ if ($_POST['formSent']) {
id_session='$session_id'";
$rs_course = Database::query($sql_course);
$course_counter++;
$course_split = array();
$tok = strtok($course, '[]');
while ($tok !== false) {
$course_split[] = $tok;
$tok = strtok('[]');
$pattern = "/\[(.*?)\]/";
preg_match_all($pattern, $course, $matches);
if (isset($matches[1])) {
$course_coaches = $matches[1][0];
$course_users = $matches[1][1];
}
$course_coaches = explode(',', $course_split[1]);
$course_users = explode(',', $course_split[2]);
// Adding coaches to session course user.
foreach ($course_coaches as $course_coach) {
$coach_id = UserManager::get_user_id_from_username($course_coach);
if ($coach_id !== false) {
$sql = "INSERT IGNORE INTO $tbl_session_course_user SET
id_user='$coach_id',
course_code='$course_code',
id_session = '$session_id',
status = 2 ";
$rs_coachs = Database::query($sql);
} else {
$error_message .= get_lang('UserDoesNotExist').' : '.$user.'<br />';
$course_users = explode(',', $course_users);
$course_coaches = explode(',', $course_coaches);
var_dump($course_coaches, $course_users);
// Adding coaches to session course user
if (!empty($course_coaches)) {
foreach ($course_coaches as $course_coach) {
$coach_id = UserManager::get_user_id_from_username($course_coach);
if ($coach_id !== false) {
$sql = "INSERT IGNORE INTO $tbl_session_course_user SET
id_user='$coach_id',
course_code='$course_code',
id_session = '$session_id',
status = 2 ";
$rs_coachs = Database::query($sql);
} else {
$error_message .= get_lang('UserDoesNotExist').' : '.$user.'<br />';
}
}
}
$users_in_course_counter = 0;
// Adding the relationship "Session - Course - User".
foreach ($course_users as $user) {
$user_id = UserManager::get_user_id_from_username($user);
@ -795,6 +748,7 @@ if ($_POST['formSent']) {
}
}
}
if (!empty($error_message)) {
$error_message = get_lang('ButProblemsOccured').' :<br />'.$error_message;
}

@ -231,7 +231,8 @@ if ($form->validate()) {
if ($course_code_ok) {
if (!$course_validation_feature) {
$course_info = CourseManager::create_course($title, $wanted_code, $exemplary_content, $tutor_name, $category_code, $course_language);
$course_info = CourseManager::create_course($title, $wanted_code, '', $exemplary_content,
$tutor_name, $category_code, $course_language);
if (!empty($course_info)) {
$directory = $course_info['directory'];

@ -115,6 +115,62 @@ $coursesRepositories = $_configuration['root_sys'];
* @package chamilo.library
*/
class CourseManager {
/**
* Creates a course
* @param string course title
* @param bool add example content or not
* @param mixed false if the course was not created, array with the course info
*/
function create_course($title, $wanted_code = '', $description = '', $fill_with_exemplary_content = false,
$tutor_name = '', $category_code = '', $course_language = '', $user_id = '',
$department_name = '', $department_url = '', $disk_quota = '',
$subscribe = '', $unsubscribe = '', $visibility = '', $expiration_date = '', $teacher_list = array()
) {
global $_configuration;
if (empty($title)) {
return false;
}
if (empty($wanted_code)) {
$wanted_code = $title;
// Check whether the requested course code has already been occupied.
$dbnamelength = strlen($_configuration['db_prefix']);
// Ensure the database prefix + database name do not get over 40 characters.
$maxlength = 40 - $dbnamelength;
$wanted_code = generate_course_code(api_substr($title, 0, $maxlength));
}
// Create the course immediately
$keys = define_course_keys($wanted_code);
if (count($keys)) {
$current_course_code = $keys['currentCourseCode'];
$current_course_id = $keys['currentCourseId'];
$current_course_repository = $keys['currentCourseRepository'];
$course_info = api_get_course_info($current_course_code);
if (empty($course_info)) {
$course_id = register_course($title, $current_course_id, $current_course_code, $current_course_repository,
$tutor_name, $category_code, $course_language, $user_id, $department_name, $department_url, $disk_quota,
$subscribe, $unsubscribe, $visibility, $expiration_date, $teacher_list);
if (!empty($course_id)) {
prepare_course_repository($current_course_repository, $current_course_id);
$pictures_array = fill_course_repository($current_course_repository, $fill_with_exemplary_content);
fill_Db_course($course_id, $current_course_repository, $course_language, $pictures_array, $fill_with_exemplary_content);
$course_info = api_get_course_info_by_id($course_id);
if (!empty($course_info)) {
return $course_info;
}
}
}
}
return false;
}
/**
* Returns all the information of a given coursecode
@ -3332,59 +3388,7 @@ class CourseManager {
return $wanted_code;
}
/**
* Creates a course
* @param string course title
* @param bool add example content or not
* @param mixed false if the course was not created, array with the course info
*/
function create_course($title, $wanted_code = '', $fill_with_exemplary_content = false,
$tutor_name = '', $category_code = '', $course_language = '', $user_id = '',
$department_name = '', $department_url = '', $disk_quota = '',
$subscribe = '', $unsubscribe = '', $visibility = '', $expiration_date = '', $teacher_list = array()
) {
global $_configuration;
if (empty($title)) {
return false;
}
if (empty($wanted_code)) {
$wanted_code = $title;
// Check whether the requested course code has already been occupied.
$dbnamelength = strlen($_configuration['db_prefix']);
// Ensure the database prefix + database name do not get over 40 characters.
$maxlength = 40 - $dbnamelength;
$wanted_code = generate_course_code(api_substr($title, 0, $maxlength));
}
// Create the course immediately
$keys = define_course_keys($wanted_code);
if (count($keys)) {
$current_course_code = $keys['currentCourseCode'];
$current_course_id = $keys['currentCourseId'];
$current_course_repository = $keys['currentCourseRepository'];
$course_info = api_get_course_info($current_course_code);
if (empty($course_info)) {
$course_id = register_course($title, $current_course_id, $current_course_code, $current_course_repository,
$tutor_name, $category_code, $course_language, $user_id, $department_name, $department_url, $disk_quota, $subscribe, $unsubscribe, $visibility, $expiration_date, $teacher_list);
if (!empty($course_id)) {
prepare_course_repository($current_course_repository, $current_course_id);
$pictures_array = fill_course_repository($current_course_repository, $fill_with_exemplary_content);
fill_Db_course($course_id, $current_course_repository, $course_language, $pictures_array, $fill_with_exemplary_content);
$course_info = api_get_course_info_by_id($course_id);
if (!empty($course_info)) {
return $course_info;
}
}
}
}
return false;
}
function is_user_accepted_legal($user_id, $course_code, $session_id = null) {
$user_id = intval($user_id);

@ -446,7 +446,7 @@ class SessionManager {
if ($send_email) {
//global $_configuration;
//sending emails only
if(is_array($user_list) && count($user_list)>0) {
if (is_array($user_list) && count($user_list)>0) {
foreach($user_list as $enreg_user) {
if (!in_array($enreg_user,$existingUsers )) {
//send email
@ -462,17 +462,9 @@ class SessionManager {
$emailsubject = '['.get_setting('siteName').'] '.get_lang('YourReg').' '.get_setting('siteName');
$emailheaders = 'From: '.get_setting('administratorName').' '.get_setting('administratorSurname').' <'.get_setting('emailAdministrator').">\n";
$emailheaders .= 'Reply-To: '.get_setting('emailAdministrator');
/*if (api_get_multiple_access_url()) {
$access_url_id = api_get_current_access_url_id();
if ($access_url_id){
$url = api_get_access_url($access_url_id);
$emailbody = get_lang('Dear')." ".stripslashes(api_get_person_name($firstname, $lastname)).",\n\n".sprintf(get_lang('YouAreRegisterToSessionX'),$session_name) ." \n\n" .get_lang('Address') ." ". get_setting('siteName') ." ". get_lang('Is') ." : ". $url['url'] ."\n\n". get_lang('Problem'). "\n\n". get_lang('Formula').",\n\n".get_setting('administratorName')." ".get_setting('administratorSurname')."\n". get_lang('Manager'). " ".get_setting('siteName')."\nT. ".get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".get_setting('emailAdministrator');
}
} else {*/
$emailbody = get_lang('Dear')." ".stripslashes(api_get_person_name($firstname, $lastname)).",\n\n".sprintf(get_lang('YouAreRegisterToSessionX'), $session_name) ." \n\n" .get_lang('Address') ." ". get_setting('siteName') ." ". get_lang('Is') ." : ". api_get_path(WEB_PATH) ."\n\n". get_lang('Problem'). "\n\n". get_lang('Formula').",\n\n".get_setting('administratorName')." ".get_setting('administratorSurname')."\n". get_lang('Manager'). " ".get_setting('siteName')."\nT. ".get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".get_setting('emailAdministrator');
//}
@api_send_mail($emailto, $emailsubject, $emailbody, $emailheaders);
}
@ -516,16 +508,18 @@ class SessionManager {
$update_sql = "UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users WHERE id_session='$id_session' AND course_code='$enreg_course'";
Database::query($update_sql);
}
// delete users from the session
if ($empty_users===true){
// Delete users from the session
if ($empty_users===true) {
Database::query("DELETE FROM $tbl_session_rel_user WHERE id_session = $id_session AND relation_type<>".SESSION_RELATION_TYPE_RRHH."");
}
// insert missing users into session
$nbr_users = 0;
// Insert missing users into session
$nbr_users = 0;
foreach ($user_list as $enreg_user) {
$enreg_user = Database::escape_string($enreg_user);
$nbr_users++;
$insert_sql = "INSERT IGNORE INTO $tbl_session_rel_user(id_session, id_user) VALUES('$id_session','$enreg_user')";
$insert_sql = "INSERT IGNORE INTO $tbl_session_rel_user (id_session, id_user) VALUES ('$id_session','$enreg_user')";
Database::query($insert_sql);
}
@ -539,7 +533,6 @@ class SessionManager {
echo $update_sql = "UPDATE $tbl_session SET nbr_users= nbr_users + $nbr_users WHERE id='$id_session' ";
Database::query($update_sql);
}
}
/**

@ -2067,6 +2067,9 @@ class UserManager {
* @return int User ID (or false if not found)
*/
public static function get_user_id_from_username($username) {
if (empty($username)) {
return false;
}
$username = Database::escape_string($username);
$t_user = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT user_id FROM $t_user WHERE username = '$username'";

Loading…
Cancel
Save