コード例 #1
0
ファイル: database.class.php プロジェクト: namaris/Can_Pages
function writeForm($table = '')
{
    // rather than recursively calling query, insert all rows with one query
    global $general, $global_basedir, $settings;
    $_SESSION['errors'] = array();
    // prepare POST data for storage in database:
    // $keys
    // $values
    if ($table) {
        $keys = array();
        $values = array();
        $i = 1;
        // prepare day offs
        if ($table == 'outlets') {
            $dayoffs = '';
            for ($i = 1; $i <= 7; $i++) {
                $field = "outlet_closeday_" . $i;
                if (isset($_POST[$field])) {
                    $dayoffs .= $_POST[$field] . ",";
                }
            }
            if ($dayoffs != '') {
                $dayoffs = substr($dayoffs, 0, -1);
            }
            $keys[$i] = 'outlet_closeday';
            $values[$i] = "'" . $dayoffs . "'";
            $i++;
        }
        // prepare arrays for database query
        foreach ($_POST as $key => $value) {
            if ($key == 'saison_start_month' || $key == 'saison_start_day' || $key == 'saison_end_month' || $key == 'saison_end_day') {
                $saison_start = $_POST['saison_start_month'] . $_POST['saison_start_day'];
                $saison_end = $_POST['saison_end_month'] . $_POST['saison_end_day'];
            } else {
                if ($key == 'password') {
                    if ($value != "EdituseR") {
                        $keys[$i] = $key;
                        $dbAccess = array('dbHost' => $settings['dbHost'], 'dbName' => $settings['dbName'], 'dbUser' => $settings['dbUser'], 'dbPass' => $settings['dbPass'], 'dbPort' => $settings['dbPort']);
                        $insert = new flexibleAccess('', $dbAccess);
                        $password = $insert->hash_password($value);
                        $values[$i] = "'" . $password . "'";
                    }
                } else {
                    if ($key == 'outlet_child_capacity') {
                        // make value always positive
                        $keys[$i] = $key;
                        $values[$i] = "'" . abs($value) . "'";
                    } else {
                        if ($key == 'outlet_child_capacity') {
                            // make value always positive
                            $keys[$i] = $key;
                            $values[$i] = "'" . $value . "'";
                        } else {
                            if ($key == 'role') {
                                if ($value < 1 || $value > 6) {
                                    $value = 6;
                                }
                                // add role field
                                $keys[$i] = $key;
                                $values[$i] = "'" . $value . "'";
                            } else {
                                if ($key == 'contactform_color_scheme' || $key == 'contactform_background') {
                                    // settings table correct HEX color code
                                    $keys[$i] = $key;
                                    $values[$i] = "'" . substr($value, 1, 8) . "'";
                                } else {
                                    if ($key != "action" && $key != "email_type" && $key != "password2" && $key != "eventID" && $key != "e_datepicker" && $key != "ev_datepicker" && $key != "s_datepicker" && $key != "MAX_FILE_SIZE" && $key != "propertyID" && $key != "token" && $key != "verify" && $key != "PHPSESSID" && $key != "new" && substr($key, 0, 15) != "outlet_closeday") {
                                        // all other 'normal fields'
                                        $keys[$i] = $key;
                                        $values[$i] = "'" . $value . "'";
                                    }
                                }
                            }
                        }
                    }
                }
            }
            $i++;
        }
        // END foreach $_POST
        // build webform field on outlets
        if ($table == 'outlets') {
            $index = array_search('webform', $keys);
            if (!$index) {
                $keys[] = 'webform';
                $values[] = 0;
            }
        }
        // build outofill field on users
        if ($table == 'plc_users') {
            $index = array_search('autofill', $keys);
            if (!$index) {
                $keys[] = 'autofill';
                $values[] = 0;
            }
        }
        // img & logo upload
        // =-=-=-=-=-=
        // img upload
        if ($_FILES['img']['error'][0] > 0) {
            $_SESSION['errors'][] = _sorry;
        } else {
            if (($_FILES['img']["type"][0] == "image/gif" || $_FILES['img']["type"][0] == "image/jpeg" || $_FILES['img']["type"][0] == "image/png") && $_FILES['img']["size"][0] < 2000000) {
                //$imgName 	  = $_FILES['img_logo']['name'];
                $img_type = substr($_FILES['img']["type"][0], 6);
                $imgName = randomPassword(24, true, true, false) . "." . $img_type;
                $uploadpath = substr(dirname(__FILE__), 0, -7);
                $result = move_uploaded_file($_FILES['img']["tmp_name"][0], "../uploads/img/" . $imgName);
                $keys[] = 'img_filename';
                $values[] = "'" . $imgName . "'";
            }
        }
        // logo upload
        if ($_FILES['img']['error'][1] > 0) {
            $_SESSION['errors'][] = _sorry;
        } else {
            if (($_FILES['img']["type"][1] == "image/gif" || $_FILES['img']["type"][1] == "image/jpeg" || $_FILES['img']["type"][1] == "image/png") && $_FILES['img']["size"][1] < 2000000) {
                //$imgName 	  = $_FILES['img_logo']['name'];
                $img_type = substr($_FILES['img']["type"][1], 6);
                $imgName = randomPassword(24, true, true, false) . "." . $img_type;
                $uploadpath = substr(dirname(__FILE__), 0, -7);
                $result = move_uploaded_file($_FILES['img']["tmp_name"][1], "../uploads/logo/" . $imgName);
                $keys[] = 'logo_filename';
                $values[] = "'" . $imgName . "'";
            }
        }
        $_SESSION['reservation_date'] = date('Y-m-d', $reservation_date);
        $_SESSION['recurring_date'] = date('Y-m-d', $recurring_date);
        // outlets build start and enddate
        if ($saison_start != '' && $saison_end != '') {
            $keys[] = 'saison_start';
            $values[] = "'" . $saison_start . "'";
            $keys[] = 'saison_end';
            $values[] = "'" . $saison_end . "'";
        }
        // =-=-=-=Store in database =-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        // No reservation, everything else to store
        // enter into database
        // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        // number of database fields
        $max_keys = count($keys);
        $query = "INSERT INTO `{$table}` (" . implode(',', $keys) . ") VALUES (" . implode(',', $values) . ") ON DUPLICATE KEY UPDATE ";
        // Build 'on duplicate' query
        for ($i = 1; $i <= $max_keys; $i++) {
            if ($keys[$i] != '') {
                $query .= $keys[$i] . "=" . $values[$i] . ",";
            } else {
                $max_keys++;
            }
        }
        // run sql query
        $query = substr($query, 0, -1);
        //DEbugging
        //echo $query;
        $result = query($query);
        $new_id = mysql_insert_id();
        // Set STANDARD settings for new property
        if ($table == 'properties' && $_POST['new'] == 1) {
            include 'register/standard_settings.inc.php';
        }
        // -----
        return $new_id;
    }
}
コード例 #2
0
 $values[] = "'" . $_SESSION['selectedDate'] . "'";
 $_SESSION['errors'] = array();
 // prepare POST data for storage in database:
 // $keys
 // $values
 $keys = array();
 $values = array();
 $i = 2;
 // prepare arrays for database query
 foreach ($_POST as $key => $value) {
     if ($key == 'password') {
         if ($value != "EdituseR") {
             $keys[$i] = $key;
             $dbAccess = array('dbHost' => $settings['dbHost'], 'dbName' => $settings['dbName'], 'dbUser' => $settings['dbUser'], 'dbPass' => $settings['dbPass'], 'dbPort' => $settings['dbPort']);
             $insert = new flexibleAccess('', $dbAccess);
             $password = $insert->hash_password($value);
             $values[$i] = "'" . $password . "'";
         }
     } else {
         if ($key != "action" && $key != "email_type" && $key != "recurring_date" && $key != "recurring_dbdate" && $key != "password2" && $key != "eventID" && $key != "s_datepicker" && $key != "MAX_FILE_SIZE" && $key != "propertyID" && $key != "old_outlet_id" && $key != "token" && $key != "recurring_span" && $key != "reservation_bookingnumber" && $key != "limit_password" && $key != "verify") {
             $keys[$i] = $key;
             $values[$i] = "'" . $value . "'";
         }
     }
     // remember some values
     if ($key == "reservation_date") {
         $reservation_date = $value;
         $recurring_date = $reservation_date;
     } else {
         if ($key == "recurring_dbdate") {
             $recurring_date = $value;