będę pisał częściami krok to kroku
formularz rejestracji
td{padding:0.25em 1px;}
td.lbl{text-align:right;}
tr.required td.lbl{background:#FCC; border-left: 0.5em solid:red;}
td.lbl{background:#CFC; border-laft: 0.5em solod:green;}
<form method="post" action="nowa_rejestracja.php"> <table bgcolor="#ffffff" align="left" width="100%" cellpadding="0" cellspacing="0"> <td class="lbl">Adres e-mail:
</td> <td class="required"><input type="text" name="email" size="30" maxlength="100"></td></tr> <td class="lbl">Preferowana nazwa użytkownika :
</td> <td valign=top><input type="text" name="user" size="16" maxlength="16"></td></tr> <td class="lbl">Hasło(pomiędzy 4 i 16 znaków):
</td> <td valign=top><input type="password" name="haslo" size="16" maxlength="16"></td></tr> <td class="lbl">Potwierdź hasło:
</td> <td><input type="password" name="haslo2" size="16" maxlength="16"></td></tr>
<td colspan=2 align=center> <input type="submit" value="Rejestruj"></td></tr>
nowa_rejestracja.php
<style type="text/css">
#prblem
{
text-align:left;
width:94%;
background:#FF3030;
border:1px;
cellpadding:12px;
background-color:#FF3300;
}
</style>
<?php
include("funkcje.php");
function tworz_tabele()
{
?>
<table align="center" bordercolor="#000000" border="1" cellpadding="1" cellspacing="0" id="prblem">
<?
}
// utworzenie krótkich nazw zmiennych
$email = $_POST['email'];
$id = $_POST['id'];
$user = $_POST['user'];
$haslo = $_POST['haslo'];
$haslo2 = $_POST['haslo2'];
if(!eregi('^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$', $email)) {
?>
<br>
<? tworz_tabele(); ?>
<tr>
<td bgcolor="#FF3030"> <b><font size=3>Problem:</td></tr><td></font><font size="2">
<?
echo 'Niepoprawny adres e-mail';
?>
</font></td></tr></table>
<?
}
if (!wypelniony($_POST))
{
?>
<br>
<? tworz_tabele(); ?>
<tr>
<td bgcolor="#FF3030"> <b><font size=3>Problem:</td></tr><td></font><font size="2">
<?
echo 'Formularz wypełniony nieprawidłowo proszę wrócić i spróbować ponownie. </tr></td></font></table><br> <? ';
{
?>
<br>
<? tworz_tabele(); ?>
<tr>
<td bgcolor="#FF3030"> <b><font size=3>Problem:</td></tr><td></font><font size="2">
Proszę wpisać adres e-mail
</tr></td></font></table><br>
<?
}
if ($haslo != $haslo2)
{
?>
<br>
<? tworz_tabele(); ?>
<tr>
<td bgcolor="#FF3030"> <b><font size=3>Problem:</td></tr><td></font><font size="2">
<?
echo 'Niepasujące do siebie hasła proszę wrócić i spróbować ponownie. < </div> </tr></td></font></table><br> <? ';
}
// sprawdzenie długo?ci hasła
{
?>
<br>
<? tworz_tabele(); ?>
<tr>
<td bgcolor="#FF3030"> <b><font size=3>Problem:</td></tr><td></font><font size="2">
<?
echo 'Nazwa uzytkownika nie może mieć więcej niż 16 znaków proszę wrócić i spróbować ponownie. </div> </tr></td></font></table><br> <? ';
}
// sprawdzenie długo?ci nazwy użytkownika
{
?>
<br>
<? tworz_tabele(); ?>
<tr>
<td bgcolor="#FF3030"> <b><font size=3>Problem:</td></tr><td></font><font size="2">
<?
echo 'Hasło musi mieć co najmniej 4 znaki proszę wrócić i spróbować ponownie. </div> </tr></td></font></table><br> <? ';
}
}
// nieprawidłowy adres poczty elektronicznej
else
{
// próba zarejestrowania
rejestruj($user, $email, $haslo, $id);
// rejestracja zmiennej sesji
$_SESSION['prawid_uzyt'] = $user;
?>
<br>
<table align="center" class="ucz" bordercolor="black" rules="all" width="94%" bgcolor="#FF6060" border="1" cellspacing="0" cellpadding="1"><tr> <td bgcolor="#008000"> <b><font size=3>Rejestracja pomyślna</td> </tr><td bgcolor="#50D050"></font><font size="2">
<?
echo 'Rejestracja zakończyła się sukcesem. Proszę udać się na stronę ';
?>
<br /> <br />
</div> </tr></td></font></table><br>
<?php
}
funkcje.php
<?php
function rejestruj($user, $email, $haslo, $id)
// zarejestrowanie nowej osoby w bazie danych
// zwraca true lub komunikat o błędzie
{
// sprawdzenie, czy nazwa użytkownika nie powtarza się
$wynik = mysql_query("select * from uzytkownik where user='$user'"); if (!$wynik)
echo 'Wykonanie zapytania nie powiodło się.';
echo 'Nazwa użytkownika zajęta, proszę wrócić i wybrać inną.';
// jeżeli wszystko w porządku, umieszczenie w bazie danych
$data = date('d.m.Y H:i:s'); $wynik = "insert into uzytkownik (user, haslo, email, data) values ('$user', sha1('$haslo'), '$email', '$data')";
if (!$query)
echo 'Rejestracja w bazie danych niemożliwa proszę spróbować później prosze skontaktow
ać się z administratorem.';
return true;
}
function loguj($user, $haslo)
// sprawdzenie nazwy użytkownika i hasła w bazie danych
// jeżeli się zgadza, zwraca true
// jeżeli nie, wyrzuca wyjštek
{
where user='$user'
and haslo = sha1('$haslo')");
if (!$wynik)
echo 'Logowanie nie powiodło się.';
return true;
else
}
function sprawdz_prawid_uzyt()
{
if (isset($_SESSION['prawid_uzyt'])) {
}
else
{
// nie jest zalogowany
echo 'Brak zalogowania.<br />';
tworz_stopke_html();
}
}
function sprawdz_prawid_uzyt2()
// sprawdzenie czy użytkownik jest zalogowany i powiadomienie go jeżeli nie
{
if (isset($_SESSION['prawid_uzyt'])) {
}
else
{
// nie jest zalogowany
?> <br>
<br> <table class="lewem" align="center" class="ucz" bordercolor="black" rules="all" width="94%" background="black" bgcolor="#FF8080" border="1" cellspacing="0" cellpadding="1"><tr> <td bgcolor="#FF3030"> <b><font size=3>Problem:</td></tr><td></font><font size="2"> <?
echo 'Aby móc napisać opinie należy być zalogowanym. ';
?> </tr></td></font><div class="to"><?
?></table></div>
<br><?
}
}
function zmien_haslo($user, $stare_haslo, $nowe_haslo)
// zmiana hasła użytkownika ze stare_haslo na nowe_haslo
// zwraca true lub false
{
// jeżeli stare hasło jest prawidłowe zmiana nowe_haslo i zwrócenie true
// w przeciwnym wypadku wyrzucenie wyjštku
loguj($user, $stare_haslo);
set haslo = sha1('$nowe_haslo')
where user = '$user'");
if (!$wynik)
echo 'Zmiana hasła nie powiodła się.'; else
return true;
echo 'Hasło zmienione :-)'; // zmiana udana
}
function pobierz_losowe_slowo($dlugosc_min, $dlugosc_max)
//pobranie losowego słowa ze słownika o określonej długości zwrócenie go
{
// generowanie losowego słowa
$slowo = '';
// tę ścieżkę należy dostosować do ustawień własnego systemu
$slownik = '/usr/dict/words'; // słownik ispell
$wp = @fopen($slownik, 'r'); if(!$wp)
return false;
// przejście do losowej pozycji w słowniku
$losowa_pozycja = rand(0
, $wielkosc); fseek($wp, $losowa_pozycja);
// pobranie ze słownika następnego pełnego słowa o wła?ciwej długo?ci
while (strlen($slowo)< $dlugosc_min || strlen($slowo)>$dlugosc_max || strstr($slowo, "'")) {
fseek($wp, 0
); // jeżeli koniec pliku, przeskocz na poczštek $slowo = fgets($wp, 80
); // przeskoczenie pierwszego słowa bo może być niepełne $slowo = fgets($wp, 80
); // potencjalne hasło };
$slowo=trim($slowo); // obcięcie poczštkowego \n z funkcji fgets return $slowo;
}
function ustaw_haslo($user)
// ustawienie hasła użytkownika na losowš warto?ć
// zwraca nowe hasło lub false w przypadku niepowodzenia
{
// pobranie losowego słowa ze słownika o długo?ci pomiędzy 6 i 13 znaków
$nowe_haslo = pobierz_losowe_slowo(6, 13);
if($nowe_haslo==false)
echo 'Wygenerowanie nowego hasła nie powiodło się.'; // dodanie liczby pomiędzy 0 i 999 w celu stworzenia lepszego hasła
$losowa_liczba = rand(0
, 999
); $nowe_haslo .= $losowa_liczba;
// ustawienie nowego hasła w bazie danych lub zwrócenie false
return false;
set haslo = sha1('$nowe_haslo')
where user = '$user'");
if (!$wynik)
echo 'Zmiana hasła nie powiodła się.'; // hasło nie zmienione else
return $nowe_haslo; // hasło zmienione pomy?lnie
}
function powiadom_haslo($user, $haslo)
// powiadomienie użytkownika o zmianie hasła
{
where user='$user'");
if (!$wynik)
{
echo 'Nie znaleziono adresu e-mail'; }
{
echo 'Nie znaleziono adresu e-mail'; // nazwy użytkownika nie ma w bazie danych }
else
{
$email = $wiersz->email;
$od = "From: obsluga@zakladkaphp r\n";
$wiad = "Hasło systemu ZakładkaPHP zostało zmienione na $haslo r\n"
."Proszę zmienić je przy następnym logowaniu. r\n";
if (mail($email, 'Informacja o logowaniu', $wiad, $od)) return true;
else
echo 'Wysłanie e-maila nie powiodło się'; }
}
?>
zmiana_hasła.php
<?php
// utworzenie krótkich nazw zmiennych
$stare_haslo = $_POST['stare_haslo'];
$nowe_haslo = $_POST['nowe_haslo'];
$nowe_haslo2 = $_POST['nowe_haslo2'];
$sql = mysql_query("select * from uzytkownik where user = '".$_SESSION[prawid_uzyt
]."'");
if(!$sql)
{
}
if(empty($_POST[stare_haslo
])) {
echo 'Wpisz stare hasło!<br><br>'; echo "<span id=\"href2\"><a href=\"javascript:history.back();\">Wstecz</a></span>"; }
if ($nowe_haslo!=$nowe_haslo2)
{
echo 'Wprowadzone hasła nie są identyczne. Hasło nie zostało zmienione.<br><br>'; echo "<span id=\"href2\"><a href=\"javascript:history.back();\">Wstecz</a></span>"; }
{
echo 'Nowe hasło musi mieć długość co najmniej 6 znaków. Proszę spróbować ponownie.<br><br>'; echo "<span id=\"href2\"><a href=\"javascript:history.back();\">Wstecz</a></span>"; }
if(sha1($_POST[stare_haslo]) <> $row[haslo])
{
echo 'Poprzednie hasło nie jest nieprawidłowe<br><br>'; echo "<span id=\"href2\"><a href=\"javascript:history.back();\">Wstecz</a></span>";
}
else
{
// próba uaktualnienia
zmien_haslo($_SESSION['prawid_uzyt'], $stare_haslo, $nowe_haslo);
}
?>
pozostałe funkcje
function tworz_naglowek_html($tytul)
{
// wy?wietlenie nag3ówka HTML
?>
<html>
<head>
<style>
body { font-family: Verdana, verdana, Helvetica, sans-serif; font-size: 13px }
li, td { font-family: verdana, Helvetica, sans-serif; font-size: 13px }
</style>
</head>
<body>
<?php
if($tytul)
tworz_tytul_html($tytul);
}
function tworz_stopke_html()
{
// wyświetlenie stopki HTML
?>
</body>
</html>
<?php
}
function tworz_tytul_html($tytul)
{
// wy?wietlenie tytu3u
?>
<h2>
<?php echo $tytul;?></h2>
<?php
}
function tworz_HTML_URL($url, $nazwa)
{
// wy?wietlenie URL-a jako 3?cza i nowa linia
?>
<br /><a href="
<?php echo $url;?>">
<?php echo $nazwa;?></a><br />
<?php
}
function wyswietl_informacje_witryny()
{
// wyświetlenie informacji marketingowych
?>
<?php
}
function wyswietl_form_log()
{
?>
<a href="nowa_rejestarcja.php">Jeszcze nie członek?</a>
<form method=post action="czlonek.php" >
<table bgcolor=#cccccc>
<tr>
<td colspan=2>Logowanie członków:</td>
<tr>
<td>Nazwa użytkownika:</td>
<td><input type=text name=user></td></tr>
<tr>
<td>Hasło:</td>
<td><input type="password" name="haslo"></td></tr>
<tr>
<td colspan="2" align="center">
<input type=submit value="Logowanie"></td></tr>
<tr><td>
<input type="checkbox" checked="checked" name="pamietaj" value="ok"><font size="1"> - Zapamietaj mnie! </font>
</td></tr>
</table></form>
<?php
}
function wyswietl_form_rej()
{
?>
<script language="javascript" type="text/javascript">
<!--
function java(f) {
user = f.autor.value;
haslo = f.tresc.value;
email = f.email.value;
haslo2 = f.haslo2.value;
if (user=="") {
alert("Musisz wypełnić pole: imie lub nick");
return false;
}
if (haslo=="") {
alert("Musisz wypełnić pole: imie lub nick");
return false;
}
if (haslo2=="") {
alert("Musisz wypełnić pole: imie lub nick");
return false;
}
if (email=="") {
alert("Wpisz adres eMail");
return false;
}
if (email != "") {
var re = new RegExp("[^@]{1,}[@]{1}[^@.]{1,}[.]{1}[^@]{1,}","gi");
var wynik = re.test(email);
if (wynik == true) {
window.alert("Adres prawidłowy, wysyłam formularz.");
return true;
}
if (wynik == false) {
window.alert("Nieprawidłowy adres e-mail.");
return false;
}
}
return true;
}
// -->
</script>
<style>
td{padding:0.25em 1px;}
td.lbl{text-align:right;}
tr.required td.lbl{background:#FCC; border-left: 0.5em solid:red;}
td.lbl{background:#CFC; border-laft: 0.5em solod:green;}
</style>
<form method="post" action="?co=newlog" id="form" name="form" onSubmit="return java(this)">
<table bgcolor="#ffffff" align="left" width="100%" cellpadding="0" cellspacing="0">
<tr class="required">
<td class="lbl">Adres e-mail:</td>
<td class="required"><input type="text" name="email" size="30" maxlength="100"></td></tr>
<tr class="required">
<td class="lbl">Preferowana nazwa użytkownika :</td>
<td valign=top><input type="text" name="user"
size="16" maxlength="16"></td></tr>
<tr class="required">
<td class="lbl">Hasło(pomiędzy 4 i 16 znaków):</td>
<td valign=top><input type="password" name="haslo"
size="16" maxlength="16"></td></tr>
<tr class="required">
<td class="lbl">Potwierdź hasło:</td>
<td><input type="password" name="haslo2" size="16" maxlength="16"></td></tr>
<tr>
<td colspan=2 align=center>
<input type="submit" value="Rejestruj"></td></tr>
</table></form>
<?php
}
function wyswietl_dodaj_zak_form()
{
// wy?wietlenie formularza do dodania nowych zak3adek
?>
<form name=tabela_zak action="?co=dodaj" method=post>
<table width=250 cellpadding=2 cellspacing=0 bgcolor=#cccccc>
<tr><td>Nowa zak3adka:</td><td><input type=text name=nowy_url value="http://"
size=30 maxlength=255></td></tr>
<tr><td colspan=2 align=center><input type=submit value="Dodaj zak3adke"></td></tr>
</table>
</form>
<?php
}
function wyswietl_haslo_form()
{
?>
<br />
<form action="?co=newpasswort" method="post">
<table width=250 cellpadding=2 cellspacing=0 bgcolor=#cccccc>
<tr><td>Poprzednie hasło:</td>
<td><input type="password" name="stare_haslo" size="16" maxlength="16"></td>
</tr>
<tr><td>Nowe hasło:</td>
<td><input type="password" name="nowe_haslo" size="16" maxlength="16"></td>
</tr>
<tr><td>Powtorzenie nowego hasła:</td>
<td><input type="password" name="nowe_haslo2" size="16" maxlength="16"></td>
</tr>
<tr><td colspan=2 align=center><input type=submit value="Zmiana hasła">
</td></tr>
</table>
<br />
<?php
}
function wyswietl_zapomnij_form()
{
// wy?wietlenie formularza zapomnij_HTML do ustawiania nowych hase3
?>
<br />
<form action="?co=haslo" method=post>
<table width=250 cellpadding=2 cellspacing=0 bgcolor=#cccccc>
<tr><td>Nazwa użytkownika</td>
<td><input type=text name=user size=16 maxlength=16></td>
</tr>
<tr><td colspan=2 align=center><input type=submit value="Zmiana has3a">
</td></tr>
</table>
<br />
<?php
}
function wypelniony($zmienne_formularza)
{
// sprawdzenie, czy ka?da zmienna posiada warto?a
foreach ($zmienne_formularza as $klucz => $wartosc)
{
if (!isset($klucz) || ($wartosc == '')) return false;
}
return true;
}
function prawidlowy_email($adres)
{
if (ereg('^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$', $adres)) return true;
else
return false;
}
niektóre funkcje mogą być nie potrzebne i do korzystania z nich musisz samemu opracować formularze itd ale zawsze lepsze to niż cały gotowiec bynajmniej się czegoś nauczysz daj znać to napisze reszte