htaccess script
Ik had op internet een script gevonden, om htaccess files etc te bewerken.
Zodat bv. de gebruikers hun wachtwoord kunnen weizigen.
Alleen zoals je natuurlijk al kan raden. hij werkt nie.
Hij gegt namelijk dat ie het bestand niet kan openen etc.
en dat je het dan kan proberen om met cmod 404 van .htaccess etc kan proberen.
Alleen ook dat werkt niet :S
weet iemand misschien de oplossing?
Hieronder t hele script,
Alvast bedankt iig
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
// Waar staat het htaccess-file
$htaccess=".htaccess";
// De admin-user (deze moet al in .htpasswd staan)
$adminuser="test";
// De encryptie-methode, zie http://www.php.net/manual/en/function.crypt.php
$encryption=CRYPT_MD5;
// Deze instellingen zijn autodetect, je kan ze natuurlijk wijzigen
$curruser=$PHP_AUTH_USER;
$scripturi="http://$HTTP_HOST:$SERVER_PORT$SCRIPT_NAME";
function ShowError($errorstring) {
echo "<html><body><h1>$errorstring</h1></body></html>\n";
exit();
}
if($file=fopen($htaccess,"r")) {
while(!feof($file)) {
$data=fgets($file,1024);
$tdata=trim($data);
if(substr(strtolower($tdata),0,13)=="authuserfile ") { $htpasswd=substr($tdata,13,strlen($tdata)-13); }
if(substr(strtolower($tdata),0,9)=="authname ") { $authname=substr($tdata,9,strlen($tdata)-9); }
}
fclose($file);
} else { ShowError("Kan $htaccess niet lezen, chmod 404 $htaccess kan helpen"); }
unset($user_name);unset($user_pass);unset($user_line);
if($file=fopen($htpasswd,"r")) {
while(!feof($file)) {
$data=trim(fgets($file,1024));
$user_line[]=$data;
if($tmp1=strstr($data,":")) {
$user_name[]=substr($data,0,strlen($data)-strlen($tmp1));
$user_pass[]=substr($tmp1,1,strlen($tmp1)-1);
}
}
fclose($file);
} else { ShowError("Kan $htpasswd niet lezen, chmod 606 $htpasswd kan helpen"); }
if($action=="user_add") {
if($curruser!=$adminuser) { ShowError("Alleen de administrator (\$adminuser) kan deze optie gebruiken"); }
for($i=0;$i<count($user_name);$i++) {
if(strtolower($user_name[$i])==strtolower($form_user_name)) { ShowError("Gebruiker $form_user_name bestaat al"); }
}
if($form_user_pass_1!=$form_user_pass_2) { ShowError("Nieuw wachtwoord en Nieuw wachtwoord opnieuw komen niet overeen"); }
if($file=fopen($htpasswd,"a")) {
fputs($file,"$form_user_name:".crypt($form_user_pass_1,$encryption)."\n");
fclose($file);
} else { ShowError("Kan $htpasswd niet bewerken, chmod 606 $htpasswd kan helpen"); }
Header("Location: $scripturi");
exit();
} elseif($action=="user_edit") {
if($curruser!=$adminuser) { ShowError("Alleen de administrator (\$adminuser) kan deze optie gebruiken"); }
if(($form_user_pass_1!=$form_user_pass_2) AND (!$form_user_delete)) { ShowError("Nieuw wachtwoord en Nieuw wachtwoord opnieuw komen niet overeen"); }
if($form_user_delete AND ($form_user_name==$adminuser)) { ShowError("Kan de administrator (\$adminuser) niet verwijderen"); }
if($file=fopen($htpasswd,"w")) {
for($i=0;$i<count($user_name);$i++) {
if(strtolower($user_name[$i])==strtolower($form_user_name)) {
$user_line[$i]="$form_user_name:".crypt($form_user_pass_1,$encryption);
if($form_user_delete) { $user_line[$i]=""; }
}
if($user_line[$i]) { fputs($file,"$user_line[$i]\n"); }
}
fclose($file);
} else { ShowError("Kan $htpasswd niet overschrijven, chmod 606 $htpasswd kan helpen"); }
Header("Location: $scripturi");
exit();
} elseif($action=="user_ch") {
if($form_user_pass_1!=$form_user_pass_2) { ShowError("Nieuw wachtwoord en Nieuw wachtwoord opnieuw komen niet overeen"); }
for($i=0;$i<count($user_name);$i++) {
if(strtolower($user_name[$i])==strtolower($curruser)) {
if(crypt($form_user_currpass,$user_pass[$i]) == $user_pass[$i]) {
$user_line[$i]="$curruser:".crypt($form_user_pass_1,$encryption);
} else { ShowError("Het huidige wachtwoord is incorrect opgegeven"); }
}
}
if($file=fopen($htpasswd,"w")) {
for($i=0;$i<count($user_name);$i++) {
fputs($file,"$user_line[$i]\n");
}
fclose($file);
} else { ShowError("Kan $htpasswd niet overschrijven, chmod 606 $htpasswd kan helpen"); }
Header("Location: $scripturi");
exit();
}
?>
// Waar staat het htaccess-file
$htaccess=".htaccess";
// De admin-user (deze moet al in .htpasswd staan)
$adminuser="test";
// De encryptie-methode, zie http://www.php.net/manual/en/function.crypt.php
$encryption=CRYPT_MD5;
// Deze instellingen zijn autodetect, je kan ze natuurlijk wijzigen
$curruser=$PHP_AUTH_USER;
$scripturi="http://$HTTP_HOST:$SERVER_PORT$SCRIPT_NAME";
function ShowError($errorstring) {
echo "<html><body><h1>$errorstring</h1></body></html>\n";
exit();
}
if($file=fopen($htaccess,"r")) {
while(!feof($file)) {
$data=fgets($file,1024);
$tdata=trim($data);
if(substr(strtolower($tdata),0,13)=="authuserfile ") { $htpasswd=substr($tdata,13,strlen($tdata)-13); }
if(substr(strtolower($tdata),0,9)=="authname ") { $authname=substr($tdata,9,strlen($tdata)-9); }
}
fclose($file);
} else { ShowError("Kan $htaccess niet lezen, chmod 404 $htaccess kan helpen"); }
unset($user_name);unset($user_pass);unset($user_line);
if($file=fopen($htpasswd,"r")) {
while(!feof($file)) {
$data=trim(fgets($file,1024));
$user_line[]=$data;
if($tmp1=strstr($data,":")) {
$user_name[]=substr($data,0,strlen($data)-strlen($tmp1));
$user_pass[]=substr($tmp1,1,strlen($tmp1)-1);
}
}
fclose($file);
} else { ShowError("Kan $htpasswd niet lezen, chmod 606 $htpasswd kan helpen"); }
if($action=="user_add") {
if($curruser!=$adminuser) { ShowError("Alleen de administrator (\$adminuser) kan deze optie gebruiken"); }
for($i=0;$i<count($user_name);$i++) {
if(strtolower($user_name[$i])==strtolower($form_user_name)) { ShowError("Gebruiker $form_user_name bestaat al"); }
}
if($form_user_pass_1!=$form_user_pass_2) { ShowError("Nieuw wachtwoord en Nieuw wachtwoord opnieuw komen niet overeen"); }
if($file=fopen($htpasswd,"a")) {
fputs($file,"$form_user_name:".crypt($form_user_pass_1,$encryption)."\n");
fclose($file);
} else { ShowError("Kan $htpasswd niet bewerken, chmod 606 $htpasswd kan helpen"); }
Header("Location: $scripturi");
exit();
} elseif($action=="user_edit") {
if($curruser!=$adminuser) { ShowError("Alleen de administrator (\$adminuser) kan deze optie gebruiken"); }
if(($form_user_pass_1!=$form_user_pass_2) AND (!$form_user_delete)) { ShowError("Nieuw wachtwoord en Nieuw wachtwoord opnieuw komen niet overeen"); }
if($form_user_delete AND ($form_user_name==$adminuser)) { ShowError("Kan de administrator (\$adminuser) niet verwijderen"); }
if($file=fopen($htpasswd,"w")) {
for($i=0;$i<count($user_name);$i++) {
if(strtolower($user_name[$i])==strtolower($form_user_name)) {
$user_line[$i]="$form_user_name:".crypt($form_user_pass_1,$encryption);
if($form_user_delete) { $user_line[$i]=""; }
}
if($user_line[$i]) { fputs($file,"$user_line[$i]\n"); }
}
fclose($file);
} else { ShowError("Kan $htpasswd niet overschrijven, chmod 606 $htpasswd kan helpen"); }
Header("Location: $scripturi");
exit();
} elseif($action=="user_ch") {
if($form_user_pass_1!=$form_user_pass_2) { ShowError("Nieuw wachtwoord en Nieuw wachtwoord opnieuw komen niet overeen"); }
for($i=0;$i<count($user_name);$i++) {
if(strtolower($user_name[$i])==strtolower($curruser)) {
if(crypt($form_user_currpass,$user_pass[$i]) == $user_pass[$i]) {
$user_line[$i]="$curruser:".crypt($form_user_pass_1,$encryption);
} else { ShowError("Het huidige wachtwoord is incorrect opgegeven"); }
}
}
if($file=fopen($htpasswd,"w")) {
for($i=0;$i<count($user_name);$i++) {
fputs($file,"$user_line[$i]\n");
}
fclose($file);
} else { ShowError("Kan $htpasswd niet overschrijven, chmod 606 $htpasswd kan helpen"); }
Header("Location: $scripturi");
exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
<form name="form_user_add" action="" method="POST">
<input type="hidden" size="-1" name="action" value="user_add">
<table border="1" cellspacing="0" cellpadding="3">
<tr><td bgcolor="#000099"><b><font color="#ffffff">Gebruiker toevoegen</font></b></td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>Gebruikersnaam:</td><td><input type="text" name="form_user_name" size="20"></td></tr>
<tr><td>Nieuw wachtwoord:</td><td><input type="password" name="form_user_pass_1" size="20"></td></tr>
<tr><td>Nieuw wachtwoord opnieuw: </td><td><input type="password" name="form_user_pass_2" size="20"></td></tr>
<tr><td colspan="2" align="right"><input type="submit" value="Voeg toe"></td></tr>
</table>
</td></tr>
</table>
</form>
<form name="form_user_edit" action="" method="POST">
<input type="hidden" size="-1" name="action" value="user_edit">
<table border="1" cellspacing="0" cellpadding="3">
<tr><td bgcolor="#000099"><b><font color="#ffffff">Gebruiker bewerken</font></b></td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>Gebruikersnaam:</td><td><select name="form_user_name" size="1">
Code (php)
<tr><td>Nieuw wachtwoord:</td><td><input type="password" name="form_user_pass_1" size="20"></td></tr>
<tr><td>Nieuw wachtwoord opnieuw: </td><td><input type="password" name="form_user_pass_2" size="20"></td></tr>
<tr><td> </td><td><input type="checkbox" name="form_user_delete"> Delete user</td></tr>
<tr><td colspan="2" align="right"><input type="submit" value="Bewerk"></td></tr>
</table>
</td></tr>
</table>
</form>
<form name="form_user_ch" action="" method="POST">
<input type="hidden" size="-1" name="action" value="user_ch">
<table border="1" cellspacing="0" cellpadding="3">
<tr><td bgcolor="#000099"><b><font color="#ffffff">Wachtwoord veranderen</font></b></td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>Gebruikersnaam:</td><td></td></tr>
<tr><td>Huidig wachtwoord:</td><td><input type="password" name="form_user_currpass" size="20"></td></tr>
<tr><td>Nieuw wachtwoord:</td><td><input type="password" name="form_user_pass_1" size="20"></td></tr>
<tr><td>Nieuw wachtwoord opnieuw: </td><td><input type="password" name="form_user_pass_2" size="20"></td></tr>
<tr><td colspan="2" align="right"><input type="submit" value="Wijzig"></td></tr>
</table>
</td></tr>
</table>
</form>
</body>
</html>
Quote:
en dat je het dan kan proberen om met cmod 404 van .htaccess etc kan proberen.
Misschien dat CHMOD 404 bij het lezen nog werkt (404 is lezen voor owner en other), maar voor het schrijven wat later moet gebeuren gaat dat natuurlijk niet werken.
Probeer het eens met een CHMOD van 666 of 766 (666 is lezen en schrijven voor owner, group en other, 766 is lezen, schrijven en uitvoeren voor owner en lezen en schrijven voor group en other).
Elwin