[PHP + MYSQL] stats naar remote db

Pagina: 1
Acties:
  • 132 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 61135

Topicstarter
Goedendag,

ik ben bezig met een statistieken script. Nu werken de stats op de server.
Het script staat op hulpeldepup.net en schrijft het weg naar MYSQL via localhost.
Nu wil ik dit script gebruiken op een andere site en wil die stats wegschrijven naar de db op hulpeldepup.net.

Hoe krijg ik dat voor elkaar.
heb het volgende geprobeerd:

PHP:
1
2
3
4
5
6
7
8
9
10
<?
  $remoteip = $_SERVER['REMOTE_ADDR'];
  $sFullurl = getenv("HTTP_REFERER");
  $sFullurl = str_replace("http://", "", $sFullurl);
  $sStripurl = $sFullurl;
  preg_match("/^(http:\/\/)?([^\/]+)/i",$sStripurl, $sMatches);
  $sStripurl = $sMatches[2];
  preg_match("/[^\.\/]+\.[^\.\/]+$/",$sHost,$sMatches);
  $sStripurl == $sMatches[0];
  echo "[img]http://www.hulpeldepup.net/referer.php?remoteip=$remoteip&sStripurl=$sStripurl[/img]");


en natuurlijk include en require, maar dit werkt ook niet.
Met de img, dan laat mijn website nog gewoon, maar met include en require dan is de site traag en krijg ik een foutmelding.

Het referer script werkt dus op de site zelf, maar ik wil het op die server laten staan en ik wil dan de stats van andere websites ook daar wegschrijven

