<?php // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent) // start sesji // połšczenie z mysql require('funkcje.php'); include ('top.php'); // sprawdzamy czy user jest już zalogowany if($_SESSION['logged']){ include 'profile.php'; } else { // tworzymy prosty formularz echo '<form action="login.php" method="POST"> <table border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td>Login:</td> <td><input type="text" name="nick" /></td> </tr> <tr> <td>Hasło</td> <td><input type="password" name="pass" /></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="ok" value="Zaloguj" /> </td> </tr> </table> </form>'; // jeœli zostanie naciœnięty przycisk "Zaloguj" { $nick = $_POST['nick']; $pass = $_POST['pass']; // sprawdzamy czy wszystkie dane zostały podane // jeœli tak... else { // filtrujemy dane // kodujemy hasło // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem // jeœli nie istnieje // jeœli tak... else { // dodajemy wynik zapytania do tablicy // ustawianie sesji że użytkownik jest zalogowany $_SESSION['logged'] = true; // dodawanie do sesji id użytkownika, login oraz datę rejestracji $_SESSION['id'] = $row['id']; $_SESSION['nick'] = $row['nick']; $_SESSION['data_rejestracji'] = $row['data_rejestracji']; $_SESSION['mail'] = $row['mail']; $_SESSION['pass'] = $row['pass']; $_SESSION['imie'] = $row['imie']; $_SESSION['nazwisko'] = $row['nazwisko']; $_SESSION['telefon'] = $row['telefon']; // wyœwietlenie komunikatu oznaczajšcego poprawne logowanie } } } } include 'botom.php'; // rozłšczenie z bazš danych // koniec buforowania ?>
baza
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nick` varchar(100) NOT NULL DEFAULT '', `pass` varchar(60) NOT NULL DEFAULT '', `data_rejestracji` int(11) NOT NULL DEFAULT '0', `imie` varchar(20) NOT NULL DEFAULT '', `nazwisko` varchar(30) NOT NULL DEFAULT '', `telefon` varchar(15) NOT NULL DEFAULT '', `mail` varchar(40) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=2 ;
rejestracja.php
<?php
// rozpoczêcie buforowania (jest to potrzebne by nie mieæ b³êdów typu headers already sent)
ob_start();
// start sesji
session_start();
// po³¹czenie z mysql
require('funkcje.php');
include ('top.php');
// nag³ówek
if($_SESSION['logged'])
{
// wyœwietlamy userowi jego dane
echo '<div class="error">Nie możesz wykonać rejestracji jak jestes zalogowany!</div>';
}
else
{
echo '<h2>Rejestracja</h2>';
// tworzymy prosty formularz
echo '<form action="register.php" method="POST">
<table width="380" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>Login:</td>
<td><input type="text" name="nick" /></td>
</tr>
<tr>
<td>Haslo:</td>
<td><input type="password" name="pass" /></td>
</tr>
<tr>
<td>Potwierdz haslo:</td>
<td><input type="password" name="pass2" /></td>
</tr>
<tr>
<td>Imie:</td>
<td><input type="text" name="imie" id="imie" /></td>
</tr>
<tr>
<td>Nazwisko:</td>
<td><input type="text" name="nazwisko" id="nazwisko" /></td>
</tr>
<tr>
<td>numer telefonu:</td>
<td><input type="text" name="telefon" id="telefon" /></td>
</tr>
<tr>
<td>Twój E-mail:</td>
<td><input type="text" name="mail" id="mail" /></td>
</tr>
<tr>
<td>Powtórz E-mail</td>
<td><input type="text" name="mail2" id="mail2" /></td>
</tr>
<tr>
<td><input type="reset" value="Reset" /></td>
<td><input type="submit" name="ok" value="Rejestruj" /></td>
</tr>
<tr>
<td colspan=2><div class="error">Aby rejestracja przebiegła pomyślnie to wszystkie pola muszą być uzupełnione!</div></td>
</tr>
</table>
</form>';
// jeœli zostanie naciœniêty przycisk "Rejestruj"
if(isset($_POST['ok']))
{
$nick = $_POST['nick'];
$pass = $_POST['pass'];
$pass2 = $_POST['pass2'];
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$telefon = $_POST['telefon'];
$mail = $_POST['mail'];
$mail2 = $_POST['mail2'];
// sprawdzamy czy wszystkie dane zosta³y podane
if(empty($nick) ||
empty($pass) ||
empty($pass2) ||
empty($imie) ||
empty($nazwisko)
|| empty($telefon) ||
empty($mail) ||
empty($mail2) ) echo '<div class="error">Wpisz wszystkie pola!</div>';
// jeœli tak...
else
{
// filtrujemy dane
$nick = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($nick))));
$pass = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($pass))));
// sprawdzamy czy jest ju¿ u¿ytkownik o takim loginie
$result = mysql_query("SELECT * FROM users WHERE nick='$nick'");
// jeœli ju¿ istnieje
if(mysql_num_rows($result)!=0) echo '<div class="error">Juz istnieje konto z takim loginem!</div>';
// jeœli nie...
if ($pass!=$pass2) echo '<div class="error">Hasla sie niezgadzaja!</div>';
// sprawdzenie poprawnosci adresu mail
// w zmiennej $email mamy e-mail do sprawdzenia
//sprawdzanie czy sia adresy email zgadzaja
if ($mail!=$mail2) {
echo '<div class="error">Adresy E-mail sie niezgadzaja!</div>';
}
elseif(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",$mail))
{
echo '<div class="error">Adres E-mail jest nieprawidlowy!</div>';
}
else
{
// pobieramy aktualn¹ datê
$data = time();
// kodujemy has³o
$pass = md5($pass);
// tworzymy zapytanie
$query = "INSERT INTO users (nick , pass, data_rejestracji, imie, nazwisko, telefon, mail)
VALUES ('$nick', '$pass', '$data', '$imie', '$nazwisko', '$telefon', '$mail')";
// jeœli zapytanie wykona siê poprawnie to zostanie wyœwietlony stosowny komunika
if(mysql_query($query)) echo 'Zostales poprawnie zarejestrowany! Mozesz sie teraz <a href="login.php">zalogować</a>';
}
}
}
}
include 'botom.php';
// roz³¹czenie z baz¹ danych
mysql_close();
// koniec buforowania
ob_end_flush();
?>
i moj nie udolnie napisany pliczek ;/
<?php
$pass = $_SESSION['pass'];
$a = trim($_GET['a']);
$id = trim($_GET['id']);
if($a == 'edit' and !empty($id)) {
/* zapytanie do tabeli */
$wynik = mysql_query("SELECT * FROM users WHERE id='$id'")
or die('Błąd zapytania');
/*
wyświetlamy wyniki, sprawdzamy,
czy zapytanie zwróciło wartość większą od 0
*/
if(mysql_num_rows($wynik) > 0) {
/* odczytujemy zawartość wiersza z tabeli */
$r = mysql_fetch_assoc($wynik);
echo '<form action="login.php?change=pass" method="POST">
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>Stare hasło</td>
<td><input type="password" name="pass" id="pass" /></td>
</tr>
<tr>
<td>Nowe hasło</td>
<td><input type="password" name="npass" id="npass" /></td>
</tr>
<tr>
<td>Ponowenie nowe hasło</td>
<td><input type="password" name="npass2" id="npass2" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="ok" value="Zaloguj" />
</td>
</tr>
</table>
</form>';
}
}
elseif($a == 'save') {
$pass = $_POST['pass'];
$npass = $_POST['npass'];
$npass2 = $_POST['npass2'];
// sprawdzamy czy wszystkie dane zosta³y podane
if(empty($pass) || empty($npass) || empty($npass2)) echo '<div class="error">Wpisz wszystkie pola!</div>';
// jeœli tak...
else
{
// filtrujemy dane
$pass = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($pass))));
$npass = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($npass))));
$npass2 = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($npass2))));
// kodujemy has³o
$npass = md5($npass);
mysql_query("UPDATE users SET pass='$npass' WHERE id='$id'")
or die('Błąd zapytania');
echo 'Dane zostały zaktualizowane';
echo '<meta http-equiv="Refresh" content="1; url=login.php" />';
}
}
?>
ostatnie pliczki musialem tak zrobic bo bbcode bo tresc jest za dluga ;/