AGENT » 2009.02.22 15:01

Почему не работает скрипт записи и вывода рефа? Задолбался уже. Белый экран в водит и все тут.
Добавлено спустя   5 минут  10 секунд:

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Таблица: CREATE TABLE `referer` (
url varchar(100) NOT NULL,
hits int(10) DEFAULT '0' NOT NULL,
PRIMARY KEY (url)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
файл который необходимо инклюдить в нужные страницы:
<?php
$hostname1 = "";
$username1 = "";
$password1 = "";
$userstable1 = "referer";
$dbName1 = "";
$ref = strtolower($HTTP_REFERER);
if(!empty($ref)){
mysql_connect($hostname1,$username1, $password1) or die (mysql_error());
mysql_select_db("$dbName1") or die(mysql_error());
$query = "select * from $userstable1 where url = '$ref'";
$result = mysql_query($query);$rows = mysql_num_rows ($result);
if ($rows == 0){
$hits = "1";
$query1 = "insert into $userstable1 (url,hits) values ('$ref','$hits')";
else {
$hitquery = "select hits from $userstable1 where url = '$ref'";
$result2 = mysql_query($hitquery);
$row = mysql_fetch_array($result2);
$hits = $row["hits"];
$query2 = "update $userstable1 set hits = hits+1 where url = '$ref'";
mysql_query($query2);
} }
?>
файл вывода информации:
<?php
 
$hostname1 = "";
$username1= "";
$password1 = "";
$userstable1 = "referer";
$dbName1 = "";
 
$color10 = "#FFFF00";
$color20 = "#FF0000";
$color50 = "#008000";
$color1k = "#0000FF";
$color2k = "#0000A0";
$color5k = "#000040";
 
mysql_connect($hostname1, $username1,$password1) or die (mysql_error());
mysql_select_db("$dbName1") or die(mysql_error());
 
$query = "select * from $userstable1 order by hits desc";
$result = mysql_query($query);
$number = mysql_num_rows($result) or die (mysql_error ());
$i = 0;
if ($number == 0) {
echo '<center><p><b>Сведений о рефералах не обнаружено!</b></center>';
}
elseif ($number >= 1) {
while ($i < $number){
$row = mysql_fetch_array($result);
$hits = $row["hits"];
$ref = $row["url"];
if ($hits <10){
$color = "$color10";
} elseif (($hits >= 10 ) and ($hits < 20)){
$color = "$color20";
} elseif (($hits >= 20 ) and ($hits < 50)){
$color = "$color50";
} elseif (($hits >= 50 ) and ($hits < 100)){
$color = "$color1k";
} elseif (($hits >= 100 ) and ($hits < 200)){
$color = "$color2k";
} elseif ($hits >= 200){
$color = "$color5k";
}
echo "<div align="left">";
echo "<table cols="3" border="0" width="100%"><tr><td align="left" width="400"><b><a href="$ref">$ref</a></b></td>";
echo "<td align="right" width="60"><b>$hits</b></td>";
echo "<td align="left" width="$hits" bgcolor="$color"></td></tr>";
$i++;
echo"</table>";
}
}
?>
AGENT » 2009.02.22 15:23

В чем проблема может быть?

Gemorroj » 2009.02.22 15:49

где ты этот скрипт взял?
Добавлено спустя    32 секунды:
в глобальных переменных, скрипт написан на включенных.
Добавлено спустя   2 минуты  25 секунд:

echo "<div align="left">";

вот тут ошибка.

else {

и вот тут ошибка.

AGENT » 2009.02.22 16:35

Скрипт в сети нашел. Точнее как шаблон. А как сделать чтоб работало и без глобальных чтоб было? :)
Добавлено спустя   1 минуту  11 секунд:
Правда я там чуть полазил ))изначально не такой был скрипт

Gemorroj » 2009.02.22 16:43

$HTTP_REFERER заменить на $_SERVER['HTTP_REFERER']; ну и переменные которые приходят извне принимаь соответственно через $_GET и $_POST

