Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Ref link
jahonen
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.04.2014

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


Chciałbym napisać skrypt, który:
-nie działa gdy sam kliknę w link (tylko gdy osoba z innego komputera go kliknie)
-jedna osoba może kliknąć w link tylko jeden raz

Prosiłbym o pomoc. Z proxy sobie poradziłem teraz tylko to. Z góry dzięki (IMG:style_emoticons/default/wink.gif)

Oto fragment mojego kodu
Kod
db_connect();


if($_GET['ref'])
{
    $query1 = mysql_query("UPDATE users SET zdolnosc=zdolnosc+1 WHERE ref = '$_GET[ref]'");
    }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Posio
post
Post #2





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


możesz sprawdzać IP lub tworzyć plik cookie. Nie idzie się przed tym zabezpieczyć na 100%
Go to the top of the page
+Quote Post
jahonen
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.04.2014

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


Jak sprawdzić ip i nie zezwolić na wykonanie skryptu?
Go to the top of the page
+Quote Post
dje31
post
Post #4





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 17.03.2009
Skąd: Karpacz

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


IP:

  1. <?php
  2. echo $_SERVER['REMOTE_ADDR'];
  3. ?>


Przeanalizuj tez:

  1. <?php
  2. $_SERVER['HTTP_CLIENT_IP'];
  3. $_SERVER['HTTP_COMING_FROM'];
  4. $_SERVER['HTTP_FORWARDED'];
  5. $_SERVER['HTTP_FORWARDED_FOR'];
  6. $_SERVER['HTTP_VIA'];
  7. $_SERVER['HTTP_X_COMING_FROM'];
  8. $_SERVER['HTTP_X_FORWARDED'];
  9. $_SERVER['HTTP_X_FORWARDED_FOR'];
  10. ?>

Go to the top of the page
+Quote Post
jahonen
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.04.2014

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


Kod
if($_GET['ref'])
{
    db_connect();
$selip = mysql_query("SELECT ip1, ip2, ip3 FROM users WHERE ref = '$_GET[ref]'");
$fetched = mysql_fetch_array($selip);
$ip = $_SERVER["REMOTE_ADDR"];
if($fetched["ip1"] !== $ip || $fetched["ip2"] !== $ip ||$fetched["ip3"] !== $ip)
{
    $query1 = mysql_query("UPDATE users SET zdolnosc=zdolnosc+1 WHERE ref = '$_GET[ref]'");
    if($fetched["ip1"] == 0){
    $query2 = mysql_query("INSTERT INTO users (ip1) VALUES ('$ip')");
    }
    elseif($fetched["ip2"] == 0){
    $query2 = mysql_query("INSTERT INTO users (ip2) VALUES ('$ip')");
    }
    elseif($fetched["ip3"] == 0){
    $query2 = mysql_query("INSTERT INTO users (ip3) VALUES ('$ip')");
    }
}

Zrobiłem to w ten sposób. Czy to będzie działać? Nie mam tego jak sprawdzić bo pracuję na localhost. Domyślna wartość w kulumnach ip1, ip2, ip3 to "0".

Ten post edytował jahonen 11.05.2014, 08:42:42
Go to the top of the page
+Quote Post
Turson
post
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


1. Wstawiaj kod w PHP w odpowiedni BBCode, bo dużo lepiej się czyta.
2. Nie, to nie będzie działać m.in. z powodu literówek "INSTERT"
3. Wstawiasz do tabeli users każdemu użytkownikowi do odpowiedniej kolumny ip, a nie konkretnemu.
4. Podatne na SQL Injection jak cholera.
5. Jak włączysz raportowanie błędów, to zobaczysz, że if($_GET['ref']) wypluje ci błąd. Podpowiedź isset
6. Sprawdź różnicę między !== a !=, bo w tym przypadku może spowodować złe działanie.

Ten post edytował Turson 11.05.2014, 11:31:32
Go to the top of the page
+Quote Post
jahonen
post
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.04.2014

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


Dzięki stary, już wiem jak się za to zabrać (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

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: 24.09.2025 - 15:57