The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
![]()
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> 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); ?> Whatever I do this won't work. Any help is appreciated |
#2
|
|||
|
|||
![]()
Replace:
PHP Code:
PHP Code:
|
#3
|
|||
|
|||
![]() Quote:
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. |
#4
|
|||
|
|||
![]()
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> |
#5
|
|||
|
|||
![]()
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?
|
![]() |
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|