AGENT » 2009.02.22 16:54

A вот переменные которые приходят из вне я не смогу заменить. Точнее найти((

AGENT » 2009.02.22 17:11

Это получится $ref = strtolower($_SERVER['HTTP_REFERER']);
а переменные нужно заменить $ref,$hits?
Добавлено спустя   1 минуту  35 секунд:
$row убрать и поставить $_POST?

Gemorroj » 2009.02.22 17:28

$_POST['row'] если эта переменна приходти POST методом.

AGENT » 2009.02.22 17:33

$hits=$_POST['row']["hits"] что ли получится? *WALL* а как узнать каким методом передается?

Gemorroj » 2009.02.22 17:37

$row = mysql_fetch_array($result); ты эту переменную имеешь ввиду чтоли?
если видишь переменную в url, то это GET, если нет, то это POST

AGENT » 2009.02.22 17:43

Нет. Я эту имею ввиду $hits=$row["hits"];
Добавлено спустя   1 минуту  51 секунду:
Дайте йаду ведро! Может выпью и пойму где что поменять надо

Gemorroj » 2009.02.22 17:58

$row ты созал сам. $row = mysql_fetch_array($result2); ни POST, ни GET ей не надо.

AGENT » 2009.02.22 18:00

А каким тогда надо?

Gemorroj » 2009.02.22 18:01

я не знаю, я этот скрипт не ставил.

AGENT » 2009.02.22 18:06

А я вот ставил и не работает. Ты говоришь что он на глобальных работает а как переделать на офф я не пойму пока

Gemorroj » 2009.02.22 18:10

посмотрел повнимательней, там вродебы даже достаточно просто заменить $HTTP_REFERER на $_SERVER['HTTP_REFERER'] и все

AGENT » 2009.02.22 18:11

Завтра проверю тогда :) спасибо

AGENT » 2009.02.23 05:05

Не работает. Ни первый,ни второй скрипт

Gemorroj » 2009.02.23 08:25

ну выкладывай, что ты там исправил. да и вообще, написал бы свой скрипт)

AGENT » 2009.02.23 11:56

Паша,думаю не смогу я пока писать. Меня псих берет когда что то не получается. С тела жопа полная

AGENT » 2009.02.23 12:39

Ошибку нашел идиотскую. Теперь ошибки при инлюде не возникает. Но и в базу не записывается. А viewreferer.php так и выдает ошибку (белый экран)

Gemorroj » 2009.02.23 13:30

напиши свой измененный код

AGENT » 2009.02.23 14:25

referer.php
<?php
$hostname1 = ".mchost.ru";
$username1 = "_12";
$password1 = "Test12345";
$userstable1 = "referer";
$dbName1 = "_12";
$ref = strtolower($_SERVER['HTTP_REFERER']);
if(!empty($ref)) {
mysql_connect($hostname1,$username1, $password1) or die (mysql_error());
mysql_select_db("$dbName1") or die(mysql_error());
$query = "select * from $userstable1 where url = '$ref'";
$result = mysql_query($query);$rows = mysql_num_rows ($result);
if ($rows == 0){
$hits = "1";
$query = "insert into $userstable1 (url,hits) values ('$ref','$hits')";

$hitquery = "select hits from $userstable1 where url = '$ref'";
$result2 = mysql_query($hitquery);
$row = mysql_fetch_array($result2);
$hits = $row["hits"];
$query2 = "update $userstable1 set hits = hits+1 where url = '$ref'";
mysql_query($query2);
} }
?>
viewreferer.php
<?php

$hostname1 = ".mchost.ru";
$username1 = "_12";
$password1 = "Test12345";
$userstable1 = "referer";
$dbName1 = "_12";

$color10 = "#FFFF00";
$color20 = "#FF0000";
$color50 = "#008000";
$color1k = "#0000FF";
$color2k = "#0000A0";
$color5k = "#000040";

<head>
<title>test</title>
</head><body>
mysql_connect($hostname1, $username1,$password1) or die (mysql_error());
mysql_select_db("$dbName1") or die(mysql_error());

