Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem zapisu referera do bazy
djgarsi
post
Post #1





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Witam. Mam problem z zapisem referera do bazy danych. Problem polega na tym że do bazy nie zapisują się dane. Mój skrypt wygląda tak:
  1. <?
  2. $referer = "http://".$_SERVER['HTTP_REFERER'];
  3. $adresik=parse_url($referer, PHP_URL_HOST);
  4. $Query_ref='SELECT * FROM referer';
  5. $result_ref = mysql_query($Query_ref) or die(mysql_error());
  6. while ($row_ref = mysql_fetch_array($result_ref))
  7. {
  8. if($adresik==$row_ref[adres]) {
  9. $pytanko_ref='UPDATE referer SET odwiedzin=odwiedzin+1 WHERE adres="'.$adresik.'"';
  10. mysql_query($pytanko_ref);
  11. }
  12. else {
  13. $Zapytanie_ref = 'INSERT INTO referer VALUES ("'.$adresik.'", "1")';
  14. mysql_query($Zapytanie_ref);
  15. }
  16. }
  17. ?>


Wyświetlany błąd to Warning: parse_url(http://) [function.parse-url]: Unable to parse URL in /home/user/domains/strona.pl/public_html/ref.php on line 3

Ten post edytował djgarsi 1.09.2010, 18:14:08
Go to the top of the page
+Quote Post
AlexDeLarge
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 14
Dołączył: 14.02.2010

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


Otóż i właśnie. Na HTTP_REFERER nie należy absolutnie polegać, gdyż nie każdy użytkownik go przesyła. Nie przez własną złośliwość, ale na ten przykład łączy się przez proxy, które go wycina.
Jeśli chcesz liczyć odwiedziny jednego użytkownika zainteresuj się sesjami.

Poza tym, panie.

  1. SELECT * FROM referer WHERE adres='$adresik'


Zdrówka życzę.

Ten post edytował AlexDeLarge 1.09.2010, 18:20:12
Go to the top of the page
+Quote Post
djgarsi
post
Post #3





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Ja jednak zostanę przy HTTP_REFERER.(IMG:style_emoticons/default/smile.gif) tylko powiedz mi proszę co ten błąd oznacza?(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
AlexDeLarge
post
Post #4





Grupa: Zarejestrowani
Postów: 85
Pomógł: 14
Dołączył: 14.02.2010

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


Ale jesteś pewien, że $_SERVER['HTTP_REFERER'] jest niepuste?
Jeśli tak, to ukryj błędy:
  1. @parse_url(...)

To jeno ostrzeżenie.
Go to the top of the page
+Quote Post
djgarsi
post
Post #5





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


A będzie zapisywał taki kod?
  1. <?
  2. if($_SERVER['HTTP_REFERER']<>0) {
  3. $referer = "http://".$_SERVER['HTTP_REFERER'];
  4. $adresik=parse_url($referer, PHP_URL_HOST);
  5. $Query_ref='SELECT * FROM referer';
  6. $result_ref = mysql_query($Query_ref) or die(mysql_error());
  7. while ($row_ref = mysql_fetch_array($result_ref))
  8. {
  9. if($adresik==$row_ref[adres]) {
  10. $pytanko_ref='UPDATE referer SET odwiedzin=odwiedzin+1 WHERE adres="'.$adresik.'"';
  11. mysql_query($pytanko_ref);
  12. }
  13. else {
  14. $Zapytanie_ref = 'INSERT INTO referer VALUES ("'.$adresik.'", "1")';
  15. mysql_query($Zapytanie_ref);
  16. }
  17. }
  18. }
  19. ?>
Go to the top of the page
+Quote Post
AlexDeLarge
post
Post #6





Grupa: Zarejestrowani
Postów: 85
Pomógł: 14
Dołączył: 14.02.2010

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


poprawniej byłoby
  1. if (!empty($_SERVER['HTTP_REFERER']))


No i daj i tak tę małpę przed parse_url, bo widzę, że problem się powtarza tu i ówdzie.
Go to the top of the page
+Quote Post
djgarsi
post
Post #7





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Chodzi o małpę w 4 linii??

$adresik=@parse_url($referer, PHP_URL_HOST);
Go to the top of the page
+Quote Post
AlexDeLarge
post
Post #8





Grupa: Zarejestrowani
Postów: 85
Pomógł: 14
Dołączył: 14.02.2010

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


Dokładnie.
I zróbżesz do cholery ten where w SQL-u - po co masz za każdym razem mielić całą tabelę.
Albo zainstaluj sobie Google Analytics.
Go to the top of the page
+Quote Post
djgarsi
post
Post #9





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Ok. Mam zainstalowany GA.(IMG:style_emoticons/default/smile.gif) I uprzedzając kolejne pytanie, chcę mieć swoje dane w panelu admina.(IMG:style_emoticons/default/smile.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: 19.09.2025 - 09:44