Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP]rangi przy rejestracji dla 6 różnych użytkowników, rangi
kubanskie_cygaro
post 3.05.2012, 19:05:31
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.05.2012

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


Witam:)

Dopiero zaczynam uczyć się php i potrzebuje pomocy w zarysowaniu mniej więcej planu aby wykonać ustawianie rang. Będę mieć 6 typów użytkowników dla których chcę mieć różne uprawnienia.

Przy rejestracji mam stworzony formularz w którym używam radio buttonów :
Kod

<input type="radio" name="check" value="bialy" id="b" /> Twój kolor to biały <br />
<input type="radio" name="check" value="zielony" id="z"/> Twój kolor to zielony <br />
<input type="radio" name="check" value="fioletowy" id="f" />Twój kolor to fioletowy <br />
<input type="radio" name="check" value="czarny" id="c" />Twoj kolor to czarny <br />
<input type="radio" name="check" value="rozowy" id="r" />Twoj kolor to rozowy <br />
<input type="submit" name="ok" value="Rejestruj">

+ ostatnim typem będzie administrator.

Nie wiem jak za bardzo się za to zabrać bo jedyne materiały znalezione na internecie są o tworzeniu rangi dla administratora i reszta to zwykli użytkownicy.
Chcę zrobić tak by w zależności który kolor dana osoba wybierze dodawana zostawała liczba do pola ranga.
Nie wiem czy stworzyć 1 tabele users w której będą tylko login hasło i ranga ---> która będzie łączyła tą tabelkę z innymi czyli tabelami kolorów.
Czy od razu przy rejestracji użytkownicy będą dodawani do rożnych tabel? jeśli tak to w którym miejscu w kodzie to ustawić?

Na wielu forach doradzają by stworzyć dodatkową tabelę z uprawnieniami - czy to jest konieczne? Czy tak jest proście? Co w tej tabeli powinno być - nazwa rangi i id_rangi?

Czy mam to 6 razy w rejestracji dodać?:
Kod
$query = "INSERT INTO `users` (`nick` , `pass`, `data_rejestracji`, 'ranga') VALUES ('$nick', '$pass', '$data', 1)";


i przypisywać liczby dla każdego?
jeśli tak to możecie mi pomóc jak połączyć to z formularzem? Czy trzeba użyć Javascript? JQuery?

gdy robię tak to nie dodaje do bazy danych:
Kod
if($row['check']== 'b'){
                          
                         $query = "INSERT INTO `biali` (`nick` , `pass`, `data_rejestracji`, 'ranga') VALUES ('$nick', '$pass', '$data', 1)";                        
                        if(mysql_query($query)) echo 'Zostałes poprawnie zarejestrowany! Możesz się teraz <a href="login.php">zalogować</a>';
                          
                        }

próbuję jeszcze tak ale też coś źle w kodzie pewnie robię:
Kod
if($radio == 'bialy'){
                            $b = 'checked="checked"';
                        $query = "INSERT INTO `users` (`nick` , `pass`, `data_rejestracji`, 'ranga') VALUES ('$nick', '$pass', '$data', 5)";                        
                        if(mysql_query($query)) echo 'Zostałes poprawnie zarejestrowany! Możesz się teraz <a href="login.php">zalogować</a>';
                        }
else echo 'nie działa';


i wyświetla mi, że nie działa, jak zmienie w nawiasie
Kod
if($_POST['check'] == 'bialy')
też nie działa

I taka jedna rzecz mnie nurtuje, jeśli już będzie działał ten system rejestracji to:
-czy na każdej stronie będzie trzeba robić :
Kod
if($ranga == 4) { kod }

i tam dodawać dostępne opcje?, czyli przydałoby się zrobić szablon dla użytkownika który ma najmniej opcji, potem dodawać sprawdzanie rangi i wyświetlanie opcji?

Proszę o pomoc. Bo stanęłam w miejscu i nie wiem jak połączyć formularz z rejestracją do tabel:) a chcę rozwijać stronę dalej smile.gif Jeśli niezrozumiale napisałam post to poprawię tylko napiszcie:P

Ten post edytował kubanskie_cygaro 3.05.2012, 19:06:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
potreb
post 3.05.2012, 19:39:25
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Pokaż pełny formularz i jak to obecnie wygląda.

