Witam, chciałbym prosić o optymalizacje (a konkretnie rady co należałoby zmienić) kodu doświadczonych programistów
rejestracja.php
<?php if(isset($_SESSION['session_user'])) {
header('location: index.php'); }
else
{
echo "<div class='h3'><h3>Rejestracja</h3></div><div class='text'>"; echo "<form action='' method='POST'> <table>
<tr>
<td>Nazwa użytkownika:</td><td><input type='text' name='user' /></td>
</tr>
<tr>
<td>Adres email:</td><td><input type='text' name='email' /></td>
</tr>
<tr>
<td>Hasło:</td><td><input type='password' name='password' /></td>
</tr>
<tr>
<td>Powtórz hasło:</td><td><input type='password' name='repassword' /></td>
</tr>
<tr>
<td colspan=2><input type='submit' name='zarejestruj' value='Wyślij' /></td>
</tr>
</table>
</form>";
require_once'config_db.php';
if(isset($_POST['zarejestruj'])) {
$user = $_POST['user'];
$email = $_POST['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$password = $_POST['password'];
$repassword = $_POST['repassword'];
#Sprawdzanie pól formularza
if(!$_POST['user'] || !$_POST['password'] || !$_POST['repassword'] || !$_POST['email'])
{
echo "Jedno bądź więcej pól w formularzu jest puste..."; }
#Sprawdzanie wprowadzonych danych
if(!eregi('^[a-zA-z]+', $user)) {
echo "Nazwa użytkownika może zawierać wyłącznie małe i duże litery..."; }
elseif(!eregi('^[a-zA-z0-9]+', $password)) {
echo "Hasło może zawierać wyłącznie małe i duże litery oraz cyfry..."; }
elseif(!eregi('^[a-zA-z0-9]+', $repassword)) {
echo "Hasło może zawierać wyłącznie małe i duże litery oraz cyfry..."; }
elseif(!eregi('^[a-zA-z0-9]+@[a-zA-z0-9\-]+\.[a-zA-z0-9\-\.]+$', $email)) {
echo "Adres email, jest niepoprawny..."; }
#Sprawdzanie czy hasła są identyczne
if($_POST['password'] != $_POST['repassword'])
{
echo "Hasła nie są takie same..."; }
#Sprawdzanie czy taki użytkownik już istnieje
$mysqlia = "SELECT user FROM user";
$mysqlib = $db->query($mysqlia);
while($echo = $mysqlib->fetch_object())
if(($echo->user) == $user)
{
echo "Użytkownik o takiej nazwie już istnieje..."; }
#Sprawdzanie czy taki email już istnieje
$mysqlia = "SELECT email FROM user";
$mysqlib = $db->query($mysqlia);
while($echo = $mysqlib->fetch_object())
if(($echo->email) == $email)
{
echo "Ktoś się zarejestrował już z tego adresu email..."; }
#################
## REJESTRACJA ##
#################
$mysqli = "INSERT INTO user (user, password, email, date, ip) VALUES ('$user' , '".md5($password)."', '$email', '$date', '$ip')"; $echo = $db->query($mysqli);
if($echo)
{
echo "Zostałeś pomyślnie zarejestrowany, oczekuj na aktywacje..."; }
else
{
echo "Wystąpił błąd, jeżeli błąd się powtarza skontaktuj się z administratorem..."; }
}
}
?>
I największe moje pytanie, które już dawno chciałem zadać "Jak przypisać id użytkowników do sesji, obecnie loguję po nazwie użytkownika" tak:<?php
if(isset($_SESSION['session_user'])) {
header('location: index.php'); }
else
{
echo "<div class='h3'><h3>Logowanie</h3></div><div class='text'>"; echo "<form action='' method='POST'> <table>
<tr>
<td>Nazwa użytkownika:</td><td><input type='text' name='user' /></td>
</tr>
<tr>
<td>Hasło:</td><td><input type='password' name='password' /></td>
</tr>
<tr>
<td colspan=2><input type='submit' name='zaloguj' value='Zaloguj' /></td>
</tr>
</table>
</form>";
require_once'config_db.php';
if(isset($_POST['zaloguj'])) {
$user = $_POST['user'];
$password = $_POST['password'];
#Sprawdzanie pól formularza
if(!$_POST['user'] || !$_POST['password'])
{
echo "Jedno bądź więcej pól w formularzu jest puste..."; }
#Sprawdzanie wprowadzonych danych
if(!eregi('^[a-zA-z]+', $user)) {
echo "Nazwa użytkownika może zawierać wyłącznie małe i duże litery..."; }
elseif(!eregi('^[a-zA-z0-9]+', $password)) {
echo "Hasło może zawierać wyłącznie małe i duże litery oraz cyfry..."; }
###############
## LOGOWANIE ##
###############
if(isset($_POST['user']) && isset($_POST['password'])) {
$mysqlia = "SELECT * FROM user WHERE user='".$user."' AND password='".md5($password)."'"; $echo = $db->query($mysqlia);
if($echo->num_rows > 0)
{
$_SESSION['session_user'] = $user;
header('location: index.php'); }
else
{
echo "Login lub hasło, jest niepoprawne..."; }
$db->close();
}
}
}
?>
To wszystko co potrafię w php mnie to wystarczy ale czy jest dobrze zoptymalizowane czy też można by coś dodać bądź zmienić to byłoby miło. Najbardziej jednak nurtuje mnie pytanie, które napisałem wyżej

@kolejne z pytań: przy rejestracji jest tak, że dla kodu użytkownik
Bellum i użytkownik
bElLuM to inne osoby wystarczy inne hasło i email by się zarejestrować, ponad to przy logowaniu zamiast
bElLuM mogę wpisać
Bellum i hasło ale nie do
Bellum tylko do
bElLuM i się normalnie zaloguję, proszę o radę myślę, że chodzi tutaj o uwzględnianie wielkości liter.
Ten post edytował Bellum 23.04.2011, 14:35:42