Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> i co dalej?
SoulRipper
post 27.09.2004, 21:31:24
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 15.03.2003
Skąd: lodz

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


  1. <? 
  2. $error=0;
  3. $host = &#092;"localhost\";
  4. $connect = mysql_connect($host,&#092;"XXXXXX\",\"XXXXXX\");
  5. $db = mysql_select_db(&#092;"szkola\");
  6.  
  7.  
  8. if(!$_POST[login])
  9. {
  10. echo &#092;"Musisz podac <b>LOGIN</b> by moc sie zarejestrowac<br>\"; 
  11.     $error++;
  12. }
  13. if(!$_POST[pass])
  14. {
  15. echo &#092;"Musisz podac <b>HASLO</b> by moc sie zarejestrowac<br>\";
  16.     $error++;
  17. }
  18. if(!$_POST[mail])
  19. {
  20. echo &#092;"Musisz podac <b>E-MAIL</b> by moc sie zarejestrowac<br>\";
  21.     $error++;
  22. }
  23.  
  24. if($error==0)
  25. {
  26.     
  27.     $query = (&#092;"select login from login\");
  28.     $a = mysql_query($query);
  29.     $result = mysql_fetch_array($a);
  30.     if ($_POST[login] == $result[&#092;"login\"])
  31.     {
  32.         echo &#092;"podany login juz istnieje\";
  33.     }
  34.     else
  35. //    {
  36.         //$query =\"INSERT INTO login (id, login, pass, mail, ip) VALUES ('','$_POST[login]','$_POST[pass]','$_POST[mail]','$_SERVER['REMOTE_ADDR']')\";
  37.         //$a = mysql_query($query) 
  38.         //  ;
  39.     
  40.     //}
  41.     
  42. }
  43. ?>


tabela w ktorej sa przechowywani userzy ma postac:
id,login,pass,mail,ip

Witam sprawa wyglada tak:
jest to kod php formularza rejestrujacego, po wypelnieniu formularza dane sa przetwarzane, kod ma za zadanie zweryfikowac czy wypelnione zostaly wszystkie(3) pola formularza oraz czy wpisany "login" nie pokrywa sie z istniejacym loginem w bazie danych, wszystko dziala lecz do czasu gdy w bazie danych mamy jedego uzytkownika, gdy juz w DB bedzie 2 userow, sprawa sie komplikuje bo on calyczas sprawdza tylko 1 uzytkownika czy istnieje.

Ten post edytował SoulRipper 27.09.2004, 21:35:10
Go to the top of the page
+Quote Post
silent
post 27.09.2004, 21:44:23
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.08.2004
Skąd: Jastrzębie Zdrój

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


EDIT ------------------------------
withstupidsmiley.gif
Nic tu nie pisałem biggrin.gif

Ten post edytował silent 28.09.2004, 00:16:10
Go to the top of the page
+Quote Post
rogrog
post 27.09.2004, 21:46:23
Post #3





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


  1. SELECT id FROM users WHERE login='$login'

jeżeli zapytanie zwróci jakieś rekordy (mysql_num_rows" title="Zobacz w manualu PHP" target="_manual) to znaczy że jest już taki użytkownik. jeżeli nie zwróci żadnych rekordów jest ok.

nie zapomnij przed wysłaniem zapytania do bazy przepuścić loginu przez mysql_escape_string() żeby uniknąć ominięcia zabezpieczeń przez odpowiednio spreparowany ciąg znaków


--------------------
Go to the top of the page
+Quote Post
Vertical
post 28.09.2004, 09:39:51
Post #4





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


Ja to robię tak:
  1. <?php
  2. $host = &#092;"localhost\";
  3. $connect = mysql_connect($host,&#092;"XXXXXX\",\"XXXXXX\");
  4. mysql_select_db(&#092;"szkola\");
  5. if($_POST['login'] == &#092;"\") {
  6. echo 'Podaj login';
  7. }
  8. /*i tak dalej robisz z pass i mail
  9. pozniej wstawiasz: */
  10. $sql = &#092;"SELECT * FROM login WHERE login = '$_POST[login]'\";
  11. $result = mysql_query($sql);
  12. $row = mysql_num_rows($result);
  13. if($row != 0) {
  14. echo 'Login jest juz zajety!';
  15. }
  16. if(($_POST['login'] != &#092;"\") && ($_POST['pass'] != \"\") && ($_POST['mail'] != \"\") && ($row == 0)) //ta metoda jest dobra, jesli masz malo danych, ale zawsze dziala
  17. {
  18. echo 'Oto twoje dane:';
  19. echo '<br>Login: $_POST[login]';
  20. echo '<br>Haslo: *****';
  21. echo '<br>Mail: $_POST[mail]';
  22. ?>

Wtedy po prostu liczy odpowiadające linie zamiast sprawdzać, czy zgadza się nazwa.

Ten post edytował Vertical 28.09.2004, 09:41:27
Go to the top of the page
+Quote Post
-Guest-
post 30.09.2004, 18:30:38
Post #5





Goście







oooo o to mi Vertical wlasnie chodzilo, wielkie dzieki, a tak na marginesie jak byscie ocenili styl mojego kodu, tzn czy nie ma zbednych krzaczkow ktore tylko wydluzaja czas wykonywania scryptu, czy widac jakies nietypowe karkolomne rozwiazania? A pytam bo poproetu jestem ciekaw czy ten kod wogle ma cos w wspolnego z takim kodem uzywanym chodzby na php.pl? Jak ja patrze na swoje dzielo, to dla mnie jest wszystko zrozumiale, ale inaczej moze byc z innymi, no wiecie estetyka zapisu smile.gif
Go to the top of the page
+Quote Post
Vertical
post 30.09.2004, 18:36:25
Post #6





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


Najważniejsze: Kod prosty, efektywny i bez dziur. Jeśli Twój kod spełnia te warunki, to znaczy, że jest dobry smile.gif
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 27.04.2024 - 17:04