Loading:


PHP System zarządzania hasłami

Skrypt PHP tworzy prosty system do zarządzania hasłami.



Napisz Artyku³

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: 28716
Komentarze użytkowników
Można gdzieś znaleźć logowanie za pomocą takiej rejestracji?
autor: Finch | 399 | 2009-08-04 10:04:15


    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors