Voor een eigen site wil ik een script maken die meteen bij bezoeker-aanvang alle gegevens rond die bezoeker gaat loggen in een mysql-database. Ik dacht daarvoor aan een combinatie van javascript (via jquery) en php.
Ik heb een probleem omtrent een jquery-aanvraag naar een php-pagina (functions.php) die op zich een nieuwe 'bezoeker' aanmaakt. Ik geraak moeiteloos tot aan het functions.php-bestand via een jquery ajax()-aanvraag. Maar éénmaal ik de aanmaak van een nieuwe bezoeker doe (verder in het functions.php -bestand), krijg ik geen respons meer terug volgens gedefinieerd in de aangeroepen functie van de aangemaakte bezoekers-klasse.
Even beter situeren. De verschillende bestanden
index.php : hoofd-pagina waarop bezoeker terecht komt.
bezoeker.js : om in javascript een object 'bezoeker' aan te maken + functie ajax-aanvraag (jquery) te doen
--> ajax-aanvraag wordt succesvol verstuurd naar functions.php
functions.php : allerlei functies, waaronder hier het aanmaken van een nieuwe bezoeker volgens beschreven in class_bezoeker.php
--> een echo vóór de aanmaak hier van een 'bezoeker' lukt en wordt succesvol terug ontvangen door oorspronkelijke ajax-functie (echo-antwoord komt dus goed terug).
--> echter na de aanmaak 'bezoeker' en methode-aanroep (methode 'visitlog') keert geen enkele respons terug uit class_bezoeker.php naar functions.php naar ajax-aanvraag.
class_bezoeker.php
index.php:
bezoeker.js:
functions.php:
class_bezoeker.php:
Blijkbaar gaat er dus iets mis in mijn object-aanmaak 'bezoeker' in functions.php of iets in de klasse 'bezoeker' zelf. Verder weet ik niet zeker of mijn aanpak om een bezoeker te loggen op deze manier wel een goede is.
In elk geval, kan bij deze iemand mij verder helpen?
Ik heb een probleem omtrent een jquery-aanvraag naar een php-pagina (functions.php) die op zich een nieuwe 'bezoeker' aanmaakt. Ik geraak moeiteloos tot aan het functions.php-bestand via een jquery ajax()-aanvraag. Maar éénmaal ik de aanmaak van een nieuwe bezoeker doe (verder in het functions.php -bestand), krijg ik geen respons meer terug volgens gedefinieerd in de aangeroepen functie van de aangemaakte bezoekers-klasse.
Even beter situeren. De verschillende bestanden
index.php : hoofd-pagina waarop bezoeker terecht komt.
bezoeker.js : om in javascript een object 'bezoeker' aan te maken + functie ajax-aanvraag (jquery) te doen
--> ajax-aanvraag wordt succesvol verstuurd naar functions.php
functions.php : allerlei functies, waaronder hier het aanmaken van een nieuwe bezoeker volgens beschreven in class_bezoeker.php
--> een echo vóór de aanmaak hier van een 'bezoeker' lukt en wordt succesvol terug ontvangen door oorspronkelijke ajax-functie (echo-antwoord komt dus goed terug).
--> echter na de aanmaak 'bezoeker' en methode-aanroep (methode 'visitlog') keert geen enkele respons terug uit class_bezoeker.php naar functions.php naar ajax-aanvraag.
class_bezoeker.php
index.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <?php include_once("../ConfigAndFunctions/config.php"); include_once("../ConfigAndFunctions/functions.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head><?php include("head.inc");?></head> <body><?php include("body.inc");?> <?php $ip = $_SERVER['REMOTE_ADDR']; ?> <script type="text/javascript">var ip = "<?php echo $ip; ?>"; var bezoeker = new bezoeker(ip); bezoeker.visit_log();</script> </body> </html> |
bezoeker.js:
JavaScript:
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
| function bezoeker(ip){ var b = navigator; var b_codeName = b.appCodeName; var b_appName = b.appName; var b_version = b.appVersion; var cookies_status = b.cookieEnabled; var javaEnabled = b.javaEnabled(); var b_platform = b.platform; var b_userAgent = b.userAgent; var b_language = b.language; var ipadres = ip; var s = screen; var s_width = s.width; var s_height = s.height; var s_availWidth = s.availWidth; var s_availHeight = s.availHeight; var s_colordepth = s.colorDepth; var s_pixeldepth = s.pixelDepth; this.visit_log = visitlog; function visitlog(){ alert("ontvangen en wordt nu verstuurd..."); do_command = "log_visit"; dataString = "do=" + do_command + "&ip=" + ip + "&codeName=" + b_codeName + "&appName=" + b_appName + "&version=" + b_version + "&cookies=" + cookies_status + "&java=" + javaEnabled + "&platform=" + b_platform + "&lang=" + b_language + "&width=" + s_width + "&height=" + s_height + "&avwidth=" + s_availWidth + "&avheight=" + s_availHeight + "&colord=" + s_colordepth + "&pixd=" + s_pixeldepth; alert(dataString); //ajax via jquery om informatie (=dataString) uiteindelijk te kunnen laten opslaan in database $.ajax({type: "POST", url: "../ConfigAndFunctions/functions.php", data: dataString, complete: function(msg){ alert("ok, " + msg.responseText); } }); }; } |
functions.php:
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
| <?php include_once("config.php"); include_once("../classes/class_bezoeker.php"); function Connect_DB(){ $host = 'localhost'; $database = 'xxx'; $user = 'xxx'; $password = 'xxx'; if(!$connect = mysqli_connect($host, $user, $password, $database)){ if(TEST_MODE < 2){ die ("{$ERRORS['QUERY_ERROR_ADMIN']} <br/> Mysqli foutnr: " . mysqli_errno($connect) . "<br/> Mysqli foutmelding: " . mysqli_error($connect)); } else{ echo $ERRORS['QUERY_ERROR_USER']; } } else{ return $connect; } } //--------------------------------------------------------------------POST-OPVANGING------------------------------------------------------------------------------------// if(isset($_POST['do'])){ $command = $_POST['do']; switch($command){ case 'log_visit': $ip = $_POST['ip']; $codeName = $_POST['codeName']; $appName = $_POST['appName']; $version = $_POST['version']; $cookies = $_POST['cookies']; $java = $_POST['java']; $platform = $_POST['platform']; $lang = $_POST['lang']; $width = $_POST['width']; $height = $_POST['height']; $avwidth = $_POST['avwidth']; $avheight = $_POST['avheight']; $colord = $_POST['colord']; $pixd = $_POST['pixd']; echo "OK"; //deze echo wordt succesvol door ajax-aanvraag terug ontvangen en weergegeven $nieuwe_bezoeker = new bezoeker($ip, $codeName, $appName, $version, $cookies, $java, $platform, $lang, $width, $height, $avwidth, $avheight, $colord, $pixd); $welkombericht = $nieuwe_bezoeker->log_visit(); echo $welkombericht; //wordt niet door ajax-aanvraag ontvangen break; } } ?> |
class_bezoeker.php:
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
| <?php class bezoeker{ public $ip; public $codeName; public $appName; public $version; public $cookies; public $java; public $platform; public $lang; public $width; public $height; public $avwidth; public $avheight; public $colord; public $pixd; function __construct($ip, $codeName, $appName, $version, $cookies, $java, $platform, $lang, $width, $height, $avwidth, $avheight, $colord, $pixd){ $this->ip = $ip; $this->codeName = $codeName; $this->appName = $appName; $this->version = $version; $this->cookies = $cookies; $this->java = $java; $this->platform = $platform; $this->lang = $lang; $this->width = $width; $this->height = $height; $this->avwidth = $avwidth; $this->avheight = $avheight; $this->colord = $colord; $this->pixd = $pixd; $this->aanvang = $getdate(); $this->bezoeker = array($this->ip, $this->aanvang, $this->codeName, $this->appName, $this->version, $this->cookies, $this->java, $this->platform, $this->lang, $this->width, $this->height, $this->avwidth, $this->avheight, $this->colord, $this->pixd); } public function Connect_DB(){ $host = 'localhost'; $database = 'xxx'; $user = 'xxx'; $password = 'xxx'; if(!$connect = mysqli_connect($host, $user, $password, $database)){ if(TEST_MODE < 2){ die ("{$ERRORS['QUERY_ERROR_ADMIN']} <br/> Mysqli foutnr: " . mysqli_errno($connect) . "<br/> Mysqli foutmelding: " . mysqli_error($connect)); } else{ echo $ERRORS['QUERY_ERROR_USER']; } } else{ return $connect; } } public function log_visit(){ $query = "INSERT INTO bezoekers (ipadres, tijdstip, codename, appname, version, java, platform, useragent, language, screenwidth, screenheight, widthmax, heightmax, colordepth, pixeldepth) VALUES ('" . $this->ip . "','" . $this->aanvang . "','" . $this->codeName . "','" . $this->appName . "','" . $this->version . "','" . $this->cookies . "','" . $this->java . "','" . $this->platform . "','" . $this->lang . "','" . $this->width . "','" . $this->height . "','" . $this->avwidth . "','" . $this->avheight . "','" . $this->colord . "','" . $this->pixd . "')"; if(!mysqli_query(Connect_DB(), $query)){ echo "NOK"; exit; } return "OK, in orde nu!"; //mysqli_close($database); } } ?> |
Blijkbaar gaat er dus iets mis in mijn object-aanmaak 'bezoeker' in functions.php of iets in de klasse 'bezoeker' zelf. Verder weet ik niet zeker of mijn aanpak om een bezoeker te loggen op deze manier wel een goede is.
In elk geval, kan bij deze iemand mij verder helpen?
[ Voor 156% gewijzigd door Woy op 26-10-2011 09:05 ]