Subversion Repositories Sites.tela-botanica.org

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 david 1
<?php
2
 
3
/***************************************************************************\
4
 *  SPIP, Systeme de publication pour l'internet                           *
5
 *                                                                         *
6
 *  Copyright (c) 2001-2005                                                *
7
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8
 *                                                                         *
9
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11
\***************************************************************************/
12
 
13
if (defined("_TEST_DIRS")) return;
14
define("_TEST_DIRS", "1");
15
 
16
include("ecrire/inc_version.php3");
17
 
18
include_ecrire("inc_presentation.php3");
19
 
20
utiliser_langue_visiteur();
21
 
22
 
23
//
24
// Tente d'ecrire
25
//
26
function test_ecrire($my_dir) {
27
	$ok = true;
28
	$nom_fich = "$my_dir/test.txt";
29
	$f = @fopen($nom_fich, "w");
30
	if (!$f) $ok = false;
31
	else if (!@fclose($f)) $ok = false;
32
	else if (!@unlink($nom_fich)) $ok = false;
33
	return $ok;
34
}
35
 
36
//
37
// teste les droits sur les repertoires $test_dirs declares dans inc_version
38
//
39
 
40
// rajouter celui passer dans l'url ou celui du source (a l'installation)
41
 
42
if ($test_dir) {
43
  if (!ereg("/$", $test_dir)) $test_dir .= '/';
44
  if (!in_array($test_dir, $test_dirs)) $test_dirs[] = $test_dir;
45
 }
46
else {
47
	if (!_FILE_CONNECT)
48
	  $test_dirs[] = dirname(_FILE_CONNECT_INS);
49
}
50
 
51
unset($bad_dirs);
52
unset($absent_dirs);
53
 
54
while (list(, $my_dir) = each($test_dirs)) {
55
	if (!test_ecrire($my_dir)) {
56
		@umask(0);
57
		if (@file_exists($my_dir)) {
58
			@chmod($my_dir, 0777);
59
			// ???
60
			if (!test_ecrire($my_dir))
61
				@chmod($my_dir, 0775);
62
			if (!test_ecrire($my_dir))
63
				@chmod($my_dir, 0755);
64
			if (!test_ecrire($my_dir))
65
				$bad_dirs[] = "<LI>".$my_dir;
66
		} else
67
			$absent_dirs[] = "<LI>".$my_dir;
68
	}
69
}
70
 
71
if ($bad_dirs OR $absent_dirs) {
72
	install_debut_html();
73
 
74
	if (!_FILE_CONNECT) {
75
		$titre = _T('dirs_preliminaire');
76
		$continuer = ' '._T('dirs_commencer');
77
	} else
78
		$titre = _T('dirs_probleme_droits');
79
 
80
	$bad_url = "spip_test_dirs.php3";
81
	if ($test_dir) $bad_url .= '?test_dir='.$test_dir;
82
 
83
	echo "<FONT FACE=\"Verdana,Arial,Helvetica,sans-serif\" SIZE=3>$titre</FONT>\n<p>";
84
	echo "<div align='right'>". menu_langues('var_lang_ecrire')."</div>\n";
85
 
86
	if ($bad_dirs) {
87
		echo "<p>";
88
		echo _T('dirs_repertoires_suivants',
89
			array('bad_dirs' => join(" ", $bad_dirs)));
90
		echo "<B>". _T('login_recharger')."</b>";
91
	}
92
 
93
	if ($absent_dirs) {
94
		echo "<p>";
95
		echo _T('dirs_repertoires_absents',
96
			array('bad_dirs' => join(" ", $absent_dirs)));
97
		echo "<B>". _T('login_recharger')."</b>";
98
	}
99
 
100
	echo $continuer.'. ';
101
	echo aide ("install0");
102
	echo "<p>";
103
 
104
	echo "<FORM ACTION='$bad_urls' METHOD='GET'>\n";
105
	echo "<DIV align='right'><INPUT TYPE='submit' CLASS='fondl' VALUE='". _T('login_recharger')."'></DIV>";
106
	echo "</FORM>";
107
 
108
	install_fin_html();
109
 
110
} else {
111
	if (!_FILE_CONNECT)
112
		header("Location: " . _DIR_RESTREINT_ABS . "install.php3?etape=1");
113
	else
114
		header("Location: " . _DIR_RESTREINT_ABS);
115
}
116
 
117
?>