vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   modification questions: capture data on load with javascript and php (https://vborg.vbsupport.ru/showthread.php?t=100614)

stonyarc 11-11-2005 10:10 PM

modification questions: capture data on load with javascript and php
 
Hello,

I'm working on a new modification and I'm having troubles with 2 items.


1. Doesn't vbulletin allow to run scripts from within a new subdirectory.
My new modification would require several separate php files to run. If I drop them in the vbtraffic subfolder they are not usable.

What is the way to fix this. I cannot put 15 files in the root of the forum.


2. As I want to capture information on the start of the forum I created the following code.

Code:

<script language="Javascript">
      function replaceText(text){
              while(text.lastIndexOf("&"; > 0){
                      text = text.replace('&', '[vbtraffic]');
              }
              return text;
    }
      var web_referrer = replaceText(document.referrer);
    vbtraffic = new Image(1,1);
    vbtraffic.src = "./vbtraffic/counter.php?sw="+screen.width+"&sc="+screen.colorDepth+"&referer="+web_referrer+"&page="+location.href;
    var imgsrc = vbtraffic.src
    document.write('<img src=' + imgsrc + '>');
    </script>

(if it works i'll use a plugin now is temporary put in the FORUMHOME)

The basic counter.php code is

Code:

<?php
// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// ##################### DEFINE IMPORTANT CONSTANTS #######################
//define('NO_REGISTER_GLOBALS', 1);
//define('GET_EDIT_TEMPLATES', true);

// ########################## REQUIRE BACK-END ############################
require_once('../global.php');

global $vbulletin;

if(!isset($_COOKIE['vbtraffic_hash'])){
        $hash = md5(time());
}else{
        $hash = $_COOKIE['vbtraffic_hash'];
}

if($db->num_rows("select hash from" . TABLE_PREFIX . "vbtraffic_session where hash='".$hash."'") > 0){
        $db->query_write("update vbtraffic_session set time='".time()."' where `hash`='".$hash."'");
}else{
        $db->query_write("insert into vbtraffic_session values('".$hash."', '".time()."')");
}
setcookie("vbtraffic_hash", $hash, time()+43200);

?>

it's also tested with the counter in the root folder and it won't insert (./global.php).

Whatever I do this won't work.

Any help is appreciated

Marco van Herwaarden 11-12-2005 05:20 AM

Replace:
PHP Code:

require_once('../global.php'); 

by
PHP Code:

chdir('./..');
require_once(
'./global.php'); 


stonyarc 11-12-2005 10:39 AM

Quote:

Originally Posted by MarcoH64
Replace:
PHP Code:

require_once('../global.php'); 

by
PHP Code:

chdir('./..');
require_once(
'./global.php'); 


Thanks,
But the insert and the cookie don't get set that way either. I think the way that I'm calling the script doesn't work with creating the fake image.

stonyarc 11-13-2005 06:24 PM

I found it.

The error were caused by a configuration in the php.ini

output_buffering should be on instead of off otherwise the cookie isn't set.

It's impossible to call a PHP function directly from javascript but there is a nice workaround for this.

Here is the code to fix it (this one works with vbulletin, if you build one with an image it doesn't work).

Code:

<script language="Javascript">
    var myUrl="./function.php?sw="+screen.width+"&sc="+screen.colorDepth+"&referer="+document.referrer+"&page="+location.href;
        var iframe1=document.createElement("iframe");
        iframe1.src=myUrl;
        document.body.appendChild(iframe1);
        iframe1.removeNode(true); //hides the frame from the user
</script>

Enjoy

cavyspirit 09-04-2006 09:40 PM

I'm trying to get a variable that I need for the user's screen width elsewhere in the php. How can I adapt this for that?


All times are GMT. The time now is 03:06 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.00977 seconds
  • Memory Usage 1,735KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (4)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete