[SKRYPT] Logowanie, rejestracja php + mysql na sesjach

irekbiela0015

Nowicjusz
Dołączył
18 Marzec 2012
Posty
6
Punkty reakcji
0
Witam chciałbym wam zaprezentować logowanie w php i mysql na sesjach
Całość można poprać z https://rapidshare.c...2/logowanie.zip
A więc zaczynajmy!
UWAGA Plików nie zapisujemy z kodowaniem z UTF8 z (BOM) tylko z ISO 8859-2
Najpierw wykonujemy na bazie danych taki kod:
Kod:
CREATE TABLE `users` (
  `id` int NOT NULL auto_increment,
  `login` varchar(60) NOT NULL,
  `haslo` varchar(60) NOT NULL,
  `email` varchar(60) NOT NULL,
  `ip` varchar(60) NOT NULL,
  PRIMARY KEY  (`id`)
)
A potem zabieramy się do pracy:
Zawartość pliku config.php
Kod:
<?php
session_start();
$host = "localhost"; //host bazy danych
$user = "root"; //nazwa użytkownika bazy danych
$pass = ""; //hasło użytkownika bazy danych
$baza = "logowanie"; //baza danych
$polaczenie = mysql_connect($host, $user, $pass) or die("Błąd serwera bazy danych: " . mysql_error());
$baza = mysql_select_db($baza)or die("Błąd bazy danych: " . mysql_error());
?>
Zawartość pliku index.php
Kod:
<?php
require_once("config.php");
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<meta name="Description" content="Tu wpisz opis zawartości strony" />
<meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
<title>Strona główna</title>
</head>
<body>
<?php
if(!isset($_SESSION['login'])){
?>
<script>
<!--
function init(){
   setTimeout('document.location="login.php"', 10);
  }
window.onload=init;
-->
</script>
<noscript>
Ta strona wykorzystuje javascript. Do szybszego przeglądania zalecae jest włączenie obsługi javascriptu.<br />
<a href="login.php">Logowanie</a><br />
<a href="indeks.php">Strona główna</a>
</noscript>
<?php
}else {
?>
<script>
<!--
function init(){
   setTimeout('document.location="indeks.php"', 10);
  }
window.onload=init;
-->
</script>
<?php
}
?>
</body>
</html>
Zawartość pliku login.php
Kod:
<?php
require_once("config.php");
if(isset($_SESSION['login'])){
header("Location: indeks.php");
}
?>
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
    <meta name="Description" content="Tu wpisz opis zawartości strony" />
    <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
    <title>Logowanie</title>
