예제 #1
0
<?php

require_once 'init.php';
require_once 'config.php';
require_once 'country_codes.php';
error_reporting(E_ERROR);
$edit = new MozillaEditingAdapter();
$auth = new MozillaAuthAdapter();
$search = new MozillaSearchAdapter($ldapconn);
$ldap_char_blacklist = array("*", "&", "|", "(", ")", "=");
$user = str_replace($ldap_char_blacklist, "", $_SERVER["PHP_AUTH_USER"]);
$is_admin = $auth->is_phonebook_admin($ldapconn, $auth->user_to_dn($user));
if (isset($_REQUEST["edit_mail"]) && $is_admin) {
    $edit_user = str_replace($ldap_char_blacklist, "", $_REQUEST["edit_mail"]);
} else {
    $edit_user = $auth->user_to_email($user);
}
$user_search = $search->query_users("mail={$edit_user}", "dc=mozilla");
$user_data = $user_search[0];
if (!empty($_POST)) {
    $new_user_data = array();
    foreach ($editable_fields as $editable_field) {
        if (isset($_POST[$editable_field])) {
            if (in_array($editable_field, $MONKEY_FREE_ARRAY)) {
                $_POST[$editable_field][0] = trim(preg_replace('/[^\\p{L}\\s]/u', '', $_POST[$editable_field][0]));
            }
            $new_user_data[$editable_field] = $_POST[$editable_field];
        }
        if (isset($new_user_data["other"][0])) {
            $new_user_data["other"][0] = strip_tags($new_user_data["other"][0]);
        }