当前位置: 首页>>代码示例>>PHP>>正文


PHP url_de_base函数代码示例

本文整理汇总了PHP中url_de_base函数的典型用法代码示例。如果您正苦于以下问题:PHP url_de_base函数的具体用法?PHP url_de_base怎么用?PHP url_de_base使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了url_de_base函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: message_oubli

function message_oubli($email, $param)
{
	$r = formulaires_oubli_mail($email);
	if (is_array($r) AND $r[1]) {
		include_spip('inc/acces'); # pour creer_uniqid
		include_spip('inc/texte'); # pour corriger_typo
		$cookie = creer_uniqid();
		sql_updateq("spip_auteurs", array("cookie_oubli" => $cookie), "id_auteur=" . $r[1]['id_auteur']);

		$nom = textebrut(corriger_typo($GLOBALS['meta']["nom_site"]));
		$envoyer_mail = charger_fonction('envoyer_mail','inc');

		if ($envoyer_mail($email,
				  ("[$nom] " .  _T('pass_oubli_mot')),
				  _T('pass_mail_passcookie',
				     array('nom_site_spip' => $nom,
					   'adresse_site' => url_de_base(),
					   'sendcookie' => generer_url_public('spip_pass',
					   "$param=$cookie", true)))) )
		  return _T('pass_recevoir_mail');
		else
		  return  _T('pass_erreur_probleme_technique');
	}
	return  _T('pass_erreur_probleme_technique');
}
开发者ID:rhertzog,项目名称:lcs,代码行数:25,代码来源:oubli.php

示例2: url_absolue