</head>
<body>
<form action="" method="post">
Login<br />
<input type="text" name="login" value="<?php echo $_POST['login'] ?>" /><br />
Hasło<br />
<input type="password" name="haslo" /><br />
<input type="hidden" name="send" />
<input type="submit" value="Zaloguj" style="margin-top:3px;" />
</form>
<?php
$spr_user =  mysql_query("SELECT * FROM users WHERE login='" . trim($_POST['login']) . "'");
$spr = mysql_query("SELECT * FROM users WHERE login='" . trim($_POST['login']) . "' AND haslo='" . md5(trim($_POST['haslo'])) . "'");
if(isset($_POST['send'])){
    if(trim($_POST['login']) != ''){
        if(trim($_POST['haslo']) != ''){
            if(mysql_num_rows($spr_user) > '0'){
                if(mysql_num_rows($spr) > '0'){
                    $_SESSION['login'] = trim($_POST['login']);
                    $_SESSION['haslo'] = md5(trim($_POST['haslo']));
                    echo "Zalogowałeś się poprawnie! Za chwilę zostaniesz przekierowany na stronę główną.<script>
        function init(){
                setTimeout('document.location=\"indeks.php\"', 3000);
            }
        window.onload=init;
    </script><noscript>Teraz możesz przeglądać <a href=\"indeks.php\">stronę</a></noscript>";
                } else {echo "Błędne hasło!";}
            } else {echo "Podany użytkownik nie istnieje!";}
        } else {echo "Musisz wpisać hasło!";}
    } else {echo "Musisz wpisać login!";}
}
?>
<br />Nie masz jeszcze konta? <a href="register.php">Zarejestruj się</a>!
</body>
</html>
Zawartość pliku register.php
Kod:
<?php
require_once("config.php");
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<meta name="Description" content="Tu wpisz opis zawartości strony" />
<meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
<title>Rejestracja</title>
</head>
<body>
<form action="" method="post">
Nazwa użytkownika<br />
<input type="text" name="login" value="<?php echo $_POST['login'] ?>" /><br />
Hasło<br />
<input type="password" name="haslo" /><br />
Powtórz hasło<br />
<input type="password" name="v_haslo" /><br />
Email<br />
<input type="text" name="email" value="<?php echo $_POST['email'] ?>" /><br />
<input type="hidden" name="send" />
<input type="submit" value="Zarejestruj" style="margin-top:3px;" />
</form>
<?php
//walidacja maila start
function email($email)
{
if(!preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $email)) {
return false;
} else {
return true;}
}
//walidacja maila end
$spr_user = mysql_query("SELECT * FROM users WHERE login='" . trim($_POST['login']) . "'");
$spr_ip = mysql_query("SELECT * FROM users WHERE ip='" . $_SERVER['REMOTE_ADDR'] . "'");
$res_ip = mysql_fetch_array($spr_ip);
$spr_email = mysql_query("SELECT * FROM users WHERE email='" . trim($_POST['email']) . "'");
$res_email = mysql_fetch_array($spr_email);
$insert = "INSERT INTO users(login, haslo, email, ip) VALUES('" . trim($_POST['login']) . "', '" . md5(trim($_POST['haslo'])) . "', '" . trim($_POST['email']) . "', '" . $_SERVER['REMOTE_ADDR'] ."')";
if(isset($_POST['send'])){
if(trim($_POST['login']) != ''){
  if((trim($_POST['haslo']) != '') && (trim($_POST['v_haslo']) != '')){
   if(trim($_POST['haslo']) == trim($_POST['v_haslo'])){
	if(trim($_POST['email']) != ''){
	 if(email(trim($_POST['email']))){
	  if($_SERVER['REMOTE_ADDR'] != $res_ip['ip']){
	   if(mysql_num_rows($spr_user) == '0'){
		if(trim($_POST['email'] != $res_email['email'])){
		 if(mysql_query($insert)){
		  echo "Rejestracja przebiegła poprawnie. Teraz morzesz się <a href=\"login.php\">zalogować</a>";
		 }
		} else {echo "Ten email jest już w użyciu!";}
	   } else {echo "Podany użytkownik już istnieje!";}
	  } else {echo "Twoje ip jest już używane przez innego użytkownika!";}
	 } else {echo "Wpisany email nie jest prawidłowy!";}
	} else {echo "Musisz wpisać email!";}
   } else {echo "Wpisane hasła nie są takie same!";}
  } else {echo "Musisz wpisać hasło";}
} else {echo "Musisz wpisać login!";}
}
?>
</body>
</html>
Zawartość pliku wyloguj.php
Kod:
<?php
session_start();
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<meta name="Description" content="Tu wpisz opis zawartości strony" />
<meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
<title>Wylogowywanie</title>
</head>
<body>
<?php
if(isset($_SESSION['login'])){
session_destroy();
echo "Wylogowano poprawnie. <script>
  <!--
  function init(){
	setTimeout('document.location=\"login.php\"', 900);
   }
  window.onload=init;
  -->
</script><noscript><a href=\"login.php\">Zaloguj się</a></noscript>";
} else {
echo "Nie można wylogować niezalogowanego użytkownika! Zaloguj się <a href=\"login.php\">tutaj</a>.";
}
?>
</body>
</html>
 
Do góry