![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 642 Pomógł: 2 Dołączył: 9.03.2006 Ostrzeżenie: (30%) ![]() ![]() |
Witam,
Chcę zrobić system polecania gry. Problem polega na tym, że mimo iż mimo że zmianna $ref pobiera z linku polecajacego to nie jest on dodawany do bazy :/ Na tym linku można zobaczyć że gracz jest sczytywany http://www.westernlife.pl/poleca/lethys/ Obecnie wygląda to tak:
Ten post edytował Lethys 13.04.2011, 16:05:08 -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
W linii 87 definiujesz zmienną globalną $referujacy i próbujesz wstawić do bazy nie przypisując jej żadnej wartości.
Nie ma ona nic wspólnego ze zmienną $ref, do której na początku coś tam wpisujesz. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 642 Pomógł: 2 Dołączył: 9.03.2006 Ostrzeżenie: (30%) ![]() ![]() |
Tej globalnej nie powinno być, stary kod mi sie wrzucił.
No ale bez globalnej też nie działa. Czemu takie zmiennie jak: $user czy $pass są dodawane do bazy skoro też są z formularza? Jak dodać do bazy zmienną $referujacy -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat stary kod mi sie wrzucił. To może pokaż właściwy kod. Włącz wyświetlanie wszystkich błędów.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
17 linijce dajesz value=$ref[user] a skad skrypt to ma wziac, skoro nie ma? wywal to value i bedzie ok
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
a masz wartośc $ref ? bo rozumiem ze pobierasz z adresu nazwe referujacego czyli np twojastrona.pl?ref=hpsi+ wtedy $ref = $_GET['ref']; wg mnie powinno to mniej więcej śmigać, ale dołączam się do proźby nospora -------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 642 Pomógł: 2 Dołączył: 9.03.2006 Ostrzeżenie: (30%) ![]() ![]() |
Kod jest taki sam, tzn w starej wersji nie było tej globalnej, to jedyna różnica.
Włączyłem wyświetlanie błędów: Wyskoczyło Cytat Notice: Undefined variable: problem in /srv/www/vhosts/westernlife.pl/httpdocs/rejestracja.php on line 85 Notice: Undefined variable: referujacy in /srv/www/vhosts/westernlife.pl/httpdocs/rejestracja.php on line 93 linijka 85:
linijka 93:
-------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Pola z atrybutem disabled nie są wysyłane razem z formularzem
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Z jaką wartością startuje $problem?
Dodaj na początku $problem = FALSE; Podobnie tam gdzie byl ten global wrzuć: $referujacy = $_POST['referujacy']; Zmień w formularzu input type="hidden", wywal disabled. Sprawdź dokładnie co jest w $referujacy, nawet jak nie jest wyświetlany na stronie i tak można tam wszystko wpisać. Ten post edytował pmir13 13.04.2011, 16:47:53 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 642 Pomógł: 2 Dołączył: 9.03.2006 Ostrzeżenie: (30%) ![]() ![]() |
@ nospor
To jak mogę rozwiązać ten problem? Nie chciałbym dać normalnego pola bo użytkownicy będą mogli gmerać przy refie. @pmir13 Zrobiłem jak napisałeśaleś ale to nic nie dało. Nadal nie dodaje refera do bazy ![]() -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
W zasadzie linki referujące mają w urlu albo id osoby referującej albo nazwę.
Rozumiem, że nie pokazałeś tego fragmentu kodu, który wcześniej pobiera refa z $_GET Później w pierwszych linijkach tego co widzimy sprawdzasz, czy jest taki user w bazie, ale co jeśli go nie ma? Używasz konstrukcji $ref = costam( $ref ), czyli pozbywasz się starej wartości i jeśli nie dostaniesz nowej prawidłowej to nie masz nic. Nie używasz mysql_error() więc nie widzisz nawet czy nie było problemów z wykonaniem zapytania. Powinieneś używać co najmniej konstrukcji $res = mysql_query( $query ) or die ( mysql_error() ); albo najlepiej napisać sobie własną funkcję z lepszą kontrolą błędów. No i oczywiście zawartość $_GET też trzeba dokładnie sprawdzić zanim złożysz z tego zapytanie do bazy. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 642 Pomógł: 2 Dołączył: 9.03.2006 Ostrzeżenie: (30%) ![]() ![]() |
Id osoby polecającej pobiera ta zmienna:
z linku rejestracja.php?ref=1 $ref[id] będzie wynosiło 1 Cały kod wygląda tak: Przy tym kodzie wypada błąd: Cytat Notice: Undefined index: referujacy in /srv/www/vhosts/westernlife.pl/httpdocs/rejestracja.php on line 95
Nie mam pojęcia co już tutaj poprawić, może mi ktoś pomóc ogarnąć to ? ![]() -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Nie chciałbym dać normalnego pola bo użytkownicy będą mogli gmerać przy refie. Przecież disabled też bez problemu można zmienić ![]() Daj hidden i po sprawie. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Masz na serwerze ustawione register_globals on, więc do zmiennych możesz dostać się bezpośrednio, niezależnie czy jest to get, post czy inne, a to mocno utrudnia połapanie się w kodzie. Dużo lepiej byłoby gdybyś uczył się bez takich "ułatwień".
Zmienne podanych w URLu są w tablicy $_GET, czyli na przykład jeśli masz adres http://www.westernlife.pl/rejestracja.php?ref=12573 to powinieneś dostać wartość 12573 w $_GET['ref']
Następnie sprawdzasz wartość $referujacy pod kątem możliwości grzebania, przepuszczając wyłącznie 1 do 6 cyfr z zakresu 0-9, chyba nie planujesz więcej niż milion graczy.
Następnie sprawdzasz czy taki user jest w bazie danych
Do bazy bedziesz wrzucac jego id, czyli $referujacy, a $ref_username może zostać do wyswietlenia w formularzu w polu disabled jeśli bardzo tego pragniesz. Następnie sprawdzamy co trzeba zrobić, czy wyświetlić formularz czy może od razu rejestrować.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 14 Dołączył: 21.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Przeczytaj co Ci tu napisze, trochę nie kontaktuje ale może Cię dobrze zrozumiałem
Dlaczego ukrywasz tutaj polecającego po co ![]() ![]() i pod linkiem: www.mojamamamniebije.pl/bije.php?raz=IMIEMOJEJMAMY oczywiście: mojamamamniebije - adres strony bije - plik twój IMIEMOJEJMAMY - to będzie oczywiście polecajacy Pokładaj sobie to i zmodyfikuj. No i powinno Ci działać ;> Jeżeli disabled nie wyślesz a nie chcesz żeby ktoś się przy tym polu bawił to może usuń to pole i wyślij ze zmiennej. albo
Ten post edytował kill15 13.04.2011, 22:39:29 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:29 |