Loading:

Książka Zend Framework 3. Poradnik Programisty.

PHP Automatyczne logowanie przy użyciu cookie

Skrypt PHP automatycznie loguje użytkownika pobierając dane z cookie.



Napisz Artykuł

Listing

// Plik form.html tworzący formularz

<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<TITLE>Logowanie</TITLE>
</HEAD>
<BODY>
<CENTER>
<H2>Wprowadź nazwę użytkownika i hasło:</H2>
<FORM NAME = "formularz1"
      ACTION = "login.php"
      METHOD = "POST"
>
<TABLE border="1">
<TR>
  <TD bordercolor="#FFFFFF">Użytkownik:</TD>
  <TD bordercolor="#FFFFFF">
    <INPUT TYPE="text" NAME="user">
  </TD>
</TR><TR>
  <TD bordercolor="#FFFFFF">Hasło:</TD>
  <TD bordercolor="#FFFFFF">
    <INPUT TYPE="password" NAME="pass">
  </TD>
</TR><TR>
  <TD colspan="2" align="center" bordercolor="#FFFFFF">
    <INPUT TYPE="checkbox" NAME="autologin" VALUE="CHECKED">Loguj automatycznie
  </TD>
</TR><TR>
  <TD colspan="2" align="center" bordercolor="#FFFFFF">
    <INPUT TYPE="submit" VALUE="Wejdź">
  </TD>
</TR>
</TABLE>
</FORM>
</CENTER>
</BODY>
</HTML>


//Skrypt do automatycznego logowania login.php

<?PHP

function checkPass($pass, $user)
{
  if(!$fd = @fopen("passwords.txt", "r")) return false;
  while (!feof ($fd)) {
    $line = trim(fgets($fd));
    if(($pos = strpos($line, ":"))===false) continue;

    $tempUser = substr($line, 0, $pos);
    if($tempUser != $user) continue;

    $tempPass = substr($line, $pos + 1, strlen($line) - $pos);

    if($tempPass != $pass) continue;
    else return true;
  }
  fclose($fd);
  return false;
}

if(isSet($_COOKIE["pass"]) && isSet($_COOKIE["user"])){
  $pass = $_COOKIE["pass"];
  $user = $_COOKIE["user"];
  if($pass != "" && $user != ""){
    if(!checkPass($pass, $user)){
      setCookie("user", $user, time() - 3600);
      setCookie("pass", $pass, time() - 3600);
      include('form.html');
    }
    else{
      include('index1.html');
    }
    exit;
  }
}
if(isSet($_POST["pass"]) &&
   isSet($_POST["user"])){

  $pass = $_POST["pass"];
  $user = $_POST["user"];
  if(isSet($_POST["autologin"]))
    $autologin = $_POST["autologin"];
  else
    $autologin = "";

  if(!checkPass($pass, $user)){
    include("zle_dane.html");
  }
  else{
    if($autologin == "CHECKED"){
    setCookie("user", $user, time() + 3600 * 24 * 30);
    setCookie("pass", $pass, time() + 3600 * 24 * 30);
    }
    include('index.html');
  }
}
else{
  include('form.html');
}

?>


//Plik passwords.txt

user1:pass1
user2:pass2
user3:pass3
 


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=2555

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
    • 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-17 v.1.5 | design: diviXdesign & rainbowcolors