Esempio n. 1
0
/**
 * import uploaded list records to current list
 * this function is registered in xajax
 * @param string $list_title title of list
 * @param string $file_specs specifications of uploaded file to be precessed
 * @return xajaxResponse every xajax registered function needs to return this object
 */
function action_import_list_records($list_title, $file_specs, $field_seperator)
{
    global $logging;
    global $user;
    global $list_table_configuration;
    global $user_start_time_array;
    global $firstthingsfirst_field_descriptions;
    $file_specs_array = explode("|", $file_specs);
    $file_name = $file_specs_array[0];
    $file_org_name = $file_specs_array[1];
    $file_size = $file_specs_array[2];
    $file_type = $file_specs_array[3];
    $logging->error("USER_ACTION " . __METHOD__ . " (user="******", list_title={$list_title}, file_name={$file_name} ({$file_size}), field_seperator={$field_seperator})");
    # store start time
    $user_start_time_array[__METHOD__] = microtime(TRUE);
    # create necessary objects
    $result = new Result();
    $response = new xajaxResponse();
    $html_database_table = new HtmlDatabaseTable($list_table_configuration);
    # check if a file_name has been given
    if ($file_name == "NO_FILE") {
        $logging->warn("no file was uploaded");
        set_error_message("button_import", "above", "ERROR_UPLOAD_SELECT_FILE", "", "", $response);
        return $response;
    }
    $full_file_name = "uploads/{$file_name}";
    # create list table object
    $list_table = new ListTable($list_title);
    if ($list_table->get_is_valid() == FALSE) {
        $logging->warn("create list object returns false");
        $error_message_str = $list_table->get_error_message_str();
        $error_log_str = $list_table->get_error_log_str();
        $error_str = $list_table->get_error_str();
        set_error_message("button_import", "above", $error_message_str, $error_log_str, $error_str, $response);
        return $response;
    }
    $logging->debug("starting to read uploaded file ({$full_file_name}=" . $full_file_name . ")");
    if (file_exists($full_file_name) == FALSE) {
        $logging->warn("cannot find uploaded file");
        set_error_message("button_import", "above", "ERROR_UPLOAD_FILE_NOT_FOUND", "", "", $response);
        return $response;
    }
    $fields = $list_table->get_fields();
    # line number counter
    $line_number = 1;
    # database field names of all columns to import
    $import_db_field_names = array_slice($list_table->get_db_field_names(), 1);
    $num_of_import_db_field_names = count($import_db_field_names);
    # open file to import
    $file_handler = fopen($full_file_name, "r");
    if ($file_handler == FALSE) {
        $logging->warn("could not open file to import (file_name={$full_file_name})");
        set_error_message("button_import", "above", "ERROR_UPLOAD_COULD_NOT_OPEN", "", "", $response);
        return $response;
    }
    # read a line from the file to import
    while (($line_array = fgetcsv($file_handler, 10000, $field_seperator)) !== FALSE) {
        $logging->debug("reading line (line_number={$line_number})");
        # add dummy column for attachments
        array_push($line_array, "@");
        $num_of_columns = count($line_array);
        # check if number of columns is correct
        if ($num_of_columns != $num_of_import_db_field_names) {
            $logging->warn("wrong colum count (num_of_columns={$num_of_columns}, num_of_import_db_field_names={$num_of_import_db_field_names})");
            $error_message_str = "LABEL_IMPORT_LINE_NUMBER {$line_number} <br> ERROR_IMPORT_WRONG_COLUMN_COUNT";
            set_error_message("button_import", "above", $error_message_str, "", "", $response);
            return $response;
        }
        $insert_array = array();
        $counter = 0;
        # create an array with all db_field_names and values from file
        foreach ($import_db_field_names as $db_field_name) {
            $field_name = $fields[$db_field_name][0];
            $field_type = $fields[$db_field_name][1];
            $check_functions = explode(" ", $firstthingsfirst_field_descriptions[$field_type][FIELD_DESCRIPTION_FIELD_INPUT_CHECKS]);
            $result->reset();
            # check field values and store new field value in result
            check_field($check_functions, $db_field_name, $line_array[$counter], $user->get_date_format(), $result);
            if (strlen($result->get_error_message_str()) > 0) {
                $error_message_str = "LABEL_IMPORT_LINE_NUMBER {$line_number} <br> LABEL_IMPORT_FIELDNAME {$field_name} <br> " . $result->get_error_message_str();
                #$error_message_str = $result->get_error_message_str();
                set_error_message(button_import, "above", $error_message_str, "", "", $response);
                return $response;
            }
            $logging->debug("field (name={$db_field_name}, type={$field_type}, content=" . $result->get_result_str() . ")");
            # convert auto created and auto modified fields
            if ($field_type == FIELD_TYPE_DEFINITION_AUTO_CREATED || $field_type == FIELD_TYPE_DEFINITION_AUTO_MODIFIED) {
                $insert_array[$db_field_name] = 0;
            }
            # store the new field value (either as note or as normal value)
            if ($field_type == FIELD_TYPE_DEFINITION_NOTES_FIELD) {
                $insert_array[$db_field_name] = array(array(0, $result->get_result_str()));
            } else {
                if ($field_type == FIELD_TYPE_DEFINITION_ATTACHMENTS) {
                    $insert_array[$db_field_name] = array(array(0, LISTTABLEATTACHMENT_EMPTY_ATTACHMENT . "|-|-|-"));
                } else {
                    $insert_array[$db_field_name] = $result->get_result_str();
                }
            }
            $counter++;
        }
        # insert a line
        $return_value = $list_table->insert($insert_array, $user->get_name());
        if ($return_value == 0) {
            $logging->warn("insert list record returns false");
            $error_message_str = LABEL_IMPORT_LINE_NUMBER . " {$line_number} <br> " . $result->get_error_message_str();
            #$error_message_str = $list_table->get_error_message_str();
            $error_log_str = $list_table->get_error_log_str();
            $error_str = $list_table->get_error_str();
            set_error_message("button_import", "above", $error_message_str, $error_log_str, $error_str, $response);
            return $response;
        }
        $line_number++;
    }
    $logging->debug("imported all lines from file (line_number={$line_number})");
    # delete the import file
    fclose($file_handler);
    unlink($full_file_name);
    # set content
    $result->reset();
    $html_database_table->get_content($list_table, $list_title, "", DATABASETABLE_UNKWOWN_PAGE, $result);
    $response->custom_response->assign_with_effect(LIST_CSS_NAME_PREFIX . "content_pane", $result->get_result_str());
    # set action pane
    $html_str = $html_database_table->get_action_bar($list_title, "");
    $response->custom_response->assign_with_effect("action_pane", $html_str);
    # set footer
    $response->assign("footer_text", "innerHTML", get_footer($list_table->get_creator_modifier_array()));
    # check post conditions
    if (check_postconditions($result, $response) == FALSE) {
        return $response;
    }
    set_info_message("action_bar_button_import", "above", "LABEL_IMPORT_SUCCESS", $response);
    # log total time for this function
    $logging->info(get_function_time_str(__METHOD__));
    return $response;
}
Esempio n. 2
0
<?php

include "functions.php";
$user = current_user();
if (isset($user['login'])) {
    header("Location: ./index.php");
}
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $user = get_user($_POST['login'], $_POST['password'], true);
    if (isset($user['login'])) {
        set_info_message("You are successfully logged in");
        header("Location: ./index.php");
    } else {
        $error = "Invalid username or password";
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head profile="http://www.webdevout.net/profile/1.5/">
        <title>My Avatar :: Login</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	    <meta http-equiv="X-UA-Compatible" content="IE=7" />
		<style type="text/css" media="all">
	        @import url(./stylesheets/reset.css);
	        @import url(./stylesheets/generic.css);
	    </style>
	    <!--[if IE]>
			<style type="text/css" media="all"> @import url(./stylesheets/ie.css); </style>
		<![endif]-->
/**
 * create a new list
 * this function is registered in xajax
 * @todo check if all fields are unique
 * @param string $title title of the new list
 * @param string $description description of the new list
 * @param array $definition defintion of current list that is being build
 * @return xajaxResponse every xajax registered function needs to return this object
 */
function action_create_list($title, $description, $definition)
{
    global $logging;
    global $user;
    global $list_table_description;
    global $user_start_time_array;
    $logging->info("USER_ACTION " . __METHOD__ . " (user="******", title={$title})");
    # store start time
    $user_start_time_array[__METHOD__] = microtime(TRUE);
    # create necessary objects
    $response = new xajaxResponse();
    # check if title and description have been given
    if (!check_title_and_description($title, $description, $response)) {
        return $response;
    }
    # check if the new definition is correct
    $new_definition = check_definition($definition, $response);
    if (count($new_definition) == 0) {
        return $response;
    }
    # transform the new definition to the correct format
    $correct_definition = array();
    foreach ($new_definition as $field_definition) {
        $correct_definition[$field_definition[0]] = array($field_definition[1], $field_definition[2], $field_definition[3]);
    }
    $name_values_array = array();
    $name_values_array[LISTTABLEDESCRIPTION_TITLE_FIELD_NAME] = $title;
    $name_values_array[LISTTABLEDESCRIPTION_DESCRIPTION_FIELD_NAME] = $description;
    $name_values_array[LISTTABLEDESCRIPTION_DEFINITION_FIELD_NAME] = $correct_definition;
    $name_values_array[LISTTABLEDESCRIPTION_ACTIVE_RECORDS_FIELD_NAME] = 0;
    $name_values_array[LISTTABLEDESCRIPTION_ARCHIVED_RECORDS_FIELD_NAME] = 0;
    $name_values_array[LISTTABLEDESCRIPTION_CREATOR_FIELD_NAME] = 0;
    $name_values_array[LISTTABLEDESCRIPTION_MODIFIER_FIELD_NAME] = 0;
    # insert new description
    if ($list_table_description->insert($name_values_array) == FALSE) {
        $logging->warn("insert list description returns false");
        $error_message_str = $list_table_description->get_error_message_str();
        $error_log_str = $list_table_description->get_error_log_str();
        $error_str = $list_table_description->get_error_str();
        set_error_message("action_bar_button_create", "above", $error_message_str, $error_log_str, $error_str, $response);
        return $response;
    }
    # create new list_table
    $list_table = new ListTable($title);
    if ($list_table->get_is_valid() == FALSE || $list_table->create() == FALSE) {
        $logging->warn("create list returns false");
        $error_message_str = $list_table->get_error_message_str();
        $error_log_str = $list_table->get_error_log_str();
        $error_str = $list_table->get_error_str();
        set_error_message("action_bar_button_create", "above", $error_message_str, $error_log_str, $error_str, $response);
        return $response;
    }
    set_info_message("action_bar_button_create", "above", "LABEL_NEW_LIST_CREATED", $response);
    # log total time for this function
    $logging->info(get_function_time_str(__METHOD__));
    return $response;
}
Esempio n. 4
0
<?php

include "functions.php";
if (!isset($_SESSION)) {
    session_start();
}
$_SESSION = array();
set_info_message("You've successfully logged out");
header("Location: ./index.php");
mysql_close();
Esempio n. 5
0
 if ($_POST['password'] != $_POST['password_confirmation']) {
     $error .= "Passwords not matching <br />";
 }
 if (strlen($_POST['password']) < 8 || strlen($_POST['password']) > 32) {
     $error .= "Password length should be between 8 and 32 <br />";
 }
 if (!($_POST['terms'] == "on")) {
     $error .= "Terms and Conditions not accepted <br />";
 }
 if ($error != "") {
     $error .= "Thats why, you should have enabled javascript. I was checking there";
 } else {
     // Okay, now all the paramters are checked on the back end. Now, we can continue.
     $res = create_new_user($_POST['login'], $_POST['email'], $_POST['password']);
     if ($res) {
         set_info_message("Succesfully registered your account. Please login");
         header("Location: ./login.php");
     } else {
         if ($res == -1) {
             $error = "Login id already taken";
         } else {
             if ($res == -2) {
                 $error = "An account has already been registered with the given email id";
             } else {
                 if ($res == -3) {
                     $error = "Login already taken and email is already used register";
                 }
             }
         }
     }
 }