function url_absolue($url, $base='') {
	if (strlen($url = trim($url)) == 0)
		return '';
	if (!$base)
		$base = url_de_base() . (_DIR_RACINE ? _DIR_RESTREINT_ABS : '');
	return suivre_lien($base, $url);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:7,代码来源:filtres_mini.php

示例3: action_logout_dist

/**
 * Se deloger
 * Pour eviter les CSRF on passe par une etape de confirmation si pas de jeton,
 * avec un autosubmit js pour ne pas compliquer l'experience utilisateur
 *
 * http://doc.spip.org/@action_logout_dist
 *
 */
function action_logout_dist()
{
	$logout =_request('logout');
	$url = _request('url');
	// seul le loge peut se deloger
	// (mais id_auteur peut valoir 0 apres une restauration avortee)
	if (isset($GLOBALS['visiteur_session']['id_auteur']) 
	AND is_numeric($GLOBALS['visiteur_session']['id_auteur'])
	// des sessions anonymes avec id_auteur=0 existent,
	// mais elles n'ont pas de statut : verifier ca aussi
	AND isset($GLOBALS['visiteur_session']['statut'])) {
		// relancer si pas de jeton
		if (!action_logout_secu($logout, $url, _request('jeton'))) {
			return; // page submit retournee
		} elseif (isset($_COOKIE['spip_session'])) {
		// le logout explicite vaut destruction de toutes les sessions
			
			$session = charger_fonction('session', 'inc');
			$session($GLOBALS['visiteur_session']['id_auteur']);
			spip_setcookie('spip_session', $_COOKIE['spip_session'], time()-3600);
		}
		include_spip('inc/auth');
		auth_trace($GLOBALS['visiteur_session'],'0000-00-00 00:00:00');
	}
	// Action terminee (ou non faite si pas les droits) on redirige.
	// Cas particulier, logout dans l'espace public
	$url = securiser_redirect_action($url);
	if ($logout == 'public' AND !$url)
		$url = url_de_base();
	include_spip('inc/headers');
	redirige_par_entete($url
		// contrer le cache navigateur (Safari3)
		? parametre_url($url, 'var_hasard', uniqid(rand()), '&')
		: generer_url_public('login'));
}
开发者ID:rhertzog,项目名称:lcs,代码行数:43,代码来源:logout.php

示例4: redirige_formulaire

function redirige_formulaire($url, $equiv = '', $format = 'message')
{
    if (!_AJAX and !headers_sent() and !_request('var_ajax')) {
        redirige_par_entete(str_replace('&', '&', $url), $equiv);
    } elseif ($format == 'ajaxform' and preg_match(',^#[0-9a-z\\-_]+$,i', $url)) {
        return array("<a href='{$url}' name='ajax_ancre' style='display:none;'>anchor</a>", '');
    } else {
        // ne pas laisser passer n'importe quoi dans l'url
        $url = str_replace(array('<', '"'), array('&lt;', '&quot;'), $url);
        $url = strtr($url, "\n\r", "  ");
        # en theorie on devrait faire ca tout le temps, mais quand la chaine
        # commence par ? c'est imperatif, sinon l'url finale n'est pas la bonne
        if ($url[0] == '?') {
            $url = url_de_base() . $url;
        }
        $url = str_replace('&amp;', '&', $url);
        spip_log("redirige formulaire ajax: {$url}");
        include_spip('inc/filtres');
        if ($format == 'ajaxform') {
            return array('<a href="' . quote_amp($url) . '" name="ajax_redirect"  style="display:none;">' . _T('navigateur_pas_redirige') . '</a>', '<br /><a href="' . quote_amp($url) . '">' . _T('navigateur_pas_redirige') . '</a>');
        } else {
            // format message texte, tout en js inline
            return "<script type='text/javascript'>if (parent.window){parent.window.document.location.replace(\"{$url}\");} else {document.location.replace(\"{$url}\");}</script>" . http_img_pack('searching.gif', '') . '<br />' . '<a href="' . quote_amp($url) . '">' . _T('navigateur_pas_redirige') . '</a>';
        }
    }
}
开发者ID:nursit,项目名称:SPIP,代码行数:26,代码来源:headers.php

示例5: action_logout_dist

function action_logout_dist()
{
    global $visiteur_session, $ignore_auth_http;
    $logout = _request('logout');
    $url = securiser_redirect_action(_request('url'));
    // cas particulier, logout dans l'espace public
    if ($logout == 'public' and !$url) {
        $url = url_de_base();
    }
    // seul le loge peut se deloger (mais id_auteur peut valoir 0 apres une restauration avortee)
    if (is_numeric($visiteur_session['id_auteur'])) {
        include_spip('inc/auth');
        auth_trace($visiteur_session, '0000-00-00 00:00:00');
        // le logout explicite vaut destruction de toutes les sessions
        if (isset($_COOKIE['spip_session'])) {
            $session = charger_fonction('session', 'inc');
            $session($visiteur_session['id_auteur']);
            spip_setcookie('spip_session', $_COOKIE['spip_session'], time() - 3600);
        }
        // si authentification http, et que la personne est loge,
        // pour se deconnecter, il faut proposer un nouveau formulaire de connexion http
        if (isset($_SERVER['PHP_AUTH_USER']) and !$ignore_auth_http and $GLOBALS['auth_can_disconnect']) {
            ask_php_auth(_T('login_deconnexion_ok'), _T('login_verifiez_navigateur'), _T('login_retour_public'), "redirect=" . _DIR_RESTREINT_ABS, _T('login_test_navigateur'), true);
        }
    }
    // Rediriger en contrant le cache navigateur (Safari3)
    include_spip('inc/headers');
    redirige_par_entete($url ? parametre_url($url, 'var_hasard', uniqid(rand()), '&') : generer_url_public('login'));
}
开发者ID:nursit,项目名称:SPIP,代码行数:29,代码来源:logout.php

示例6: skeleditor_extraire_css

function skeleditor_extraire_css($texte){
	$url_base = url_de_base();
	$url_page = substr(generer_url_public('A'), 0, -1);
	$dir = preg_quote($url_page,',').'|'.preg_quote(preg_replace(",^$url_base,",_DIR_RACINE,$url_page),',');

	$css = array();
	// trouver toutes les css pour les afficher dans le bouton
	// repris du compresseur
	foreach (extraire_balises($texte, 'link') as $s) {
		if (extraire_attribut($s, 'rel') === 'stylesheet'
		AND (!($type = extraire_attribut($s, 'type'))
			OR $type == 'text/css')
		AND !strlen(strip_tags($s))
		AND $src = preg_replace(",^$url_base,",_DIR_RACINE,extraire_attribut($s, 'href'))
		AND (
			// regarder si c'est du format spip.php?page=xxx
			preg_match(',^('.$dir.')(.*)$,', $src, $r)
			OR (
				// ou si c'est un fichier
				// enlever un timestamp eventuel derriere un nom de fichier statique
				$src2 = preg_replace(",[.]css[?].+$,",'.css',$src)
				// verifier qu'il n'y a pas de ../ ni / au debut (securite)
				AND !preg_match(',(^/|\.\.),', substr($src2,strlen(_DIR_RACINE)))
				// et si il est lisible
				AND @is_readable($src2)
			)
		)) {
			if ($r)
				$css[$s] = explode('&',
					str_replace('&amp;', '&', $r[2]), 2);
			else{
				$file = preg_replace(",[?]\d+$,","",$src);
				if (strncmp($file,_DIR_VAR,strlen(_DIR_VAR))==0){
					lire_fichier($file,$c);
					if (preg_match(",^\/\*\s*(#@.*)\s*\*\/,Uims",$c,$m)){
						$inc = explode("#@",$m[1]);
						$inc = array_map('trim',$inc);
						$inc = array_filter($inc);
						foreach($inc as $i){
							if (!in_array($i,$css))
								$css["$s:$i"] = $i;
						}
					}
				}
				else
					$css[$s] = $file;
			}
		}
	}
	return $css;
}
开发者ID:samszo,项目名称:open-edition,代码行数:51,代码来源:skeleditor_options.php

示例7: spip_setcookie

function spip_setcookie($name = '', $value = '', $expire = 0, $path = 'AUTO', $domain = '', $secure = '')
{
    $name = preg_replace('/^spip_/', $GLOBALS['cookie_prefix'] . '_', $name);
    if ($path == 'AUTO') {
        $path = defined('_COOKIE_PATH') ? _COOKIE_PATH : preg_replace(',^\\w+://[^/]*,', '', url_de_base());
    }
    if (!$domain and defined('_COOKIE_DOMAIN')) {
        $domain = _COOKIE_DOMAIN;
    }
    #spip_log("cookie('$name', '$value', '$expire', '$path', '$domain', '$secure', '$httponly'");
    // liste des cookies en httponly (a passer en define si besoin)
    $httponly = in_array($name, explode(' ', 'spip_session'));
    $a = ($httponly and strnatcmp(phpversion(), '5.2.0') >= 0) ? @setcookie($name, $value, $expire, $path, $domain, $secure, $httponly) : ($secure ? @setcookie($name, $value, $expire, $path, $domain, $secure) : ($domain ? @setcookie($name, $value, $expire, $path, $domain) : ($path ? @setcookie($name, $value, $expire, $path) : ($expire ? @setcookie($name, $value, $expire) : @setcookie($name, $value)))));
    spip_cookie_envoye(true);
    return $a;
}
开发者ID:nursit,项目名称:SPIP,代码行数:16,代码来源:cookie.php

示例8: securiser_redirect_action

function securiser_redirect_action($redirect)
{
    if ((tester_url_absolue($redirect) or preg_match(',^\\w+:,', trim($redirect))) and !defined('_AUTORISER_ACTION_ABS_REDIRECT')) {
        // si l'url est une url du site, on la laisse passer sans rien faire
        // c'est encore le plus simple
        $base = $GLOBALS['meta']['adresse_site'] . "/";
        if (strlen($base) and strncmp($redirect, $base, strlen($base)) == 0) {
            return $redirect;
        }
        $base = url_de_base();
        if (strlen($base) and strncmp($redirect, $base, strlen($base)) == 0) {
            return $redirect;
        }
        return "";
    }
    return $redirect;
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:17,代码来源:aiguiller.php

示例9: action_logout_dist

/**
 * Se deloger
 * Pour eviter les CSRF on passe par une etape de confirmation si pas de jeton fourni
 * avec un autosubmit js pour ne pas compliquer l'experience utilisateur
 *
 * Déconnecte l'utilisateur en cours et le redirige sur l'URL indiquée par
 * l'argument de l'action sécurisée, et sinon sur la page d'accueil
 * de l'espace public.
 *
 */
function action_logout_dist()
{
    $logout = _request('logout');
    $url = securiser_redirect_action(_request('url'));
    // cas particulier, logout dans l'espace public
    if ($logout == 'public' and !$url) {
        $url = url_de_base();
    }
    // seul le loge peut se deloger (mais id_auteur peut valoir 0 apres une restauration avortee)
    if (isset($GLOBALS['visiteur_session']['id_auteur']) and is_numeric($GLOBALS['visiteur_session']['id_auteur']) and isset($GLOBALS['visiteur_session']['statut'])) {
        // il faut un jeton pour fermer la session (eviter les CSRF)
        if (!($jeton = _request('jeton')) or !verifier_jeton_logout($jeton, $GLOBALS['visiteur_session'])) {
            $jeton = generer_jeton_logout($GLOBALS['visiteur_session']);
            $action = generer_url_action("logout", "jeton={$jeton}");
            $action = parametre_url($action, 'logout', _request('logout'));
            $action = parametre_url($action, 'url', _request('url'));
            include_spip("inc/minipres");
            include_spip("inc/filtres");
            $texte = bouton_action(_T('spip:icone_deconnecter'), $action);
            $texte = "<div class='boutons'>{$texte}</div>";
            $texte .= '<script type="text/javascript">document.write("<style>body{visibility:hidden;}</style>");window.document.forms[0].submit();</script>';
            $res = minipres(_T('spip:icone_deconnecter'), $texte, '', true);
            echo $res;
            return;
        }
        include_spip('inc/auth');
        auth_trace($GLOBALS['visiteur_session'], '0000-00-00 00:00:00');
        // le logout explicite vaut destruction de toutes les sessions
        if (isset($_COOKIE['spip_session'])) {
            $session = charger_fonction('session', 'inc');
            $session($GLOBALS['visiteur_session']['id_auteur']);
            spip_setcookie('spip_session', $_COOKIE['spip_session'], time() - 3600);
        }
        // si authentification http, et que la personne est loge,
        // pour se deconnecter, il faut proposer un nouveau formulaire de connexion http
        if (isset($_SERVER['PHP_AUTH_USER']) and !$GLOBALS['ignore_auth_http'] and $GLOBALS['auth_can_disconnect']) {
            ask_php_auth(_T('login_deconnexion_ok'), _T('login_verifiez_navigateur'), _T('login_retour_public'), "redirect=" . _DIR_RESTREINT_ABS, _T('login_test_navigateur'), true);
        }
    }
    // Rediriger en contrant le cache navigateur (Safari3)
    include_spip('inc/headers');
    redirige_par_entete($url ? parametre_url($url, 'var_hasard', uniqid(rand()), '&') : generer_url_public('login'));
}
开发者ID:JLuc,项目名称:SPIP,代码行数:53,代码来源:logout.php

示例10: spip_setcookie

function spip_setcookie ($name='', $value='', $expire=0, $path='AUTO', $domain='', $secure='') {
	$name = preg_replace ('/^spip_/', $GLOBALS['cookie_prefix'].'_', $name);
	if ($path == 'AUTO')
		$path = defined('_COOKIE_PATH')?_COOKIE_PATH:preg_replace(',^\w+://[^/]*,', '', url_de_base());
	if (!$domain AND defined('_COOKIE_DOMAIN'))
		$domain = _COOKIE_DOMAIN;

	#spip_log("cookie('$name', '$value', '$expire', '$path', '$domain', '$secure'");

	if ($secure)
		@setcookie ($name, $value, $expire, $path, $domain, $secure);
	else if ($domain)
		@setcookie ($name, $value, $expire, $path, $domain);
	else if ($path)
		@setcookie ($name, $value, $expire, $path);
	else if ($expire)
		@setcookie ($name, $value, $expire);
	else
		@setcookie ($name, $value);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:20,代码来源:cookie.php

示例11: inc_lien

function inc_lien($lien, $texte = '', $class = '', $title = '', $hlang = '', $rel = '', $connect = '')
{
    # Tests TW
    if (!$GLOBALS['tw']) {
        return inc_lien_dist($lien, $texte, $class, $title, $hlang, $rel, $connect);
    }
    static $u = null;
    if (!$u) {
        $u = url_de_base();
    }
    $typo = false;
    // Si une langue est demandee sur un raccourci d'article, chercher
    // la traduction ;
    // - [{en}->art2] => traduction anglaise de l'article 2, sinon art 2
    // - [{}->art2] => traduction en langue courante de l'art 2, sinon art 2
    if ($hlang and $match = typer_raccourci($lien)) {
        @(list($type, , $id, , $args, , $ancre) = $match);
        if ($id_trad = sql_getfetsel('id_trad', 'spip_articles', "id_article={$id}") and $id_dest = sql_getfetsel('id_article', 'spip_articles', "id_trad={$id_trad} AND lang=" . sql_quote($hlang))) {
            $lien = "{$type}{$id_dest}";
        } else {
            $hlang = '';
        }
    }
    $mode = ($texte and $class) ? 'url' : 'tout';
    $lien = calculer_url($lien, $texte, $mode, $connect);
    if ($mode === 'tout') {
        $texte = $lien['titre'];
        if (!$class and isset($lien['class'])) {
            $class = $lien['class'];
        }
        $lang = isset($lien['lang']) ? $lien['lang'] : '';
        $mime = isset($lien['mime']) ? " type='" . $lien['mime'] . "'" : "";
        $lien = $lien['url'];
    }
    $lien = trim($lien);
    if (strncmp($lien, "#", 1) == 0) {
        # ancres pures (internes a la page)
        $class = 'spip_ancre';
    } elseif (strncasecmp($lien, 'mailto:', 7) == 0) {
        # pseudo URL de mail
        $class = "spip_mail";
    } elseif (strncmp($texte, '<html>', 6) == 0) {
        # cf traiter_lien_explicite
        $class = "spip_url spip_out";
    } elseif (!$class) {
        $class = "spip_out";
    }
    # si pas spip_in|spip_glossaire
    // Si l'objet n'est pas de la langue courante, on ajoute hreflang
    if (!$hlang and $lang !== $GLOBALS['spip_lang']) {
        $hlang = $lang;
    }
    $lang = $hlang ? " hreflang='{$hlang}'" : '';
    if ($title) {
        $title = ' title="' . attribut_html($title) . '"';
    }
    // rel=external pour les liens externes
    if ((strncmp($lien, 'http://', 7) == 0 or strncmp($lien, 'https://', 8) == 0) and strncmp("{$lien}/", $u, strlen($u)) != 0) {
        $rel = trim("{$rel} external");
    }
    if ($rel) {
        $rel = " rel='{$rel}'";
    }
    if (traiter_modeles($texte, false, $echapper ? 'TYPO' : '', $connect) == $texte) {
        $texte = typo($texte, true, $connect);
        $lien = "<a href=\"" . str_replace('"', '&quot;', $lien) . "\" class='{$class}'{$lang}{$title}{$rel}{$mime}>{$texte}</a>";
        return $lien;
    }
    # ceci s'execute heureusement avant les tableaux et leur "|".
    # Attention, le texte initial est deja echappe mais pas forcement
    # celui retourne par calculer_url.
    # Penser au cas [<imgXX|right>->URL], qui exige typo('<a>...</a>')
    $lien = "<a href=\"" . str_replace('"', '&quot;', $lien) . "\" class='{$class}'{$lang}{$title}{$rel}{$mime}>{$texte}</a>";
    return typo($lien, true, $connect);
}
开发者ID:JamesRezo,项目名称:textwheel,代码行数:75,代码来源:lien.php

示例12: inc_lien_dist

function inc_lien_dist($lien, $texte='', $class='', $title='', $hlang='', $rel='', $connect='')
{
	// Si une langue est demandee sur un raccourci d'article, chercher
	// la traduction ;
	// - [{en}->art2] => traduction anglaise de l'article 2, sinon art 2
	// - [{}->art2] => traduction en langue courante de l'art 2, sinon art 2
	if ($hlang
	AND $match = typer_raccourci($lien)) { 
		@list($type,,$id,,$args,,$ancre) = $match; 
		if ($id_trad = sql_getfetsel('id_trad', 'spip_articles', "id_article=$id")
		AND $id_dest = sql_getfetsel('id_article', 'spip_articles',
			"id_trad=$id_trad  AND statut<>'refuse' AND lang=" . sql_quote($hlang))
		)
			$lien = "$type$id_dest";
		else
			$hlang = '';
	}

	$mode = ($texte AND $class) ? 'url' : 'tout';
	$lien = calculer_url($lien, $texte, $mode, $connect);
	if ($mode === 'tout') {
		$texte = $lien['titre'];
		if (!$class AND isset($lien['class'])) $class = $lien['class'];
		$lang = isset($lien['lang']) ?$lien['lang'] : '';
		$mime = isset($lien['mime']) ? " type='".$lien['mime']."'" : "";
		$lien = $lien['url'];
	}
	if (substr($lien,0,1) == '#')  # ancres pures (internes a la page)
		$class = 'spip_ancre';
	elseif (preg_match('/^\s*mailto:/',$lien)) # pseudo URL de mail
		$class = "spip_mail";
	elseif (preg_match('/^<html>/',$texte)) # cf traiter_lien_explicite
		$class = "spip_url spip_out";
	elseif (!$class) {
	        # spip_out sur les URLs externes
	        if (preg_match(',^\w+://,iS', $lien)
	        AND strncasecmp($lien, url_de_base(), strlen(url_de_base()))
	        )
                $class = "spip_out"; # si pas spip_in|spip_glossaire
        }

	// Si l'objet n'est pas de la langue courante, on ajoute hreflang
	if (!$hlang AND $lang!==$GLOBALS['spip_lang'])
		$hlang = $lang;

	$lang = ($hlang ? " hreflang='$hlang'" : '');

	if ($title)
		$title = ' title="'.texte_backend($title).'"';
	else
		$title = ''; // $title peut etre 'false'

	// rel=external pour les liens externes
	if (preg_match(',^https?://,S', $lien)
	AND false === strpos("$lien/", url_de_base()))
		$rel = trim("$rel external");
	if ($rel) $rel = " rel='$rel'";

	$lien = "<a href=\"".str_replace('"', '&quot;', $lien)."\" class='$class'$lang$title$rel$mime>$texte</a>";

	# ceci s'execute heureusement avant les tableaux et leur "|".
	# Attention, le texte initial est deja echappe mais pas forcement
	# celui retourne par calculer_url.
	# Penser au cas [<imgXX|right>->URL], qui exige typo('<a>...</a>')
	return typo($lien, true, $connect);
}
开发者ID:rhertzog,项目名称:lcs,代码行数:66,代码来源:lien.php

示例13: verifier_htaccess

/**
 * Installe ou vérifie un fichier .htaccess, y compris sa prise en compte par Apache
 *
 * @uses recuperer_lapage()
 * @param string $rep
 *     Nom du répertoire où SPIP doit vérifier l'existence d'un fichier .htaccess
 * @param bool $force
 * @return boolean
 */
function verifier_htaccess($rep, $force = false)
{
    $htaccess = rtrim($rep, "/") . "/" . _ACCESS_FILE_NAME;
    if ((@file_exists($htaccess) or defined('_TEST_DIRS')) and !$force) {
        return true;
    }
    // directive deny compatible Apache 2.0+
    $deny = "# Deny all requests from Apache 2.4+.\n<IfModule mod_authz_core.c>\n  Require all denied\n</IfModule>\n# Deny all requests from Apache 2.0-2.2.\n<IfModule !mod_authz_core.c>\n  Deny from all\n</IfModule>\n";
    // support des vieilles versions Apache 1.x mais uniquement si elles l'annoncent (pas en mode PROD)
    if (function_exists('apache_get_version') and $v = apache_get_version() and strncmp($v, "Apache/1.", 9) == 0) {
        $deny = "deny from all\n";
    }
    if ($ht = @fopen($htaccess, "w")) {
        fputs($ht, $deny);
        fclose($ht);
        @chmod($htaccess, _SPIP_CHMOD & 0666);
        $t = rtrim($rep, "/") . "/.ok";
        if ($ht = @fopen($t, "w")) {
            @fclose($ht);
            include_spip('inc/distant');
            $t = substr($t, strlen(_DIR_RACINE));
            $t = url_de_base() . $t;
            $ht = recuperer_lapage($t, false, 'HEAD', 0);
            // htaccess inoperant si on a recupere des entetes HTTP
            // (ignorer la reussite si connexion par fopen)
            $ht = !(isset($ht[0]) and $ht[0]);
        }
    }
    spip_log("Creation de {$htaccess} " . ($ht ? " reussie" : " manquee"));
    return $ht;
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:40,代码来源:acces.php

示例14: appliquer_modifs_config

function appliquer_modifs_config($purger_skel=false) {

	if (($i = _request('adresse_site'))!==NULL){
		if (!strlen($i)) {$GLOBALS['profondeur_url']=_DIR_RESTREINT?0:1;$i = url_de_base();}
		$_POST['adresse_site'] = preg_replace(",/?\s*$,", "", $i);
	}

	// provoquer l'envoi des nouveautes en supprimant le fichier lock
	if (_request('envoi_now')) {
		spip_unlink(_DIR_TMP . 'mail.lock');
	}

	// Purger les squelettes si un changement de meta les affecte
	if ($i = _request('post_dates') AND ($i != $GLOBALS['meta']["post_dates"]))
		$purger_skel = true;

	if ($accepter_forum = _request('forums_publics')
	AND ($accepter_forum != $GLOBALS['meta']["forums_publics"])) {
		$purger_skel = true;
		$accepter_forum = substr($accepter_forum,0,3);
	}

	// Appliquer les changements de moderation forum
	// forums_publics_appliquer : futur, saufnon, tous
	if (in_array($appliquer = _request('forums_publics_appliquer'),
		array('tous', 'saufnon')
	)) {
		$sauf = ($appliquer == 'saufnon')
			? "accepter_forum != 'non'"
			: '';

		sql_updateq('spip_articles', array('accepter_forum'=>$accepter_forum), $sauf);
	}

	if ($accepter_forum == 'abo')
		ecrire_meta('accepter_visiteurs', 'oui');

	if ($i = _request('langues_auth') AND is_array($i)) {
		set_request('langues_multilingue', join($i, ","));
	}

	// Modification du reglage accepter_inscriptions => vider le cache
	// (pour repercuter la modif sur le panneau de login)
	if (($i = _request('accepter_inscriptions')
		AND $i != $GLOBALS['meta']['accepter_inscriptions'])
		OR ($i = _request('accepter_visiteurs')
		AND $i != $GLOBALS['meta']['accepter_visiteurs'])) {
		include_spip('inc/invalideur');
		suivre_invalideur("1"); # tout effacer
	}

	foreach(liste_metas() as $i => $v) {
		if (($x =_request($i))!==NULL)
			ecrire_meta($i, $x);
		elseif  (!isset($GLOBALS['meta'][$i]))
			ecrire_meta($i, $v);
	}

	if ($lang = _request('changer_langue_site')) {
		include_spip('inc/lang');
		// verif que la langue demandee est licite
		if (changer_langue($lang)) {
			ecrire_meta('langue_site', $lang);
		}
		// le test a defait ca:
		utiliser_langue_visiteur();
	}

	if ($purger_skel) {
		include_spip('inc/invalideur');
		purger_repertoire(_DIR_SKELS);
	}
}
开发者ID:rhertzog,项目名称:lcs,代码行数:73,代码来源:config.php

示例15: public_stats_dist

/**
 * Logue une visite sur une page
 *
 * Enregistre le passage d'un visiteur sur la page demandée
 * dans `tmp/visites/` qui seront ensuite traitées par une tache cron.
 *
 * Ne tient pas compte
 * - des visites de robots,
 * - des 404,
 * - des forum
 *
 * @see genie_visites_dist() Pour la tache cron qui traite les logs.
 *
 * @param array|null $contexte
 *     Contexte d'appel de la page ; retrouvé automatiquement sinon.
 * @param string|null $referer
 *     Referer de provenance ; retrouvé automatiquement sinon.
 * @return null|void
 **/
function public_stats_dist($contexte = null, $referer = null)
{
    if (!is_array($contexte)) {
        $contexte = $GLOBALS['contexte'];
    }
    if (is_null($referer)) {
        // $_SERVER["HTTP_REFERER"] ne fonctionne pas partout
        if (isset($_SERVER['HTTP_REFERER'])) {
            $referer = $_SERVER['HTTP_REFERER'];
        } else {
            if (isset($GLOBALS["HTTP_SERVER_VARS"]["HTTP_REFERER"])) {
                $referer = $GLOBALS["HTTP_SERVER_VARS"]["HTTP_REFERER"];
            }
        }
    }
    // Rejet des robots (qui sont pourtant des humains comme les autres)
    if (_IS_BOT or isset($referer) and strpbrk($referer, '<>"\'')) {
        return;
    }
    // Ne pas tenir compte des tentatives de spam des forums
    if ($_SERVER['REQUEST_METHOD'] !== 'GET' or isset($contexte['page']) and $contexte['page'] == 'forum') {
        return;
    }
    // rejet des pages 404
    if (isset($GLOBALS['page']['status']) and $GLOBALS['page']['status'] == 404) {
        return;
    }
    // Identification du client
    $client_id = substr(md5($GLOBALS['ip'] . (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '') . (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '') . (isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : '')), 0, 10);
    // Analyse du referer
    $log_referer = '';
    if (isset($referer)) {
        $url_site_spip = preg_replace(',/$,', '', preg_replace(',^(https?://)?(www\\.)?,i', '', url_de_base()));
        if (!($url_site_spip != '' and strpos('-' . strtolower($referer), strtolower($url_site_spip)) and strpos($referer, "recherche=") === false)) {
            $log_referer = $referer;
        }
    }
    //
    // stockage sous forme de fichier tmp/visites/client_id
    //
    // 1. Chercher s'il existe deja une session pour ce numero IP.
    $content = array();
    $fichier = sous_repertoire(_DIR_TMP, 'visites') . $client_id;
    if (lire_fichier($fichier, $content)) {
        $content = @unserialize($content);
    }
    // 2. Plafonner le nombre de hits pris en compte pour un IP (robots etc.)
    // et ecrire la session
    if (count($content) < 200) {
        // Identification de l'element
        if (isset($contexte['id_article'])) {
            $log_type = "article";
        } else {
            if (isset($contexte['id_breve'])) {
                $log_type = "breve";
            } else {
                if (isset($contexte['id_rubrique'])) {
                    $log_type = "rubrique";
                } else {
                    $log_type = "";
                }
            }
        }
        if ($log_type) {
            $log_type .= "\t" . intval($contexte["id_{$log_type}"]);
        } else {
            $log_type = "autre\t0";
        }
        $log_type .= "\t" . trim($log_referer);
        if (isset($content[$log_type])) {
            $content[$log_type]++;
        } else {
            $content[$log_type] = 1;
        }
        // bienvenue au club
        ecrire_fichier($fichier, serialize($content));
    } else {
        $flood = sous_repertoire(_DIR_TMP, 'flood') . $GLOBALS['ip'];
        @touch($flood);
    }
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:100,代码来源:stats.php


注:本文中的url_de_base函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。