Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rejestracja na kod, łączenie z baza
Damiian
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 4
Dołączył: 30.05.2010
Skąd: Gdynia

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


Witam ponownie:)

Nie wiem jak to opisać, może przejdę odrazu do rzeczy jak to ma wyglądać (IMG:style_emoticons/default/smile.gif)
1. Ja dodaje unikalny kod do bazy danych:
  1. mysql_query("INSERT INTO `test` (`id`, `imie`, `haslo` `kod`) VALUES (null, '','', '$kod')") or die(mysql_error());


2. Użytkownik wpisuje nick, hasło, oraz kod w formularzu ( mam )
3. Przekierowuje go na skrypt sprawdzający:
  1. <form action="check.php" method="post">

4. Skrypt sprawdzał by czy kod podany przez usera znajduje sie w bazie,
jeśli tak to zeby potem sprawdzał czy koło kodu są dwa pola wolne w bazie (nick i hasło)
Jesli sa wolne to zeby skrypt dopisal do nich Nick i hasło
a jesli sa zajete to ma mu sie pokazać błąd ze dany kod juz jest uzywany przez inna osobe.

Chodzi mi o takie unikalne kody, które można użyć raz, i na jednego użytkownika.

Wiecie jak takie cos wykonać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


dobra dam Ci ten kod, ale potem naprawdę weź się za te kursy bo to są naprawdę podstawowe rzeczy i to jest ostatni raz kiedy daję Ci gotowca

Po pierwsze robisz 2 tabele:

codes
code_id [INT(11) auto_increment primary_key] | code [VARCHAR(255)] | code_active [TINYINT(1) default 1]

pole code_active posłurzy do sprawdzenia czy kod został już użyty, bo zakładam, że kody są jednorazowe

users
id [INT(11) auto_increment primary_key] | name [VARCHAR(255)]| email[VARCHAR(255)]

zakładam, że formularz rejestacji już masz z polami: name, email, code, które zaraz odbierzemy postem
i oczywiście walidację też już musisz we własnym zakresie

to else die jest tylko żeby sprawdzić czy zapytania są dobre bo z palca na szybko to pisałem, jeśli wszystko działa to to usuń

  1. <?php
  2.  
  3. $code = mysql_real_escape_string(trim($_POST['code']));
  4. $name = mysql_real_escape_string(trim($_POST['name']));
  5. $email = mysql_real_escape_string(trim($_POST['email']));
  6.  
  7. //sprawdzamy czy taki kod jest w bazie i czy jest aktywny
  8. $sql = "SELECT code_id FROM codes WHERE code = $code AND code_active = 1";
  9. if($result = mysql_query($sql))
  10. {
  11. if(mysql_num_rows($result) > 0)
  12. {
  13. //kod istnieje w bazie i jest aktywny -> dodajemy użytkownika
  14.  
  15. //sprawdzamy czy taki użytkownik już istnieje, zakładam, że nazwa użytkownika nie może być użyta więcej niż raz
  16. $sql_check = "SELECT id FROM users WHERE name = '$name'";
  17. if($result_check = mysql_query($sql_check))
  18. {
  19. if(mysql_num_rows($result_check) > 0)
  20. {
  21. echo "taka nazwa użytkownika jest już zajęta.";
  22. } else
  23. {
  24. //ustawiamy kod na nieaktwyny
  25. $sql_code = "UPDATE INTO codes SET code_active = '0' WHERE code = '$code'";
  26. if(!$result_code = mysql_query($sql_code))
  27. {
  28. }
  29. //nazwa nie jest zajęta -> dodajemy usera
  30. $sql_add = "INSERT INTO users(id, name, email) VALUES(NULL, '$name', '$email')";
  31. if($result_add = mysql_query($sql_add))
  32. {
  33. echo "użytkownik dodany.";
  34. } else
  35. {
  36. }
  37. }
  38. } else
  39. {
  40. }
  41.  
  42. } else
  43. {
  44. //kod nie istnieje lub jest nieaktywny
  45. echo "Przykro mi, kod jest nie poprawny.";
  46. }
  47. } else
  48. {
  49. }
  50.  
  51. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- Damiian   Rejestracja na kod   2.06.2010, 11:58:05
- - nospor   http://pl2.php.net/manual/en/function.uniqid.php   2.06.2010, 12:00:39
- - Damiian   Dodawac moge sam, bo to bedzie tylko pare kodów. ...   2.06.2010, 12:22:13
- - nospor   No ale konkretnie w czym problem? Z bazy rekordy n...   2.06.2010, 12:26:36
- - Damiian   Chodzi o takie cos: [PHP] pobierz, plaintext $Ko...   2.06.2010, 12:35:40
- - nospor   ale czemu selectem pobierasz tylko KOD? Czemu nie ...   2.06.2010, 12:39:39
- - Damiian   Ponieważ dopiero zaczynam z Php i myślę 'prost...   2.06.2010, 13:17:42
- - nospor   CytatA Ty jak byś to wykonał zeby było najlatwiej ...   2.06.2010, 13:20:18
- - Damiian   Umiem zrobić tylko coś takiego: [PHP] pobierz, pla...   2.06.2010, 14:05:17
- - phpion   Zainteresuj się klauzulą WHERE - szczegóły i przyk...   2.06.2010, 14:07:06
- - Damiian   A jak mam dodać np do istniejącego już emailu, imi...   3.06.2010, 10:41:14
- - tehaha   lepiej odpal sobie jakiś podstawowy kurs, bo wszys...   3.06.2010, 11:01:21
- - Damiian   Dziekuje za odpowiedz, Ps. PM. Już w nocy próbow...   3.06.2010, 13:24:18
- - tehaha   a zastanowiłeś się co robi ten skrypt, który tu pr...   3.06.2010, 13:50:56
- - Damiian   [PHP] pobierz, plaintext $result = mysql_query...   3.06.2010, 13:58:25
- - tehaha   to ja napiszę moją interpretację linijek 3-13: - j...   3.06.2010, 14:18:45
- - Damiian   Zrobiłem to tak: [PHP] pobierz, plaintext $nick =...   3.06.2010, 14:52:53
- - gigzorr   sprawdzanie to mozna zrobic tak : [PHP] pobierz, p...   3.06.2010, 14:56:06
- - Damiian   Eh, chyba musze porzucic prace nad ta rejestracja....   3.06.2010, 15:42:37
- - tehaha   masz problemy ponieważ brakuje Tobie fundamentalne...   3.06.2010, 16:50:14
- - Damiian   Dziekuje za Tutoriale. A pomógłbyś chociaż dokońc...   3.06.2010, 17:05:34
- - tehaha   to napisz co chcesz osiągnąć bo to co robisz jest ...   3.06.2010, 17:14:31
- - Damiian   Teraz już będzie najdokładniej jak umiem. Chodzi ...   3.06.2010, 17:26:48
- - tehaha   dobra dam Ci ten kod, ale potem naprawdę weź się z...   3.06.2010, 18:50:18
- - Damiian   Super, dziękuje Ci bardzo masz u mnie piwo! ...   3.06.2010, 20:08:57


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

 



RSS Aktualny czas: 3.10.2025 - 02:32