Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Optymalizacja rejestracji i pytanie
Bellum
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 2.03.2010
Skąd: ta pewność?

Ostrzeżenie: (0%)
-----


Witam, chciałbym prosić o optymalizacje (a konkretnie rady co należałoby zmienić) kodu doświadczonych programistów

rejestracja.php

  1. <?php if(isset($_SESSION['session_user']))
  2. {
  3. header('location: index.php');
  4. }
  5. else
  6. {
  7. echo "<div class='h3'><h3>Rejestracja</h3></div><div class='text'>";
  8. echo "<form action='' method='POST'>
  9. <table>
  10. <tr>
  11. <td>Nazwa użytkownika:</td><td><input type='text' name='user' /></td>
  12. </tr>
  13. <tr>
  14. <td>Adres email:</td><td><input type='text' name='email' /></td>
  15. </tr>
  16. <tr>
  17. <td>Hasło:</td><td><input type='password' name='password' /></td>
  18. </tr>
  19. <tr>
  20. <td>Powtórz hasło:</td><td><input type='password' name='repassword' /></td>
  21. </tr>
  22. <tr>
  23. <td colspan=2><input type='submit' name='zarejestruj' value='Wyślij' /></td>
  24. </tr>
  25. </table>
  26. </form>";
  27. echo "</div>";
  28.  
  29. require_once'config_db.php';
  30. if(isset($_POST['zarejestruj']))
  31. {
  32. $date = time();
  33. $user = $_POST['user'];
  34. $email = $_POST['email'];
  35. $ip = $_SERVER['REMOTE_ADDR'];
  36. $password = $_POST['password'];
  37. $repassword = $_POST['repassword'];
  38.  
  39. #Sprawdzanie pól formularza
  40. if(!$_POST['user'] || !$_POST['password'] || !$_POST['repassword'] || !$_POST['email'])
  41. {
  42. echo "Jedno bądź więcej pól w formularzu jest puste...";
  43. exit;
  44. }
  45.  
  46. #Sprawdzanie wprowadzonych danych
  47. if(!eregi('^[a-zA-z]+', $user))
  48. {
  49. echo "Nazwa użytkownika może zawierać wyłącznie małe i duże litery...";
  50. exit;
  51. }
  52. elseif(!eregi('^[a-zA-z0-9]+', $password))
  53. {
  54. echo "Hasło może zawierać wyłącznie małe i duże litery oraz cyfry...";
  55. }
  56. elseif(!eregi('^[a-zA-z0-9]+', $repassword))
  57. {
  58. echo "Hasło może zawierać wyłącznie małe i duże litery oraz cyfry...";
  59. exit;
  60. }
  61. elseif(!eregi('^[a-zA-z0-9]+@[a-zA-z0-9\-]+\.[a-zA-z0-9\-\.]+$', $email))
  62. {
  63. echo "Adres email, jest niepoprawny...";
  64. exit;
  65. }
  66.  
  67. #Sprawdzanie czy hasła są identyczne
  68. if($_POST['password'] != $_POST['repassword'])
  69. {
  70. echo "Hasła nie są takie same...";
  71. }
  72.  
  73. #Sprawdzanie czy taki użytkownik już istnieje
  74. $mysqlia = "SELECT user FROM user";
  75. $mysqlib = $db->query($mysqlia);
  76. while($echo = $mysqlib->fetch_object())
  77. if(($echo->user) == $user)
  78. {
  79. echo "Użytkownik o takiej nazwie już istnieje...";
  80. }
  81.  
  82. #Sprawdzanie czy taki email już istnieje
  83. $mysqlia = "SELECT email FROM user";
  84. $mysqlib = $db->query($mysqlia);
  85. while($echo = $mysqlib->fetch_object())
  86. if(($echo->email) == $email)
  87. {
  88. echo "Ktoś się zarejestrował już z tego adresu email...";
  89. }
  90.  
  91. #################
  92. ## REJESTRACJA ##
  93. #################
  94. $mysqli = "INSERT INTO user (user, password, email, date, ip) VALUES ('$user' , '".md5($password)."', '$email', '$date', '$ip')";
  95. $echo = $db->query($mysqli);
  96. if($echo)
  97. {
  98. echo "Zostałeś pomyślnie zarejestrowany, oczekuj na aktywacje...";
  99. }
  100. else
  101. {
  102. echo "Wystąpił błąd, jeżeli błąd się powtarza skontaktuj się z administratorem...";
  103. exit;
  104. }
  105. }
  106. }
  107. ?>


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:

  1. <?php
  2. if(isset($_SESSION['session_user']))
  3. {
  4. header('location: index.php');
  5. }
  6. else
  7. {
  8. echo "<div class='h3'><h3>Logowanie</h3></div><div class='text'>";
  9. echo "<form action='' method='POST'>
  10. <table>
  11. <tr>
  12. <td>Nazwa użytkownika:</td><td><input type='text' name='user' /></td>
  13. </tr>
  14. <tr>
  15. <td>Hasło:</td><td><input type='password' name='password' /></td>
  16. </tr>
  17. <tr>
  18. <td colspan=2><input type='submit' name='zaloguj' value='Zaloguj' /></td>
  19. </tr>
  20. </table>
  21. </form>";
  22. echo "</div>";
  23.  
  24. require_once'config_db.php';
  25. if(isset($_POST['zaloguj']))
  26. {
  27. $user = $_POST['user'];
  28. $password = $_POST['password'];
  29.  
  30. #Sprawdzanie pól formularza
  31. if(!$_POST['user'] || !$_POST['password'])
  32. {
  33. echo "Jedno bądź więcej pól w formularzu jest puste...";
  34. exit;
  35. }
  36.  
  37. #Sprawdzanie wprowadzonych danych
  38. if(!eregi('^[a-zA-z]+', $user))
  39. {
  40. echo "Nazwa użytkownika może zawierać wyłącznie małe i duże litery...";
  41. exit;
  42. }
  43. elseif(!eregi('^[a-zA-z0-9]+', $password))
  44. {
  45. echo "Hasło może zawierać wyłącznie małe i duże litery oraz cyfry...";
  46. }
  47. ###############
  48. ## LOGOWANIE ##
  49. ###############
  50. if(isset($_POST['user']) && isset($_POST['password']))
  51. {
  52. $mysqlia = "SELECT * FROM user WHERE user='".$user."' AND password='".md5($password)."'";
  53. $echo = $db->query($mysqlia);
  54. if($echo->num_rows > 0)
  55. {
  56. $_SESSION['session_user'] = $user;
  57. header('location: index.php');
  58. }
  59. else
  60. {
  61. echo "Login lub hasło, jest niepoprawne...";
  62. }
  63. $db->close();
  64. }
  65. }
  66. }
  67. ?>


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 smile.gif

@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


--------------------
C++ mie pokonało ale z PHP walczę jak mogę!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 06:44