Możesz dla rang zastosować switch, zeby skrocic

  1. switch($_POST['ranga']):
  2. default: $ranga = 1; break;
  3. case 'bialy': $ranga = 2; break;
  4. case 'rozowy': $ranga = 3; break;
  5. endswitch;


Ten post edytował potreb 3.05.2012, 19:40:48


--------------------

Go to the top of the page
+Quote Post
kubanskie_cygaro
post 3.05.2012, 20:28:45
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.05.2012

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


Masz racjęsmile.gif switch ułatwi bardzo

tak wygląda mój formularz
  1. <form action="rejestracja.php" method="POST" name="formularz">
  2. Nick: <BR />
  3. <input type="text" name="nick"><br />
  4. Hasło (od 3-16 znaków): <br />
  5. <input type="password" name="pass" maxlength="16"> <br />
  6. Powtórz hasło: <br />
  7. <input type="password" name="pass2" maxlength="16"> <br />
  8. Wybierz rodzaj użytkownika: <br />
  9. <input type="radio" name="check" value="bialy" id="b" /> Twój kolor to biały <br />
  10. <input type="radio" name="check" value="zielony" id="z"/> Twój kolor to zielony <br />
  11. <input type="radio" name="check" value="fioletowy" id="f" />Twój kolor to fioletowy <br />
  12. <input type="radio" name="check" value="czarny" id="c" />Twoj kolor to czarny <br />
  13. <input type="radio" name="check" value="rozowy" id="r" />Twoj kolor to rozowy <br />
  14. <input type="submit" name="ok" value="Rejestruj">


a tak reszta kodu: (próbowałam czy chociaż doda mi do bazy użytkowników do białych lub czarnych no ale nie;p
  1. <?php
  2.  
  3.  
  4. mysql_connect('localhost', 'root', 'portal')
  5. or die('Nieudane polaczenie z baza danych...');
  6.  
  7.  
  8. mysql_select_db('portal')
  9. or die('Nie udalo sie wybrac bazy danych...');
  10.  
  11.  
  12. echo '<h2>Rejestracja</h2>';
  13.  
  14.  
  15. if(isset($_POST['ok']))
  16. {
  17. $nick = $_POST['nick'];
  18. $pass = $_POST['pass'];
  19. $pass2 = $_POST['pass2'];
  20. if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
  21. else
  22. { // filtrujemy dane
  23. $result = mysql_query("SELECT * FROM users WHERE nick='$nick'");
  24. if(mysql_num_rows($result)!=0) echo 'Już istnieje konto z takim loginem!';
  25. elseif($pass != $pass2){echo 'hasła się różnią!';}
  26. elseif(strlen($nick)>50){echo 'nick może mieć nie więcej niż 50 znaków';}
  27. elseif(strlen($pass)<2){echo 'hasło musi mieć więcej niż 2 znaki';}
  28. elseif(strlen($pass)>16){echo 'hasło musi mieć mniej niż 17 znaków';}
  29.  
  30. else
  31. {
  32. $data = time();
  33. $pass = md5($pass);
  34.  
  35. if($_POST['check'] == 'bialy'){
  36. $query = "INSERT INTO `biali` (`nick` , `pass`, `data_rejestracji`, 'ranga') VALUES ('$nick', '$pass', '$data', 1)";
  37. if(mysql_query($query)) echo 'Zostałes poprawnie zarejestrowany! Możesz się teraz <a href="login.php">zalogować</a>';
  38. }
  39. elseif($_POST['check']== 'czarny'){
  40.  
  41. $query = "INSERT INTO `czarni` (`nick` , `pass`, `data_rejestracji`, 'ranga') VALUES ('$nick', '$pass', '$data', 4)";
  42. if(mysql_query($query)) echo 'Zostałes poprawnie zarejestrowany! Możesz się teraz <a href="login.php">zalogować</a>';
  43.  
  44. }
  45. else echo 'nie działa';
  46. }
  47. }
  48. }
  49. ?>


także to nie działało i nawet nie wyświetla mi komunikatu z ostatnieo echa. Jutro zmienie na switche;) dziękuję za odpowiedź 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: 14.08.2025 - 04:37