PHP System zarządzania hasłami
Skrypt PHP tworzy prosty system do zarządzania hasłami.
Listing
//Formularz umożliwiający wprowadzanie danych
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<TITLE>Zarządzanie hasłami</TITLE>
</HEAD>
<BODY>
<CENTER>
<H2>Zarządzanie hasłami:</H2>
<FORM NAME = "formularz1"
ACTION = "http://127.0.0.1/skrypt.php"
METHOD = "POST"
>
<TABLE border="1">
<TR>
<TD bordercolor="#FFFFFF">Użytkownik:</TD>
<TD colspan="2" bordercolor="#FFFFFF">
<INPUT TYPE="text" NAME="user">
</TD>
</TR><TR>
<TD bordercolor="#FFFFFF">Hasło:</TD>
<TD colspan="2" bordercolor="#FFFFFF">
<INPUT TYPE="password" NAME="haslo">
</TD>
</TR><TR>
<TD bordercolor="#FFFFFF">
<INPUT TYPE="radio" NAME="akcja" VALUE="add" CHECKED> Dodaj
</TD>
<TD bordercolor="#FFFFFF" align="center">
<INPUT TYPE="radio" NAME="akcja" VALUE="remove">Usuń
</TD>
<TD bordercolor="#FFFFFF">
<INPUT TYPE="radio" NAME="akcja" VALUE="modify">Modyfikuj
</TD>
</TR><TR>
<TD colspan="3" align="center" bordercolor="#FFFFFF">
<INPUT TYPE="submit" VALUE="Wykonaj">
</TD>
</TR>
</TABLE>
</FORM>
</CENTER>
</BODY>
</HTML>
//Skrypt modyfikujący dane w pliku passwords.txt
<?
function readArray($fd)
{
$arr = array();
while (!feof ($fd)) {
$line = trim(fgets($fd));
if(($pos = strpos($line, ":"))===false) continue;
$tempUser = substr($line, 0, $pos);
$tempPass = substr($line, $pos + 1, strlen($line) - $pos);
if ($tempUser == '' || $tempPass == '') continue;
$arr[$tempUser] = $tempPass;
}
return $arr;
}
function writeArray($fd, $arr)
{
foreach($arr as $key => $value){
$tempStr = $key.":".$value."\r\n";
fwrite($fd, $tempStr);
}
}
if(isSet($_POST["haslo"])){
$pass = $_POST["haslo"];
}
else{
echo("Brak pola hasło.");
exit();
}
if(isSet($_POST["user"])){
$user = $_POST["user"];
}
else{
echo("Brak pola użytkownik.");
exit();
}
if(isSet($_POST["akcja"])){
$akcja = $_POST["akcja"];
}
else{
echo("Brak pola akcja.");
exit();
}
if($pass == "" && $akcja != "remove"){
echo("Brak hasła!");
exit();
}
if($user == ""){
echo("Brak nazwy użytkownika!");
exit();
}
if(!$fd = @fopen("passwords.txt", "a+")){
echo("Błąd przy próbie otwarcia pliku");
exit();
}
fseek($fd, 0);
$arr = readArray($fd);
fclose($fd);
if($akcja == "add"){
if(!array_key_exists($user, $arr)){
$arr[$user] = sha1($pass);
echo("Użytkownik: $user został dodany do bazy!");
}
else{
echo("Użytkownik: $user istnieje już w bazie!");
exit();
}
}
else if ($akcja == "remove"){
if(array_key_exists($user, $arr)){
unset($arr[$user]);
echo("Użytkownik: $user został usunięty z bazy!");
}
else{
echo("Nie ma użytkownika: $user w bazie!");
exit();
}
}
else if ($akcja == "modify"){
if(array_key_exists($user, $arr)){
$arr[$user] = sha1($pass);
echo("Hasło użytkownika: $user zostało zmienione!");
}
else{
echo("Nie ma użytkownika: $user w bazie!");
exit();
}
}
else{
echo("Błędne dane: akcja=$akcja");
exit();
}
if(!$fd = @fopen("passwords.txt", "w")){
echo("Wstąpił błąd przy próbie zapisu zmodyfikowanej bazy!");
exit();
}
writeArray($fd, $arr);
fclose($fd);
?>
//przykładowa zawartość pliku password.txt
user1:f0578f1e7174b1a41c4ea8c6e17f7a8a3b88c92a
user2:8be52126a6fde450a7162a3651d589bb51e9579d
user3:de2a4d5751ab06dc4f987142db57c26d50925c8a
Dodano przez: igor
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
Można gdzieś znaleźć logowanie za pomocą takiej rejestracji?
autor: Finch | 399 | 2009-08-04 10:04:15
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno