Witam, stworzyłem stronę www na której jest możliwość rejestracji i logowania, edycja profilu i wyświetlenie. Rejestracja działa dodaje wszystko do bazy danych, jednakże w momencie logowanie powinien pojawić się komunikat "Zostałeś zalogowany" i tak się dzieje jednak po zalogowaniu powinien pokazać się profil użytkownika a tutaj pokazuje się komunikat ze jesteś z strefie tylko dla zalogowanych i mam znowu sie zalogowac jednak jestem niby zalogowany i tak cały czas.
Kod index.php:
Kod profile.php:
Kod config.php:
Kod register.php
Kod index.php:
<?php
include 'config.php';
db_connect();
check_login();
// pobieramy dane usera
$user_data = get_user_data();
echo '<p>Witaj <b>'.$user_data['user_name'].'</b>!</p>
<p>Jesteś w strefie tylko dla zalogowanych.</p>
<p>[<a href="profile.php?id='.$user_data['user_id'].'">Wyświetl swój profil</a>] [<a href="editprofile.php">Edytuj profil</a>] [<a href="userlist.php">Lista użytkowników</a>] [<a href="logout.php">Wyloguj się</a>]</p>';
db_close();
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<link rel="stylesheet" type="text/css" href="style.css" media="screen">
</head>
<body>
<div id="wrapper">
<div id="logo">
<div class="bpoz"></div>
<div id="comptechlogo">
<div id="comptechlogo1"></div>
<div id="comptechlogo2"></div>
</div>
<div class="bpoz"></div>
</div>
<div id="content">
<div id="panelmenu">
<div class="bpion"></div>
<div id="menu">
</div>
<div id="logowanie">
<form method="post" action="login.php">
<div class="logowanieslot"><font color="#9c9696">Panel logowania:</font></div>
<div class="logowanieslot"><img src="jpgi/ludzik.png" style="float:left;margin-top:4px;"/><input type="text" name="login" style="float:right"id="name";/></div>
<div class="logowanieslot"><img src="jpgi/klodka.png" style="float:left;margin-top:4px;"/><input type="password" name="password" style="float:right" id="password";/></div>
<div class="logowanieslot" style="text-align:center;background-color:#505050;width:55px;margin-top:4px;display: table-cell;vertical-align: middle;"><font color="#f5f5f5"><a href="login.php">Zaloguj</a></div>
<div class="logowanieslot" style="text-align:right"><font color="#f5f5f5"><a href="register.php">Rejestracja </a></font></div>
<div class="logowanieslot" style="text-align:right"><font color="#f5f5f5">Zapomniałem hasła </font></div>
</form>
</div>
<div id="fb"></div>
<div id="partnerzy">
</div>
</div>
<div id="tresc">
<div id="baner"></div>
<div id="tekst">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent malesuada libero at massa luctus, sit amet euismod est scelerisque. Ut at porta nulla, vel volutpat ligula. Aenean venenatis tellus enim. Quisque ultrices aliquet massa, vitae egestas ipsum consectetur in. Pellentesque malesuada purus sit amet iaculis ullamcorper. Vestibulum pellentesque congue lorem, nec varius ante viverra suscipit. Vestibulum vehicula neque eget arcu fringilla vehicula. Etiam rhoncus elit nec orci sodales, vitae dapibus neque vehicula. Quisque aliquam dapibus cursus.
Praesent lectus magna, pharetra sit amet suscipit nec, accumsan sed ipsum. Nam sed arcu justo. Fusce sodales semper turpis ut aliquam. Cras ac malesuada dolor, eu pellentesque sapien. Nunc nec leo non lectus placerat condimentum eu non urna. Morbi at auctor purus. Vestibulum at aliquam urna, vel ullamcorper augue. Morbi cursus erat quis cursus bibendum. Fusce tempor tincidunt dapibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Duis posuere velit elit, id iaculis ligula facilisis eu. Fusce accumsan, lorem eu volutpat rhoncus, nunc quam molestie nunc, sit amet feugiat elit nisi ut mauris. Vestibulum lacinia posuere ante in ultrices. Aliquam sed ultrices velit. Cras tincidunt tristique volutpat. Aliquam malesuada dapibus nulla, vel sodales felis ullamcorper in.</div>
<div id="dzialanie"></div>
</div>
</div>
<div id="stopka"></div>
</div>
</body>
</html>
Kod profile.php:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<link rel="stylesheet" type="text/css" href="style.css" media="screen">
</head>
<body>
<div id="wrapper">
<div id="logo">
<div class="bpoz"></div>
<div id="comptechlogo">
<div id="comptechlogo1"></div>
<div id="comptechlogo2"></div>
</div>
<div class="bpoz"></div>
</div>
<div id="content">
<div id="panelmenu">
<div class="bpion"></div>
<div id="menu">
</div>
<div id="logowanie">
<?php
include 'config.php';
db_connect();
check_login();
// filtrujemy id oraz rzutujemy je na int
$_GET['user_id'] = (int)clear($_GET['user_id']);
// pobieramy dane usera z podanego id
$user_data = get_user_data($_GET['user_id']);
// sprawdzamy czy znalazło użytkownika
// jeśli nie to wyświetlamy komunikat
// a jeśli tak to wyświetlamy wszystkie jego dane
// jeśli user nie ma podanej strony www lub skąd jest to wyświetlamy "brak"
if($user_data === false) {
echo '<p>Niestety, taki użytkownik nie istnieje.</p>
<p>[<a href="index.php">Powrót</a>]</p>';
} else {
echo '<h2>Profil użytkownika</h2>
<p>Nick: <b>'.$user_data['user_name'].'</b></p>
<p>Email: '.$user_data['user_email'].'</p>
<p>Data rejestracji: '.date("d.m.Y, H:i", $user_data['user_regdate']).'</p>
<p>Strona WWW: '.(empty($user_data['user_website']) ? 'brak' : $user_data['user_website']).'</p>
<p>Skąd: '.(empty($user_data['user_from']) ? 'brak' : $user_data['user_from']).'</p>';
}
db_close();
?>
</div>
<div id="fb"></div>
<div id="partnerzy">
</div>
</div>
<div id="tresc">
<div id="baner"></div>
<div id="tekst">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent malesuada libero at massa luctus, sit amet euismod est scelerisque. Ut at porta nulla, vel volutpat ligula. Aenean venenatis tellus enim. Quisque ultrices aliquet massa, vitae egestas ipsum consectetur in. Pellentesque malesuada purus sit amet iaculis ullamcorper. Vestibulum pellentesque congue lorem, nec varius ante viverra suscipit. Vestibulum vehicula neque eget arcu fringilla vehicula. Etiam rhoncus elit nec orci sodales, vitae dapibus neque vehicula. Quisque aliquam dapibus cursus.
Praesent lectus magna, pharetra sit amet suscipit nec, accumsan sed ipsum. Nam sed arcu justo. Fusce sodales semper turpis ut aliquam. Cras ac malesuada dolor, eu pellentesque sapien. Nunc nec leo non lectus placerat condimentum eu non urna. Morbi at auctor purus. Vestibulum at aliquam urna, vel ullamcorper augue. Morbi cursus erat quis cursus bibendum. Fusce tempor tincidunt dapibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Duis posuere velit elit, id iaculis ligula facilisis eu. Fusce accumsan, lorem eu volutpat rhoncus, nunc quam molestie nunc, sit amet feugiat elit nisi ut mauris. Vestibulum lacinia posuere ante in ultrices. Aliquam sed ultrices velit. Cras tincidunt tristique volutpat. Aliquam malesuada dapibus nulla, vel sodales felis ullamcorper in.</div>
<div id="dzialanie"></div>
</div>
</div>
<div id="stopka"></div>
</div>
</body>
</html>
Kod config.php:
<?php
define('DBHOST', 'localhost');
define('DBUSER', 'user');
define('DBPASS', haslo');
define('DBNAME', 'baza');
function db_connect() {
// połączenie z mysql
mysql_connect(DBHOST, DBUSER, DBPASS) or die('<h2>ERROR</h2> MySQL Server is not responding');
// wybór bazy danych
mysql_select_db(DBNAME) or die('<h2>ERROR</h2> Cannot connect to specified database');
}
function db_close() {
mysql_close();
}
function clear($text) {
// jeśli serwer automatycznie dodaje slashe to je usuwamy
if(get_magic_quotes_gpc()) {
$text = stripslashes($text);
}
$text = trim($text); // usuwamy białe znaki na początku i na końcu
$text = mysql_real_escape_string($text); // filtrujemy tekst aby zabezpieczyć się przed sql injection
$text = htmlspecialchars($text); // dezaktywujemy kod html
return $text;
}
function codepass($password) {
// kodujemy hasło (losowe znaki można zmienić lub całkowicie usunąć
return sha1(md5($password).'#!%Rgd64');
}
// funkcja na sprawdzanie czy user jest zalogowany, jeśli nie to wyświetlamy komunikat
function check_login() {
if(!$_SESSION['logged']) {
die('<p>To jest strefa tylko dla użytkowników.</p>
<p>[<a href="login.php">Logowanie</a>] [<a href="register.php">Zarejestruj się</a>]</p>');
}
}
// funkcja na pobranie danych usera
function get_user_data($user_id = -1) {
// jeśli nie podamy id usera to podstawiamy id aktualnie zalogowanego
if($user_id == -1) {
$user_id = $_SESSION['user_id'];
}
$result = mysql_query("SELECT * FROM `users` WHERE `user_id` = '{$user_id}' LIMIT 1");
if(mysql_num_rows($result) == 0) {
return false;
}
return mysql_fetch_assoc($result);
}
// startujemy sesje
session_start();
// jeśli nie ma jeszcze sesji "logged" i "user_id" to wypełniamy je domyślnymi danymi
if(!isset($_SESSION['logged'])) {
$_SESSION['logged'] = false;
$_SESSION['user_id'] = -1;
}
?>
Kod register.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<link rel="stylesheet" type="text/css" href="style.css" media="screen">
</head>
<body>
<div id="wrapper">
<div id="logo">
<div class="bpoz"></div>
<div id="comptechlogo">
<div id="comptechlogo1"></div>
<div id="comptechlogo2"></div>
</div>
<div class="bpoz"></div>
</div>
<div id="content">
<div id="panelmenu">
<div class="bpion"></div>
<div id="menu">
<a href="index.php"><div class="menuslot">Główna</div></a>
<a href="zamow.php"><div class="menuslot">Zamów usługe</div></a>
<a href="#"><div class="menuslot">O nas</div></a>
<a href="cennik.php"><div class="menuslot">Cennik</div></a>
<a href="#"><div class="menuslot">Regulamin</div></a>
<a href="#"><div class="menuslot">Kontakt</div></a>
<a href="#"><div class="menuslot">Opinie Klientów</div></a>
</div>
<div id="logowanie">
<div class="logowanieslot"><font color="#9c9696">Panel logowania:</font></div>
<div class="logowanieslot"><img src="jpgi/ludzik.png" style="float:left;margin-top:4px;"/><input type="text" name="login" style="float:right"id="name";/></div>
<div class="logowanieslot"><img src="jpgi/klodka.png" style="float:left;margin-top:4px;"/><input type="password" name="password" style="float:right" id="password";/></div>
<div class="logowanieslot" style="text-align:center;background-color:#505050;width:55px;margin-top:4px;display: table-cell;vertical-align: middle;"><font color="#f5f5f5"><a href="login.php">Zaloguj</a></div>
<div class="logowanieslot" style="text-align:right"><font color="#f5f5f5"><a href="register.php">Rejestracja </a></font></div>
<div class="logowanieslot" style="text-align:right"><font color="#f5f5f5">Zapomniałem hasła </font></div>
</div>
<div id="fb"></div>
<div id="partnerzy">
Nasi partnerzy:<br/><br/>
<div class="partnerzyslot"><img src="jpgi/ikona3.png"/></div>
<div class="partnerzyslot"><img src="jpgi/ikona2.png"/></div>
<div class="partnerzyslot"><img src="jpgi/ikona.png"/></div>
</div>
</div>
<div id="tresc">
<?php
include 'config.php';
db_connect();
// sprawdzamy czy user nie jest przypadkiem zalogowany
if(!$_SESSION['logged']) {
// jeśli zostanie naciśnięty przycisk "Zarejestruj"
if(isset($_POST['name'])) {
// filtrujemy dane...
$_POST['name'] = clear($_POST['name']);
$_POST['email'] = clear($_POST['email']);
$_POST['password'] = clear($_POST['password']);
$_POST['password2'] = clear($_POST['password2']);
$_POST['imie'] = clear($_POST['imie']);
$_POST['nazwisko'] = clear($_POST['nazwisko']);
$_POST['miejscowosc'] = clear($_POST['miejscowosc']);
$_POST['kod'] = clear($_POST['kod']);
$_POST['ulica'] = clear($_POST['ulica']);
$_POST['nr'] = clear($_POST['nr']);
//$_POST['data']=clear($_POST['data']['rok'].'-'.$_POST['data']['miesiac'].'-'.$_POST['data']['dzien']);
// sprawdzamy czy wszystkie pola zostały wypełnione
if(empty($_POST['name']) || empty($_POST['password']) || empty($_POST['password2']) || empty($_POST['email']) || empty($_POST['imie']) || empty($_POST['nazwisko']) || empty($_POST['kod']) || empty($_POST['ulica']) || empty($_POST['nr'])) {
echo '<p>Musisz wypełnić wszystkie pola.</p>';
// sprawdzamy czy podane dwa hasła są takie same
} elseif($_POST['password'] != $_POST['password2']) {
echo '<p>Podane hasła różnią się od siebie.</p>';
// sprawdzamy poprawność emaila
} elseif(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
echo '<p>Podany email jest nieprawidłowy.</p>';
} else {
// sprawdzamy czy są jacyś uzytkownicy z takim loginem lub adresem email
$result = mysql_query("SELECT Count(user_id) FROM `users` WHERE `user_name` = '{$_POST['name']}' OR `user_email` = '{$_POST['email']}'");
$row = mysql_fetch_row($result);
if($row[0] > 0) {
echo '<p>Już istnieje użytkownik z takim loginem lub adresem e-mail.</p>';
} else {
// jeśli nie istnieje to kodujemy haslo...
$_POST['password'] = codepass($_POST['password']);
// i wykonujemy zapytanie na dodanie usera
mysql_query("INSERT INTO `users` (`user_name`,`user_imie` ,`user_nazwisko`,`user_password`, `user_email`, `user_miejscowosc`, `user_kod`, `user_ulica`, `user_nr`, `user_regdate`) VALUES ('{$_POST['name']}','{$_POST['imie']}','{$_POST['nazwisko']}', '{$_POST['password']}', '{$_POST['email']}', '{$_POST['miejscowosc']}', '{$_POST['kod']}','{$_POST['ulica']}','{$_POST['nr']}', '".time()."')");
function komunikat(){
echo '<p>Zostałeś poprawnie zarejestrowany! Możesz się teraz <a href="login.php">zalogować</a>.</p>';
}
}
}
}
// wyświetlamy formularz
else '';
} else {
echo '<p>Jesteś już zalogowany, więc nie możesz stworzyć nowego konta.</p>
<p>[<a href="index.php">Powrót</a>]</p>';
}
db_close();
?>
<form method="post" action="register.php">
<img src="jpgi/login.png" style="float:left;margin-top:4px;"/><input type=text name=name style="float:left;height:20px"/><br><br>
<img src="jpgi/haslo.png" style="float:left;margin-top:4px;"/><input type=password name=password style="float:left;height:20px"/><br><br>
<img src="jpgi/phaslo.png" style="float:left;margin-top:4px;"/><input type=password name=password2 style="float:left;height:20px"/><br><br>
<img src="jpgi/email.png" style="float:left;margin-top:4px;"/><input type=text name=email style="float:left;height:20px"/><br><br>
<img src="jpgi/imie.png" style="float:left;margin-top:4px;"/><input type=text name=imie style="float:left;height:20px"/><br><br>
<img src="jpgi/nazwisko.png" style="float:left;margin-top:4px;"/><input type=text name=nazwisko style="float:left;height:20px"/><br><br>
<img src="jpgi/miejscowosc.png" style="float:left;margin-top:4px;"/><input type=text name=miejscowosc style="float:left;height:20px"/><br><br>
<img src="jpgi/kod.png" style="float:left;margin-top:4px;"/><input type=text name=kod style="float:left;height:20px"/><br><br>
<img src="jpgi/ulica.png" style="float:left;margin-top:4px;"/><input type=text name=ulica style="float:left;height:20px"/><br><br>
<img src="jpgi/nr.png" style="float:left;margin-top:4px;"/><input type=text name=nr style="float:left;height:20px"/><br><br>
<img src="jpgi/data.png" name=data style="float:left;margin-top:4px;"/><select name="dzien" style="float:left;height:20px; size=1;"><br><br>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select>
<select name="miesiac" style="height:20px; size=1; float:left;margin-left:4px;">
<option>Styczeń</option>
<option>Luty</option>
<option>Marzec</option>
<option>Kwiecień</option>
<option>Maj</option>
<option>Czerwiec</option>
<option>Lipiec</option>
<option>Sierpień</option>
<option>Wrzesień</option>
<option>Październik</option>
<option>Listopad</option>
<option>Grudzień</option>
</select>
<select name="rok" style="float:left;height:20px; size=1; margin-left:4px;">
<option>1995</option>
<option>1994</option>
<option>1993</option>
<option>1992</option>
<option>1991</option>
<option>1990</option>
<option>1989</option>
<option>1988</option>
<option>1987</option>
<option>1986</option>
<option>1985</option>
<option>1984</option>
<option>1983</option>
<option>1982</option>
<option>1981</option>
<option>1980</option>
<option>1979</option>
<option>1978</option>
<option>1977</option>
<option>1976</option>
<option>1975</option>
<option>1974</option>
<option>1973</option>
</select><br><br>
<input type="submit" value="Zarejestruj">
</form>
<div id="dzialanie"></div>
</div>
</div>
<div id="stopka"></div>
</div>
</body>
</html>