You are here

function webform_submission_insert in Webform 5.2

Same name and namespace in other branches
  1. 6.3 includes/webform.submissions.inc \webform_submission_insert()
  2. 6.2 webform_submissions.inc \webform_submission_insert()
  3. 7.4 includes/webform.submissions.inc \webform_submission_insert()
  4. 7.3 includes/webform.submissions.inc \webform_submission_insert()
1 call to webform_submission_insert()
webform_client_form_submit in ./webform.module

File

./webform_submissions.inc, line 50
This file is loaded when handling submissions, either submitting new, editing, or viewing. It also contains all CRUD functions for submissions.

Code

function webform_submission_insert($node, $submitted) {
  global $user;
  $sid = db_next_id('{webform_submissions}_sid');
  $ip_address = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
  db_query("INSERT INTO {webform_submissions} (nid, sid, uid, submitted, remote_addr) VALUES (%d, %d, %d, %d, '%s')", $node->nid, $sid, $user->uid, time(), $ip_address);
  foreach ($submitted as $cid => $value) {

    // Don't save pagebreaks as submitted data.
    if ($node->webform['components'][$cid]['type'] == 'pagebreak') {
      continue;
    }
    if (is_array($value)) {
      $delta = 0;
      foreach ($value as $k => $v) {
        db_query("INSERT INTO {webform_submitted_data} (nid, sid, cid, no, data) VALUES (%d, %d, %d, %d, '%s')", $node->nid, $sid, $cid, $delta, $v);
        $delta++;
      }
    }
    else {
      db_query("INSERT INTO {webform_submitted_data} (nid, sid, cid, no, data) VALUES (%d, %d, %d, %d, '%s')", $node->nid, $sid, $cid, 0, $value);
    }
  }
  return $sid;
}