Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodatkowe pole podczas rejestracji
Rajdon
post
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 7.06.2009

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


Witam, chciałbym napisać moduł, który do rejestracji w portalu doda pole "Polecający" (w tym polu każdy nowy user może podać nazwę użytkownika polecającego) i żeby później tworzyło cos w stylu rankingu osób które zaprosiły najwięcej znajomych + jakie to osoby (nick).

Jak coś takiego zrobić ? worriedsmiley.gif


Z góry dziękuje

Ten post edytował Rajdon 30.11.2009, 15:41:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Kszyhuu
post
Post #2





Grupa: Zarejestrowani
Postów: 157
Pomógł: 32
Dołączył: 24.08.2009

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


Dodajesz w formularzu pole:
  1. <input type="text" name="polecil" size="10" class="input">

I później w php(zakładając że metoda formularza to post:
  1. if($_POST['polecil']!=""){
  2. $polecil = mysql_escape_string($_POST['polecil']);
  3. $polec = mysql_query("select id from USERS where login='$polecil'")
  4. mysql_query("Insert into polecil (id) values ($polec)");

A żeby później zrobić ranking, wystarczy wyciągnąć z bazy i zsumować liczbę wyników poszczególnego 'polecil':
  1. $sql = mysql_query("SELECT COUNT(*) FROM `polecil` WHERE `id`='ID_DANEGO_TYPKA'");

I wywołujesz normalnie przez php:
  1. echo 'Użytkownik XX polecił stronę '.$sql.' osobom.'

A jak chcesz zrobić spis osób polecających to robisz zapytanie masowe i wtedy order by.
Go to the top of the page
+Quote Post
Rajdon
post
Post #3





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 7.06.2009

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


Dzięki ale nie chce rankingu dla jednej osoby tylko dla wszystkich, żeby wyświetlało od razu np. jak to jest w top users poprostu, aby każdy mógł wejśc i zobaczyc ten ranking nawet, jeżeli w nim nei bierze udziału
Go to the top of the page
+Quote Post
R4D3K
post
Post #4





Grupa: Zarejestrowani
Postów: 144
Pomógł: 12
Dołączył: 16.03.2007

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


Lol, napisany sposob napisany Kszychuu nie ogranicza sie do 1 osoby. Tylko każda osoba ktora polecila kogos bedzie w tym rankingu.
Go to the top of the page
+Quote Post
Rajdon
post
Post #5





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 7.06.2009

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


a no racja, sorry

Ps; a czy dało by się zrobic cos takiego, że polecanie odbywa się na zasadzie wejścia przez indywidualny link inny dla każdego polecającego ? Np. osoba o nicku "adam" miala by link "adres-strony/polecajacy/adam/ ?
Go to the top of the page
+Quote Post
thek
post
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Tak... Routing php albo htaccess smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
R4D3K
post
Post #7





Grupa: Zarejestrowani
Postów: 144
Pomógł: 12
Dołączył: 16.03.2007

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


Można tylko będziesz musiał stowrzyć skrypt, który będzie edytował plik .htaccess poprzez dodawanie kolejnych linijek zamist tego bo to będzie poprsotu łatwiejsze stworzenie skryptu, który wywoła stronę twoją z odpowiednim parametrem GET:

  1. <form action="#" method="post">
  2. <input type="text" name="login" />
  3. <!-- i tak dalej inne pola rejestracji -->
  4.  

  1. if (isset($_GET['polecajacy']) {
  2. echo '<input type="hidden" name="polecajacy" value="'.$_GET['polecajacy'].'" />';
  3. }

  1. </form>


To jest prosty przykład, który wyświetla formularz rejestracji. Np dajesz dla jakieos zarejestrowanego usera polec nas innym z odpowiednim linkiem np http://example.org/rejestracja.php?polecajacy=123
User, który kliknie taki formularz bedzie mial w nim ukryte pole z wartoscia kto go polecil i dalej postępujesz jak zaproponował Kszychuu
Go to the top of the page
+Quote Post
Rajdon
post
Post #8





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 7.06.2009

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


R4D3K link niestety nie dziala, ale o coc takiego mi chodzi właśnie, żeby w polu poelcający znalazł się już wpisany nick

Ten post edytował Rajdon 1.12.2009, 14:10:31
Go to the top of the page
+Quote Post
R4D3K
post
Post #9





Grupa: Zarejestrowani
Postów: 144
Pomógł: 12
Dołączył: 16.03.2007

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


Rajdon oczywiście, że link nie działa bo tylko miał ci uzmysłowić jak to ma wyglądać. Stwórz sobie plik np rejestracja.php i wklej :

  1. <?php
  2. if (isset($_POST['register'])) {
  3. $polecil = mysql_escape_string($_POST['polecil']);
  4. $polec = mysql_query('select id from USERS where login="'.$polecil.'"');
  5. // tutaj mysql_connect i mysql_select_db
  6. mysql_query('Insert into polecil (id) values ($polec)');
  7. }
  8. else {
  9. echo '<form action="#" method="post" />';
  10. // twoje pola w rejstracji, login haslo itp.
  11. echo '<input type="submit" name="register" value="Zarejestruj mnie !" />';
  12. if (isset($_GET['polecajacy'])) {
  13. echo '<input type="hidden" name="polecajacy" value="'.$_GET['polecajacy'].'" />';
  14. }
  15. echo '</form>';
  16. }
  17. ?>


Na pewno, teraz obczaisz co i jak. Skrypt składa się z 2 części, pierwszy blok odbiera dane przesłane z formularza, drugi go wyświetla. Jeśli user został polecony to link jest w postaci http://www.twoj_adres_strony_www.pl/rejest...jacy.php?id=123 Klikając go wykona się 2 część skryptu czyli po prostu wyświetlenie formularza, który w zaleznosci od przeslanego parametru polecajacy, którym jest id osoby polecającej. Jeśli user sam trafi na strone i sie zarejestruje to nie będzie id polecającego. Po wypełnieniu formy do bazy danych zostanie zapisany nowy user wraz z id osoby go polecajacej, proste teraz questionmark.gif
Go to the top of the page
+Quote Post
Rajdon
post
Post #10





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 7.06.2009

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


  1. <?php
  2. if (isset($_POST['register'])) {
  3. $polecil = mysql_escape_string($_POST['polecil']);
  4. $polec = mysql_query('select id from USERS where login="'.$polecil.'"');
  5. // tutaj mysql_connect i mysql_select_db
  6. mysql_query('Insert into polecil (id) values ($polec)');
  7. }
  8. else {
  9. echo '<form action="#" method="post" />';
  10. // twoje pola w rejstracji, login haslo itp.
  11. echo '<input type="submit" name="register" value="Zarejestruj mnie !" />';
  12. if (isset($_GET['polecajacy'])) {
  13. echo '<input type="hidden" name="polecajacy" value="'.$_GET['polecajacy'].'" />';
  14. }
  15. echo '</form>';
  16. }
  17. ?>


Wiem jak to ma działać i wszystko dobrze tylko ja mam cms`a w którym jest folder modules i tam ma rejestracja.php i folder templates z szablonami w formacie .tpl i tam nie da rady z php wiec jak to zrobić inaczej ? Wiem, ze zminną np. $polecil trzeba w tpl zapisac jako {polecil} ale dalej jak... ? Jeszcze mam pytanie co do tego linka "http://www.twoj_adres_strony_www.pl/rejest...jacy.php?id=123" Jak to się dzieje, ze ma on akurat taka forme i czy można to ewentualnie zminić ?

Z góry dzękuję
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 Aktualny czas: 21.08.2025 - 06:17