Exemple #1
0
                // Raté on repart...
                echo $msg['subs_pb_wrongcode'];
                echo generate_form_inscription();
            }
        } else {
            // vide
            echo $msg['subs_pb_wrongcode'];
            echo generate_form_inscription();
        }
        break;
    case '':
    default:
        $subsact = '';
        echo $msg['subs_intro_services'];
        echo str_replace("!!nb_h_valid!!", $opac_websubscribe_valid_limit, $msg['subs_intro_explication']);
        echo generate_form_inscription();
        break;
}
echo "</div>";
//insertions des liens du bas dans le $footer si $opac_show_liensbas
if ($opac_show_liensbas == 1) {
    $footer = str_replace("!!div_liens_bas!!", $liens_bas, $footer);
} else {
    $footer = str_replace("!!div_liens_bas!!", "", $footer);
}
$cms_build_info = "";
if ($cms_build_activate || $_SESSION["cms_build_activate"]) {
    // issu de la gestion
    if ($pageid) {
        require_once $base_path . "/classes/cms/cms_pages.class.php";
        $cms_page = new cms_page($pageid);
function verif_validite_compte()
{
    global $dbh, $msg, $opac_default_lang;
    global $f_nom, $f_prenom, $f_email, $f_login, $f_password;
    global $f_msg, $f_adr1, $f_adr2, $f_cp, $f_ville, $f_pays, $f_tel1;
    global $base_path, $opac_websubscribe_num_carte_auto;
    global $opac_websubscribe_show, $lvl;
    $ret = array();
    $rqt = "select id_empr from empr where empr_mail like '%" . $f_email . "%' ";
    $res = pmb_mysql_query($rqt, $dbh);
    if (pmb_mysql_num_rows($res) > 0) {
        $ret[0] = PBINSC_MAIL;
        $ret[1] = str_replace("!!email!!", urlencode($f_email), $msg[subs_pb_email]);
        return $ret;
    }
    $rqt = "select id_empr from empr where empr_login ='******' ";
    $res = pmb_mysql_query($rqt, $dbh);
    if (pmb_mysql_num_rows($res) > 0) {
        $ret[0] = PBINSC_LOGIN;
        $ret[1] = str_replace("!!f_login!!", $f_login, $msg[subs_pb_login]) . generate_form_inscription();
        return $ret;
    }
    // préparation des données:
    // langue:
    if ($_COOKIE['PhpMyBibli-LANG']) {
        $lang = $_COOKIE['PhpMyBibli-LANG'];
    }
    if (!$lang) {
        if ($opac_default_lang) {
            $lang = $opac_default_lang;
        } else {
            $lang = "fr_FR";
        }
    }
    // paramétrage :
    global $opac_websubscribe_empr_status, $opac_websubscribe_empr_categ, $opac_websubscribe_empr_stat, $opac_websubscribe_valid_limit;
    $opac_websubscribe_empr_status_array = explode(",", $opac_websubscribe_empr_status);
    if (!$opac_websubscribe_empr_categ) {
        $ret[0] = PBINSC_PARAM;
        $ret[1] = $msg[subs_pb_empr_categ];
        return $ret;
    }
    if (!$opac_websubscribe_empr_stat) {
        $ret[0] = PBINSC_PARAM;
        $ret[1] = $msg[subs_pb_empr_codestat];
        return $ret;
    }
    // codes-barres emprunteur bidon :
    $pe_emprcb = 'wwwtmp' . rand(0, 100000);
    // durée d'adhésion de la categ web
    $rqt = "select duree_adhesion from empr_categ where id_categ_empr='" . $opac_websubscribe_empr_categ . "' ";
    $res = pmb_mysql_query($rqt, $dbh);
    $obj = pmb_mysql_fetch_object($res);
    $duree_adhesion = $obj->duree_adhesion;
    global $pmb_lecteurs_localises, $opac_websubscribe_show_location;
    if ($pmb_lecteurs_localises && $opac_websubscribe_show_location) {
        global $empr_location_id;
        $websubscribe_empr_location = $empr_location_id ? $empr_location_id : 0;
    } else {
        global $opac_websubscribe_empr_location;
        $websubscribe_empr_location = $opac_websubscribe_empr_location;
    }
    // clé de validation :
    $alphanum = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    $cle_validation = substr(str_shuffle($alphanum), 0, 20);
    $subscription_action = get_others_informations_from_globals();
    $rqt = "insert into empr set ";
    $rqt .= "id_empr=0, ";
    $rqt .= "empr_cb ='" . $pe_emprcb . "', ";
    $rqt .= "empr_login ='******', ";
    $rqt .= "empr_mail='" . $f_email . "', ";
    $rqt .= "empr_nom='" . $f_nom . "', ";
    $rqt .= "empr_prenom='" . $f_prenom . "', ";
    $rqt .= "empr_password='******', ";
    $rqt .= "empr_creation=sysdate(), ";
    $rqt .= "empr_modif=sysdate(), ";
    $rqt .= "empr_date_adhesion=sysdate(), ";
    $rqt .= "empr_date_expiration=date_add(sysdate(), INTERVAL {$duree_adhesion} DAY), ";
    $rqt .= "empr_lang='" . $lang . "', ";
    $rqt .= "empr_statut='" . $opac_websubscribe_empr_status_array[0] . "', ";
    $rqt .= "empr_location='" . $websubscribe_empr_location . "', ";
    $rqt .= "empr_categ='" . $opac_websubscribe_empr_categ . "', ";
    $rqt .= "empr_codestat='" . $opac_websubscribe_empr_stat . "', ";
    $rqt .= "empr_msg='" . $f_msg . "', ";
    $rqt .= "empr_adr1='" . $f_adr1 . "', ";
    $rqt .= "empr_adr2='" . $f_adr2 . "', ";
    $rqt .= "empr_cp='" . $f_cp . "', ";
    $rqt .= "empr_ville='" . $f_ville . "', ";
    $rqt .= "empr_pays='" . $f_pays . "', ";
    $rqt .= "empr_tel1='" . $f_tel1 . "', ";
    $rqt .= "cle_validation='" . $cle_validation . "' ";
    if (count($subscription_action)) {
        $rqt .= ",empr_subscription_action = '" . addslashes(serialize($subscription_action)) . "'";
    } else {
        $rqt .= ",empr_subscription_action = '" . addslashes(serialize(array())) . "'";
    }
    $res = pmb_mysql_query($rqt, $dbh) or die(pmb_mysql_error() . "<br /><br />{$rqt}");
    $id_empr = pmb_mysql_insert_id();
    emprunteur::update_digest($f_login, $f_password);
    emprunteur::hash_password($f_login, $f_password);
    if ($id_empr) {
        //redefine empr.empr_cb
        $pe_emprcb = 'www' . $id_empr;
        $opac_websubscribe_num_carte_auto_array = array();
        $opac_websubscribe_num_carte_auto_array = explode(",", $opac_websubscribe_num_carte_auto);
        if ($opac_websubscribe_num_carte_auto_array[0] == "2") {
            $long_prefixe = $opac_websubscribe_num_carte_auto_array[1];
            $nb_chiffres = $opac_websubscribe_num_carte_auto_array[2];
            $prefix = $opac_websubscribe_num_carte_auto_array[3];
            $rqt = "SELECT CAST(SUBSTRING(empr_cb," . ($long_prefixe + 1) . ") AS UNSIGNED) AS max_cb, SUBSTRING(empr_cb,1," . $long_prefixe * 1 . ") AS prefixdb FROM empr ORDER BY max_cb DESC limit 0,1";
            // modif f cerovetti pour sortir dernier code barre tri par ASCII
            $res = pmb_mysql_query($rqt, $dbh);
            $cb_initial = pmb_mysql_fetch_object($res);
            $pe_emprcb = $cb_initial->max_cb * 1 + 1;
            if (!$nb_chiffres) {
                $nb_chiffres = strlen($pe_emprcb);
            }
            if (!$prefix) {
                $prefix = $cb_initial->prefixdb;
            }
            $pe_emprcb = $prefix . substr((string) str_pad($pe_emprcb, $nb_chiffres, "0", STR_PAD_LEFT), -$nb_chiffres);
        } elseif ($opac_websubscribe_num_carte_auto_array[0] == '3') {
            $num_carte_auto_filename = $base_path . '/circ/empr/' . trim($opac_websubscribe_num_carte_auto_array[1]) . '.inc.php';
            $num_carte_auto_fctname = trim($opac_websubscribe_num_carte_auto_array[1]);
            if (file_exists($num_carte_auto_filename)) {
                require_once $num_carte_auto_filename;
                if (function_exists($num_carte_auto_fctname)) {
                    $pe_emprcb = $num_carte_auto_fctname();
                }
            }
        }
        $rqt = "UPDATE empr SET empr_cb='{$pe_emprcb}' WHERE id_empr='{$id_empr}'";
        $res = pmb_mysql_query($rqt, $dbh) or die(pmb_mysql_error() . "<br /><br />{$rqt}");
        // envoyer le mail de demande de confirmation
        global $opac_biblio_name, $opac_biblio_email, $opac_url_base;
        $obj = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_mail_obj]);
        $corps = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_mail_corps]);
        $lien_validation = "<a href='" . $opac_url_base . "subscribe.php?subsact=validation&login={$f_login}&cle_validation={$cle_validation}'>" . $opac_url_base . "subscribe.php?subsact=validation&login={$f_login}&cle_validation={$cle_validation}</a>";
        $corps = str_replace("!!lien_validation!!", $lien_validation, $corps);
        $headers = "MIME-Version: 1.0\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\n";
        $res_envoi = @mailpmb(trim(stripslashes($f_prenom . " " . $f_nom)), stripslashes($f_email), $obj, $corps, $opac_biblio_name, $opac_biblio_email, $headers);
        if (!$res_envoi) {
            $ret[0] = PBINSC_MAIL;
            $ret[1] = str_replace("!!f_email!!", $f_email, $msg[subs_pb_mail]);
            return $ret;
        }
        $ret[0] = PBINSC_OK;
        $ret[1] = str_replace("!!f_email!!", $f_email, $msg[subs_ok_inscrit]);
        $ret[1] = str_replace("!!nb_h_valid!!", $opac_websubscribe_valid_limit, $ret[1]);
        //alerte pour les utilisateurs
        $query_users = "select nom, prenom, user_email from users where user_email like('%@%') and user_alert_subscribemail=1";
        $result_users = @pmb_mysql_query($query_users, $dbh);
        if ($result_users) {
            if (pmb_mysql_num_rows($result_users) > 0) {
                global $pmb_url_base;
                $obj = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_alert_user_mail_obj]);
                $obj = str_replace("!!empr_name!!", stripslashes($f_nom), $obj);
                $obj = str_replace("!!empr_first_name!!", stripslashes($f_prenom), $obj);
                $corps = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_alert_user_mail_corps]);
                $corps = str_replace("!!empr_name!!", stripslashes($f_nom), $corps);
                $corps = str_replace("!!empr_first_name!!", stripslashes($f_prenom), $corps);
                $empr_link = str_replace("!!pmb_url_base!!", $pmb_url_base, $msg[subs_alert_user_mail_empr_link]);
                $empr_link = str_replace("!!empr_cb!!", $pe_emprcb, $empr_link);
                $corps = str_replace("!!empr_link!!", $empr_link, $corps);
                while ($user = @pmb_mysql_fetch_object($result_users)) {
                    @mailpmb(trim($user->prenom . " " . $user->nom), $user->user_email, $obj, $corps, $opac_biblio_name, $opac_biblio_email, $headers);
                }
            }
        }
        return $ret;
    } else {
        $ret[0] = PBINSC_BDD;
        $ret[1] = $msg[subs_pb_bdd];
        return $ret;
    }
}