$query = "select * from $userstable1 order by hits desc";
$result = mysql_query($query);
$number = mysql_num_rows($result) or die (mysql_error ());
$i = 0;
if ($number == 0) {
echo '<center><p><b>Сведений о рефералах не обнаружено!</b></center>';
}
elseif ($number >= 1) {
while ($i < $number){
$row = mysql_fetch_array($result);
$hits = $row["hits"];
$ref = $row["url"];
if ($hits <10){
$color = "$color10";
} elseif (($hits >= 10 ) and ($hits < 20)){
$color = "$color20";
} elseif (($hits >= 20 ) and ($hits < 50)){
$color = "$color50";
} elseif (($hits >= 50 ) and ($hits < 100)){
$color = "$color1k";
} elseif (($hits >= 100 ) and ($hits < 200)){
$color = "$color2k";
} elseif ($hits >= 200){
$color = "$color5k";
}
echo "<td align="left">";
echo "<table cols="3" border="0" width="100%"><tr><td align="left" width="400"><b><a href="$ref">$ref</a></b></td>";
echo "<td align="right" width="60"><b>$hits</b></td>";
echo "<td align="left" width="$hits" bgcolor="$color"></td></tr>";
$i++;
}
}
echo"</table>";
echo "</body></html>";
?>

AGENT » 2009.02.27 06:26

Написал тебе свои измененный код и что?
Вот другой

Код:

1
span style="color: #0000BB"><?php$ref = $_SERVER['HTTP_REFERER'];$refuser = htmlspecialchars($_SERVER['HTTP_USER_AGENT']);$fileref = "text.txt";$script = fopen($fileref, "a+");fwrite($script, $ref, $refuser."\n");fclose($script); ?>

в файл записывает,но записывает и реальных рефов и мой алиас,но почему то не записывает юзер агент. Не подскажешь как это исправить?

Gemorroj » 2009.02.27 11:29

звиняюсь, как-то не хватило времени проверить.

Код:

1
span style="color: #0000BB"><?phpfile_put_contents('file.dat', $_SERVER['HTTP_REFERER'].' - '.$_SERVER['HTTP_USER_AGENT']."\n", FILE_APPEND);?>
AGENT » 2009.02.27 13:10

Gemorroj написал:

звиняюсь, как-то не хватило времени проверить.

Код:

1
span style="color: #0000BB"><?phpfile_put_contents('file.dat', $_SERVER['HTTP_REFERER'].' - '.$_SERVER['HTTP_USER_AGENT']."\n", FILE_APPEND);?>

Павел,я что то не пойму это что и для чего? У меня же другой скрипт был.

Gemorroj » 2009.02.27 13:22

это замена твоего из 24 поста.

AGENT » 2009.02.27 13:29

Это че мне щас нужно выкинуть свои,поставить твой и создать дат файл?
А почему мой не работает? А то я так ничего не пойму на будущее

Gemorroj » 2009.02.27 13:51

fwrite($script, $ref, $refuser."\n");
http://php.net/fwrite не правильно переданы параметры.

AGENT » 2009.02.27 13:57

Твой работает. Но он пишет даже если в строке браузера адрес ввел (браузер записывает). А если сделать все это вывод на страницу то лучше два и более файла для записи сделать? В одном адреса,в другом браузер,можно еще и дату подсчет хитов гг
Добавлено спустя   3 минуты  1 секунду:
Ну вот. Твой скрипт тоже записывает все подряд. Даже адрес моего сайта записывает. И что т не пойму,поставил на главную только для теста,а он мне ссылки с загруза показывает.

Gemorroj » 2009.02.27 14:17

записываются 2 переменные $_SERVER['HTTP_REFERER'] и $_SERVER['HTTP_USER_AGENT'] если ты просто обновиш страницу. то реферер, естественно, будет эта страница.

AGENT » 2009.02.27 14:37

Gemorroj написал:

