Zaczniemy od stworzenia tabeli 'users' w bazie mysql.
CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT, login VARCHAR(40) NOT NULL, haslo VARCHAR(65) NOT NULL, email VARCHAR(60) NOT NULL, data datetime NOT NULL, PRIMARY KEY (id) ) Type = MyISAM;
następnie tworzymy plik inicjujący połączenie z bazą oraz dodamy do niego funkcje filtrującą niebezpieczne znaki.
config.php
<?php
$host = 'localhost'; // host mysql najczęściel localhost
$user = 'user'; // tutaj podajemy login do bazy
$haslo = 'haslo'; // tutaj podajemy hasło do bazy
$nazwa = 'nazwabazy'; // nazwa bazy danych
$baza = @mysql_connect($host, $user, $haslo) or die ('Nie można połaczyc sie z Mysql'); // rozpoczyna połączenie z bazą
mysql_select_db ($nazwa) or die ('Nie moge wybrać bazy'); // wybiera bazę
function czysc($jedziem){
$jedziem = trim($jedziem);
$jedziem = strip_tags($jedziem);
$jedziem = str_replace('DELETE','j',$jedziem);
$jedziem = str_replace('FROM','a',$jedziem);
$jedziem = str_replace('OR','a',$jedziem);
$jedziem = str_replace('SELECT','d',$jedziem);
$jedziem = str_replace('AND','a',$jedziem);
$jedziem = str_replace('UNION','s',$jedziem);
$jedziem = str_replace('#','w',$jedziem);
$jedziem = str_replace('$','i',$jedziem);
$jedziem = str_replace('^','i',$jedziem);
$jedziem = str_replace('*','r',$jedziem);
$jedziem = str_replace('"','y',$jedziem);
$jedziem = str_replace('(','j',$jedziem);
$jedziem = str_replace(')','a',$jedziem);
$jedziem = str_replace(';','d',$jedziem);
$jedziem = str_replace('%','a',$jedziem);
return $jedziem;
}
?>teraz napiszemy skrypt odpowiadający za rejestację nowych użytkowników 'register.php'.
<?php
$login = $_POST['login'];
$haslo = $_POST['haslo'];
$haslo2 = $_POST['haslo2'];
$email = $_POST['email'];
if ($_POST){
if(!empty($login) AND !empty($haslo) AND !empty($haslo2) AND !empty($email)){
if($haslo != $haslo2){
$info .= 'podane hasłą są różne<br />';
}else{
if(!ereg("^.+@.+\..+$", $email)){
$info .= 'niepoprawny adres e-mail<br />';
}else{
require_once('config.php');
$login = czysc($login);
$haslo2 = czysc($haslo);
$email = czysc($email);
$avatar = czysc($avatar);
$gadu = czysc($gadu);
$query = "SELECT login FROM users WHERE login=$login";
$result = mysql_query($query);
if(@mysql_num_rows($result) > 0){
$info .= "wybrana nazwa użytkownika($login) jest już zajęta<br />";
}else{
$query = "INSERT INTO users (login,haslo,email,data) VALUES ('$login',md5('$haslo2'),'$email',NOW())";
mysql_query($query);
$info .= 'rejestracja zakończyła się sukcesem<br />';
}
}
}
}else{
$info .= 'uzupełnij wszystkie pola<br />';
}
}
?>
<html>
<head>
<meta name="generator" content="WebSite PRO 4.3" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<title>Rejestracja</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<tr>
<td>login:</td>
<td><input type='text' name='login'></td>
</tr>
<tr>
<td>hasło:</td>
<td><input type='password' name='haslo'></td>
</tr>
<tr>
<td>powtórz hasło:</td>
<td><input type='password' name='haslo2'></td>
</tr>
<tr>
<td>e-mail:</td>
<td><input type='text' name='email'><input type='hidden' name='control' value='1'></td>
</tr>
<tr>
<td><input type='submit' value='zarejestruj'></td>
</tr>
<tr>
<td></td>
<td colspan='2'><?php if(!empty($info)){ echo $info; } ?></td>
</tr>
</table>
</form>
</body>
</html>kod strony z logowaniem
<?php
session_start();
$ciastko = $_COOKIE['twojastrona'];
if(isset($ciastko)){
require_once('config.php');
$query = "SELECT * FROM users WHERE haslo='$ciastko'";
$result = mysql_query($query);
$row = @mysql_fetch_assoc($result);
if($row){
$_SESSION['login'] = $row['login'];
$_SESSION['haslo'] = $row['haslo'];
$_SESSION['data'] = $row['data'];
$_SESSION['id'] = $row['id'];
$info2 .= 'Zostałeś poprawnie <br>zalogowany na stronę<br />';
}
}
if ($_POST){
if(!empty($_POST["login"]) AND !empty($_POST["haslo"])){
require_once('config.php');
$login = czysc($_POST["login"]);
$haslo = czysc($_POST["haslo"]);
$query = "SELECT * FROM users WHERE login='$login' AND haslo=md5('$haslo')";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
if ($row){
$_SESSION['login'] = $row['login'];
$_SESSION['haslo'] = $row['haslo'];
$_SESSION['data'] = $row['data'];
$_SESSION['id'] = $row['id'];
if(isset($_POST['zapamietaj'])){
setcookie('twojastrona',$_SESSION['haslo'],time()+31536300);
$info2 .='ustawiono ciastko<br />';
}
//$info2 = '';
$info2 .= 'Zostałeś poprawnie <br>zalogowany na stronę<br />';
}else{
$info2 .= 'Nieprawidłowy login lub hasło<br />';
}
}else{
$info2 .= 'wpisz login i hasło<br />';
}
}
?>Ten kod wstawiamy do pliku .php naszej strony tam gdzie ma być formularz logowania użytkownika lub jego dane gdy ten jest zalogowany.
<?php
$nazwa = $_SESSION['login'];
$email = $_SESSION['email'];
if(!empty($nazwa)){
echo ("<center><b>Witaj $nazwa</b><br>$email");
echo ('<br><a href="wyloguj.php"><b>[wyloguj]</b></a><br></center>');
}else{
echo ("<center><form action='$_SERVER[PHP_SELF]' method='post'>");
echo ('<table><tr>
<td><input type="textbox" name="login"></td>
</tr><tr>
<td><input type="password" name="haslo"></td>
</tr><tr>
<td><input type="checkbox" name="zapamietaj">zapamiętaj</td>
</tr><tr>
<td><input type="submit" value="zaloguj"></td>
</tr><tr>
<td><a href="register.php" target="_blank">zarejestruj się</a></td>
</tr></table></form></center>');
}
?>
<div align="center"><br><?php if(!empty($info2)) echo $info2; ?></div>pozostało juz tylko napisać skrypt wylogowujący użytkownika czyli 'wyloguj.php'.
<?php
session_start();
if(isset($_SESSION['login'])){
if(isset($_COOKIE['twojastrona'])){
setcookie('twojastrona');
echo 'cookie skasowano<br />';
}
echo 'Zostałeś poprawnie wylogowany';
}
session_destroy();
echo '<meta http-equiv="refresh" content="1; url=index.php">';
?>Skrypt w stu procentach sprawdzony na localhost'cie.
Zabraniam kopiowania całości lub fragmentów powyższego tutoriala na inne strony.
Tutorial został napisany tylko i wyłacznie na potrzeby społeczności WebTips.pl
Pozdrawiam
Hitman

Logowanie
Rejestracja
Pomoc
Cytuj