Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]rangi przy rejestracji dla 6 różnych użytkowników
Forum PHP.pl > Forum > Przedszkole
kubanskie_cygaro
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
potreb
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;
kubanskie_cygaro
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.