записываются 2 переменные $_SERVER['HTTP_REFERER'] и $_SERVER['HTTP_USER_AGENT'] если ты просто обновиш страницу. то реферер, естественно, будет эта страница.

не. Такое не пойдет. На куках наверно надо. Дело в другом еще. Он записывает почему мой адрес ,да еще и с загруз центра. Я страницы не обновлял,там браузеры другие. :) и при обновлении страницы не должно идти записи,реф должен быть от куда пришли. А он записывает мой сайт рефом
Добавлено спустя   2 минуты  11 секунд:
Щас файл уже весит нормально. Гугль в гости зашел гг

Gemorroj » 2009.02.27 14:43

=)) AGENT, это реферер) если тебе нужно что-то другое, то прежде грамотно спроектируй скрипт. "Он почему-то" - не бывает. Это самый простой скрипт в 1 строчку. Все что он делает, этог записывает реферер и юзерагент. Все. Юзер агент и реферер передаются браузером, а не каким-то мифическим образом формируются в php. Так что либо твой браузер предает как-то не так (прокси например), либо мы друг друга не понимаем.

AGENT » 2009.02.27 15:34

Я впервые вижу и слышу что рефером может быть собственный сайт. Рефер должен записываться только если с какого то другого сайта перешли к тебе на сайт а не через строку браузера. К примеру если перешли с гугла,то скрипт обязан записать адрес от куда перешли (гугла) и браузер. Я видел кучу скриптов в двигах и все они работали как надо. Данный же скрипт считает рефом мой собственный сайт чего не должно быть.
Добавлено спустя   4 минуты  38 секунд:
И мой браузер тут не причем. Я смотрю на другие браузеры.

Gemorroj » 2009.02.27 16:38

AGENT, ну вот теперь услышал. реферер - это предыдущая страница. и все. и потом реферер очень часто не передается. я, например, отключил его в браузере.

AGENT » 2009.02.27 17:59

Хм а как тогда работает австатс в панели? Почему он не засчитывает страницы моего сайта а считает только переходы с других?

Gemorroj » 2009.02.27 18:08

потому что это такой менеджер) и там работают соответствующие фильтры.

AGENT » 2009.02.28 10:35

Эээ ну понятно. Спасибо
Добавлено спустя   5 минут  50 секунд:
Павел,я не буду отдельную тему создавать. Спрошу тут. Как то давно я качал скрипт новостей с коментами. Он еще у Николая стоит. Там есть рсс канал. Вот сегодня я немного переделал этот скрипт полностью под сайт свой,посадил на куки и сделал смену тем там. И увидел что после добавления новости,новость не записывается в rss.xml . Думал я что то там наделал и начал искать ошибку,но когда посмотрел старый установленный скрипт то увидел что туда тоже не записывалась новость еще с декабря 2008 года. А в то время я вроде со скриптом ничего не делал. Права 666 стоят. В чем может быть проблема и в каком именно файле? Найти ошибку не могу.

AGENT » 2009.02.28 14:46

Ау гг

Gemorroj » 2009.02.28 15:37

хз, что именно за скрипт? в архиве он есть тут?

AGENT » 2009.02.28 18:01

Да . Это твой скрипт с коментариями. В первом можно было заголовок и новость писать,а во втором только новость. Вот похоже когда я заменил файлы и перестало работать.

AGENT » 2009.03.02 05:35

Аааууу

AGENT » 2009.03.02 12:57

Ауууугг

Gemorroj » 2009.03.02 13:48

позже... у мя терь работа, в инете тостоянно, но по работе, на свои вещи времени практически не остается(

AGENT » 2009.03.02 15:50

Понятно. Бывает

AGENT » 2009.03.22 11:48

Ну че новости кто нить посмотрит? Кстати новости эти или похожие как тут на главной.

Gemorroj » 2009.03.22 11:51

какие такие новости???

AGENT » 2009.03.24 06:38

Gemorroj написал:

какие такие новости???

отличный вопрос. Ты не знаешь какой скрипт новостей у тебя на главной? Не я же админ тут.