Tycoon Talk
Become a Big fish!
The number 1 forum for online business!
Post topics, ask questions, share your knowledge.
Tycoon Talk is part of Freelancer.com - find skilled workers online at a fraction of the cost.

PHP Forum


You are currently viewing our PHP Forum as a guest. Please register to participate.
Login



Freelance Jobs

Reply
[USEFUL] Making awstats public without giving full access.
Old 06-26-2008, 05:16 PM [USEFUL] Making awstats public without giving full access.
nyunyu's Avatar
Super Talker

Posts: 113
Name: Aizal
Trades: 0
For those of you who has sites for sale and was tired grabbing a screenie of your awstats, here is a simple PHP code to make your awstats public.

So, now you can show your site's awstats to your buyers or advertisers without having to give out cpanel info or the hassle of grabbing a screenshot.

I hope you do find this code useful. The code was taken from other forum

How to
  • paste the code found below into a new text file and save, give it an original name
  • Edit the variables that are bold, with the corresponding details for your account
  • upload and you're done
PHP Code:
awpublicstats.php


<?php
/*
dv at josheli.com

Proxy for viewing Awstats outside of cpanel. I assume no liability.



*/

$user 'username';//your cpanel username
$pass 'password';//your cpanel password
$domain 'mydomain.com';//do not include 'http://' or 'www.'

/*
Domain of the stats you wish to view, e.g. a subdomain like "cvs.mydomain.com".
If left blank, defaults to the "domain" above
Another option is to set the "config" parameter in the url of your browser, e.g.:
http://www.domain.com/awstats.php?config=sub.domain.com
*/
$config_domain '';

/*
If you don't know what you're doing, set $dynamic_images equal
to TRUE, and don't worry about the $image_directory variable.
Otherwise,
    - Normally, this script will load images by proxy, i.e. awstats.php
      is called for each <img> tag and will send the correct
      image to the browser. This is not the way the web is designed
      to work. So, if you wish to improve performance and lower
      bandwidth, you can:
      1. Set $dynamic_images to FALSE
      2. Create an image directory in your webroot
      3. Copy all of awstats image sub-directories to this new directory
      4. Point the $image_directory variable to your new directory     
    You will get all the benefits of cached, static images.
    In order to get the Awstats images and their directories, you will
    probably need to download an awstats distribution from
    awstats.sourceforge.net. The final layout will probably look like this:

      awstats_imagedir/
                    browser/
                    clock/
                    cpu/
                    flags/
                    mime/
                    os/
                    other/

    Under each of those sub-directories will be dozens of .png files.
*/

$dynamic_images true;
$image_directory './awstats_images/';

//lame attempt to combat referrer spam
$spam_words = array('mortgage''sex''porn''****''****''facial''loving''gay''.ro');


/***********
NO NEED TO TOUCH ANYTHING BELOW HERE
************/

//retrieves the file, either .pl or .png
function get_file($fileQuery)
{
  global 
$user$pass$domain;
  return 
file_get_contents("http://$user:$pass@$domain:2082/".$fileQuery);
}

$requesting_image = (strpos($_SERVER['QUERY_STRING'],'.png')===false)?false:true;

if(
$requesting_image//it's a .png file...
{
  if(!
$dynamic_images && !is_dir($image_directory))
  {
    exit;
  }
  
$fileQuery $_SERVER['QUERY_STRING'];
}
elseif(empty(
$_SERVER['QUERY_STRING']))//probably first time to access page...
{
    if(empty(
$config_domain))
    {
        
$config_domain $domain;
    }
  
$fileQuery "awstats.pl?config=$config_domain";
}
else 
//otherwise, all other accesses
{
  
$fileQuery 'awstats.pl?'.$_SERVER['QUERY_STRING'];
}

$file get_file($fileQuery);

//check again to see if it was a .png file
//if it's not, replace the links
if(!$requesting_image)
{
  
$file str_replace('awstats.pl'basename($_SERVER['PHP_SELF']), $file);
  
  if(
$dynamic_images)
  {
    
$imgsrc_search '="/images';
    
$imgsrc_replace '="'.basename($_SERVER['PHP_SELF']).'?images';
  }
  else
  {
    
$imgsrc_search 'src="/images/awstats/';
    
$imgsrc_replace 'src="'.$image_directory;
  }

  
$file str_replace($imgsrc_search$imgsrc_replace$file);
  
$file str_replace($spam_words'SPAM'$file);
}
else 
//if it is a png, output appropriate header
{
  
header("Content-type: image/png");
}

//output the file
echo $file;
?>

See it in action:

Last edited by nyunyu; 06-26-2008 at 05:24 PM..
nyunyu is offline
Reply With Quote
View Public Profile Visit nyunyu's homepage!
 
 
Register now for full access!
Reply     « Reply to [USEFUL] Making awstats public without giving full access.
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off





   
RSS Feed  Feeds: RSS   JS   XML
RSS Feed  Feeds for this forum: RSS   JS   XML



Page generated in 0.43478 seconds with 12 queries