From 7dfb1fba5001299300736e6b5d95d9400575e3e7 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Thu, 18 Sep 2008 14:59:02 -0400 Subject: [PATCH] Set the right number of arguments for setcookie() --- program/steps/mail/addcontact.inc | 68 +++++++++++++-------------------- 1 files changed, 27 insertions(+), 41 deletions(-) diff --git a/program/steps/mail/addcontact.inc b/program/steps/mail/addcontact.inc index ad1544e..d98d71f 100644 --- a/program/steps/mail/addcontact.inc +++ b/program/steps/mail/addcontact.inc @@ -5,7 +5,7 @@ | program/steps/mail/addcontact.inc | | | | This file is part of the RoundCube Webmail client | - | Copyright (C) 2005, RoundCube Dev. - Switzerland | + | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -19,49 +19,35 @@ */ -$REMOTE_REQUEST = TRUE; +$done = false; +$CONTACTS = $RCMAIL->get_address_book(null, true); -if ($_GET['_address']) +if (!empty($_POST['_address']) && is_object($CONTACTS)) +{ + $contact_arr = $IMAP->decode_address_list(get_input_value('_address', RCUBE_INPUT_POST, true), 1, false); + + if (!empty($contact_arr[1]['mailto'])) { - $contact_arr = $IMAP->decode_address_list($_GET['_address']); - if (sizeof($contact_arr)) - { - $contact = $contact_arr[1]; + $contact = array( + 'email' => $contact_arr[1]['mailto'], + 'name' => $contact_arr[1]['name'] + ); + + // use email address part for name + if (empty($contact['name']) || $contact['name'] == $contact['email']) + $contact['name'] = ucfirst(preg_replace('/[\.\-]/', ' ', substr($contact['email'], 0, strpos($contact['email'], '@')))); - if ($contact['mailto']) - $sql_result = $DB->query("SELECT 1 FROM ".get_table_name('contacts')." - WHERE user_id=? - AND email=? - AND del<>'1'", - $_SESSION['user_id'],$contact['mailto']); - - // contact entry with this mail address exists - if ($sql_result && $DB->num_rows($sql_result)) - $existing_contact = TRUE; - - else if ($contact['mailto']) - { - $DB->query("INSERT INTO ".get_table_name('contacts')." - (user_id, changed, name, email) - VALUES (?, now(), ?, ?)", - $_SESSION['user_id'], - $contact['name'], - $contact['mailto']); - - $added = $DB->insert_id(); - } - } - - if ($added) - $commands = show_message('addedsuccessfully', 'confirmation'); - else if ($existing_contact) - $commands = show_message('contactexists', 'warning'); + // check for existing contacts + $existing = $CONTACTS->search('email', $contact['email'], true, false); + if ($done = $existing->count) + $OUTPUT->show_message('contactexists', 'warning'); + else if ($done = $CONTACTS->insert($contact)) + $OUTPUT->show_message('addedsuccessfully', 'confirmation'); } +} +if (!$done) + $OUTPUT->show_message('errorsavingcontact', 'warning'); -if (!$commands) - $commands = show_message('errorsavingcontact', 'warning'); - -rcube_remote_response($commands); -exit; -?> \ No newline at end of file +$OUTPUT->send(); +?> -- Gitblit v1.9.1