function formulaires_configurer_relayeur_verifier_dist()
{
    $erreurs = array();
    $http_proxy = relayeur_saisie_ou_config(_request('http_proxy'), lire_config('http_proxy', ''));
    $http_noproxy = _request('http_noproxy');
    if ($http_proxy and !tester_url_absolue($http_proxy)) {
        $erreurs['http_proxy'] = _T('info_url_proxy_pas_conforme');
    }
    if (!isset($erreurs['http_proxy']) and _request('tester_proxy')) {
        if (!$http_proxy) {
            $erreurs['http_proxy'] = _T('info_obligatoire');
        } else {
            include_spip('inc/distant');
            $test_proxy = _request('test_proxy');
            $t = parse_url($test_proxy);
            if (!@$t['host']) {
                $erreurs['test_proxy'] = _T('info_adresse_non_indiquee');
            } else {
                include_spip('inc/texte');
                // pour aide, couper, lang
                $info = "";
                if (!need_proxy($t['host'], $http_proxy, $http_noproxy)) {
                    $info = "<strong>" . _T('page_pas_proxy') . "</strong><br />";
                }
                // il faut fausser le proxy actuel pour faire le test !
                $cur_http_proxy = $GLOBALS['meta']['http_proxy'];
                $cur_http_noproxy = $GLOBALS['meta']['http_noproxy'];
                $GLOBALS['meta']['http_proxy'] = $http_proxy;
                $GLOBALS['meta']['http_noproxy'] = $http_noproxy;
                $page = recuperer_page($test_proxy, true);
                $GLOBALS['meta']['http_proxy'] = $cur_http_proxy;
                $GLOBALS['meta']['http_noproxy'] = $cur_http_noproxy;
                if ($page) {
                    $erreurs['message_ok'] = _T('info_proxy_ok') . "<br />{$info}\n<tt>" . couper(entites_html($page), 300) . "</tt>";
                    $erreurs['message_erreur'] = '';
                } else {
                    $erreurs['message_erreur'] = $info . _T('info_impossible_lire_page', array('test_proxy' => "<tt>{$test_proxy}</tt>")) . " <b><tt>" . no_password_proxy_url($http_proxy) . "</tt></b>." . aide('confhttpproxy');
                }
            }
        }
    }
    return $erreurs;
}
Example #2
0
function configuration_relayeur_post ($http_proxy, $http_noproxy, $test_proxy, $tester_proxy) 
{
	// http_proxy : ne pas prendre en compte la modif si le password est '****'
	if (preg_match(',:\*\*\*\*@,', $http_proxy))
		$http_proxy = $GLOBALS['meta']['http_proxy'];

	$retour = $page = '';

	if ($tester_proxy AND preg_match(",https?://,", $http_proxy)) {
		include_spip('inc/distant');
		$t = parse_url($test_proxy);

		if (!@$t['host']) {
			$retour = _T('info_adresse_non_indiquee');
		} elseif (!need_proxy($t['host'])) {

			$retour = "<p>"._T('page_pas_proxy')."</p>\n";
		} elseif ($page = recuperer_page($test_proxy, true)) {
			include_spip('inc/texte'); // pour aide, couper, lang
			$retour = "<p>"._T('info_proxy_ok')."</p>\n<tt>"
			. couper(entites_html($page),300)."</tt>";
		} else	$retour = _T('info_impossible_lire_page',
					array('test_proxy' => $test_proxy))
			. " <tt>".no_password_proxy_url($http_proxy)."</tt>."
			. aide('confhttpproxy');
	}

	if ($http_proxy !== NULL) {
		ecrire_meta('http_proxy', $http_proxy);
	}
	if ($http_noproxy !== NULL) {
		ecrire_meta('http_noproxy', $http_noproxy);
	}
	if ($page) {
		include_spip('install/etape_fin');
		$retour .= install_verifier_htaccess();
	}
	return $retour;
}