The Arcive of vBulletin Modifications Site. |
|
|
#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?
|
![]() |
|
|
| X vBulletin 3.8.12 by vBS Debug Information | |
|---|---|
|
|
More Information |
|
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|