[ Voor 12% gewijzigd door Anoniem: 61135 op 15-01-2006 15:19 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Wat is nu eigenlijk je vraag? Wat lukt er niet? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Anoniem: 61135

Topicstarter
het script schrijft niet de referer gegevens weg van een site naar een mysql db van een andere site

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Ik zie ook nergens in je code dat je wat wegschrijft? Je opent alleen een dynamisch plaatje.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Anoniem: 61135

Topicstarter
het script op de "remote server" schrijft het weg naar zijn locale db. De gegevens die daarheen gestuurd moeten worden zijn het ip van de user en de website waarvan de user komt. Die 2 gegevens moet hij "doorgeven" aan het referer script op een andere server, die het vervolgens wegschrijft in "zijn" database.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Mijn eerste vraag: kun je niet gewoon remote connecten met de database server?

En dan een tweede vraag: waarom post je dan deze code, en niet de code die het spul daadwerkelijk moet wegschrijven? Ga dat andere script liever debuggen. Komt de input die je doorgeeft wel binnen? Heeft het het formaat dat je verwacht? Kan het script verbinding leggen met je database? Gaat je query goed? Zorg eerst dat je zeker weet dat je dat script werkend hebt, dan kun je daarna eens over de code die je hierboven hebt gepost heenbuigen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Anoniem: 61135

Topicstarter
de code zelf werkt. Maar de code werkt alleen op zijn eigen server. Hij staat op huppeldepup.net en schrijft het weg naar local host. Nu wil ik dat script gebruiken voor mijn andere sites, maar dan moet ik een code op de desbetreffende site zetten die vervolgens doorgeeft aan hulpdepup.net dat hij het ip en de url waarvan de bezoeker komt weg moet schrijven. als ik het script include of require dan werkt het niet.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Laat je code eens zien dan. De code hierboven zegt echt niks over je probleem.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Wat voor fout melding krijg je dan? Overigens zijn de functies urldecode en urlencode ook handig om naar te kijken.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

Anoniem: 61135

Topicstarter
PHP:
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?
$sStripurl = $_GET[sStripurl];
$remoteip = $_GET[remoteip];

if($remoteip == "")
  {
    $remoteip = "empty ip";

  }
if($sStripurl == "")
  {
    $sStripurl = "empty url";

  }
//echo "Referrer: $sStripurl";

$current_date = date(Ymd);
$current_time = date(His);


if($sStripurl != "")
  {


$count=0;
          mysql_connect('localhost', 'login', 'ww');
          mysql_select_db("db");
          mysql_query("DELETE FROM referers WHERE date != '$current_date'");

$query = "SELECT * FROM referers WHERE url LIKE '%$sStripurl%' and ip = '$remoteip'";
$resultaat = mysql_query($query);

while ($obj = mysql_fetch_object($resultaat))
  {
    $count = $count+1;
    $id = $obj->id;
    $url = $obj->url;
    $ip = $obj->ip;
    $date = $obj->date;
    $time = $obj->time;

        if($date == $current_date)
          {
            $lastvisittime = $time+100; //100 is 1 minute
            if($lastvisittime < $current_time)
              {
                  mysql_query ("UPDATE referers SET time = $current_time WHERE url LIKE '%$sStripurl%' and ip = '$remoteip'");
                  $query = "SELECT * FROM users WHERE siteurl LIKE '%$sStripurl%'";
$resultaat = mysql_query($query);

while ($obj = mysql_fetch_object($resultaat)) {

$total_hits_in = $obj->total_hits_in;

mysql_query ("UPDATE users SET total_hits_in = total_hits_in+1 WHERE siteurl LIKE '%$sStripurl%'");

   }

              }
          }
        else
          {
   //         echo "Date is different $current_time / $current_date  - $time / $date - $remoteip - $sStripurl";
            //Date is different so update
            mysql_query("UPDATE referers SET date='$current_date', time='$current_time' WHERE url LIKE '%$sStripurl%' and ip = '$remoteip'") or die (mysql_error());


            $query = "SELECT * FROM users WHERE siteurl LIKE '%$sStripurl%'";
$resultaat = mysql_query($query);

while ($obj = mysql_fetch_object($resultaat)) {

$total_hits_in = $obj->total_hits_in;

mysql_query ("UPDATE users SET total_hits_in = total_hits_in+1 WHERE siteurl LIKE '%$sStripurl%'");

   }

          }
   }


If($count == 0) // no records found with current referer
  {
 mysql_query("INSERT INTO referers (id, url, ip, date, time) VALUES ('', '$sStripurl', '$remoteip', '$current_date', '$current_time');") or die (mysql_error());

 $query = "SELECT * FROM users WHERE siteurl LIKE '%$sStripurl%'";
$resultaat = mysql_query($query);

while ($obj = mysql_fetch_object($resultaat)) {

$total_hits_in = $obj->total_hits_in;

mysql_query ("UPDATE users SET total_hits_in = total_hits_in+1 WHERE siteurl LIKE '%$sStripurl%'");

   }

  }
  }
?>

Acties:
  • 0 Henk 'm!

Anoniem: 26421

Never mind...

[ Voor 91% gewijzigd door Anoniem: 26421 op 15-01-2006 16:00 ]


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Heb je serieus zo je code gestructureerd? Een beetje normaal indenten wil ook vaak wel helpen bij debuggen. Dan zie je de logische structuur tenminste in 1 oog opslag. Maar wat voor foutmelding krijg je dan? Probeer eens error_reporting(E_ALL); boven in je code te zetten.

[ Voor 24% gewijzigd door Michali op 15-01-2006 16:08 ]

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Je mag je code wel eens wat beter uitlijnen, dit is niet te lezen zo. :X

Probeer eens wat te debuggen: roep de pagina aan met wat parameters in de querystring, en voer op strategische punten eens wat gegevens uit om te kijken welke waarde belangrijke variabelen hebben. Zie ook P&W FAQ - Leer **** debuggen!!.

Daarnaast blijft mijn vraag staan: waarom maak je niet een remote connection naar de database in kwestie?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
-NMe- schreef op zondag 15 januari 2006 @ 16:07:
Daarnaast blijft mijn vraag staan: waarom maak je niet een remote connection naar de database in kwestie?
Dat is geen goed plan denk ik. Als de remote db/website even niet goed bereikbaar is, dan heb je met dikke vertragingen (en mischien foutmeldingen) te maken op de andere website.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Misschien, maar die heb je met require, include en file_get_contents ook wel. En de image-oplossing die hier gekozen is vind ik ook niet super eigenlijk. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Anoniem: 61135

Topicstarter
Michali schreef op zondag 15 januari 2006 @ 16:10:
[...]

Dat is geen goed plan denk ik. Als de remote db/website even niet goed bereikbaar is, dan heb je met dikke vertragingen (en mischien foutmeldingen) te maken op de andere website.
omdat ik deze code ook wil gebruiken voor andere sites. En ook de anderen strax deze code wil laten gebruiken

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Sorry, maar ik vind je maar een beetje vaag reageren. Ik stelde geen vraag, ik gaf alleen een reactie op iets dat -NMe- zei. Je geeft echter een antwoord op iets, maar het is me echt een raadsel waarop.

Volgens mij is dit vrij simpel op te lossen. Zet sowieso error_reporting(E_ALL); boven in je code. Dan krijg je een nette error melding inc. regelnummer als je wat fout doet. Als dat niet het geval is moet je gaan isoleren waar het probleem ligt. Dat houdt eigenlijk in dat je even moet achterhalen waar het fout gaat. Dat kun je op verschillende manieren doen. Bijvoorbeeld door de inhoud van variabelen op bepaalde punten te bekijken (door middel van var_dump bijvoorbeeld) en door te testen of bepaalde constructies wel goed doorlopen wordt (ook door bijvoobeeld wat test output te doen op bepaalde plekken, om te zien of het punt wel bereikt wordt wat bereikt hoort te worden).

Maar dat is allemaal vrij basic debug werk, wat wel verwacht wordt als je hier een probleem post. Zie ook de link die -NMe- gaf. Als je nou eerst eens je code op een normale (logische manier) structureert, dan ben je al heel wat verder. Als je daarna beter weet wat er fout gaat, kun je dat eventueel hier plaatsen als je er zelf niet goed uitkomt. Maar door code neer te dumpen en te zeggen 'het werkt niet', tja daar kunnen we dan ook niet zo veel mee.

Noushka's Magnificent Dream | Unity

Pagina: 1