Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Why won't this script recognize the parameter?

Posted on 2008-06-17
9
Medium Priority
?
227 Views
Last Modified: 2013-11-05
I am calling this script by the following statement (in a browser):

http://www.mysite.com/clickCounter/count.php?http://www.mysite.com/downloads/PragerInventorySetup.exe

It was working fine on a Windows server; I just switched to a Linux server and now this...
<?php
 
 
 
$COUNT_FILE = "data.txt";  // En: Absolute path and name to count data file.
 
 
 
function error ($error_message) {
 
    echo $error_message."<BR>";
 
    exit;
 
}
 
 
 
echo $QUERY_STRING."<br>";
$url = urldecode($QUERY_STRING);  //  get the passed URL
 
 
 
 
if (! file_exists($COUNT_FILE))
 
    error("Can't find data file, check '\$COUNT_FILE' var...");
 
 
 
if ((! $url) || (! preg_match("/http:/", $url)))
 
error ("The URL you passed is invalid (doesn't begin with http:)");
 
 
 
$file_arry = file($COUNT_FILE); //  read each line of data from count.txt file into array
 
 
 
//list($key, $val) = each($file_arry);
 
//echo "key=".$key."<BR>";
 
//echo "val=".$val."<BR>";
 
 
 
while (list($key, $val) = each($file_arry)) {  //  parse each line into key/value pairs
 
    if ($val != "") {  //  if URL is not blank...
 
        list($file_url, $nb) = preg_split("/\t|\n/", $val);
 
        if ($file_url == $url) {
 
           $nb += 1;
 
           $file_arry[$key] = "$file_url\t$nb\n";
 
           $find = 1;
 
        }
 
   	}
 
}
 
 
 
$file = join ("", $file_arry);
 
 
 
//if (! $find)  //  if URL wasn't found, put new URL into file
 
//   $file .= "$url\t1\n";
 
 
 
$fp = fopen("$COUNT_FILE", "w");
 
flock($fp, LOCK_EX + LOCK_NB);
 
fputs($fp, $file);
 
flock($fp, LOCK_UN);
 
fclose($fp);
 
header("Location: $url");
 
 
 
?>

Open in new window

0
Comment
Question by:rmmarsh
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
9 Comments
 
LVL 82

Accepted Solution

by:
hielo earned 2000 total points
ID: 21807178
Instead of:
$url = urldecode($QUERY_STRING);

try:
$url = urldecode($_SERVER['QUERY_STRING'] );

IF that does not work, try passing it as:
http://www.mysite.com/clickCounter/count.php?theFile=http://www.pragersoftware.com/downloads/PragerInventorySetup.exe

and to retrieve the value use:
$url=$_GET['theFile'];
0
 
LVL 48

Expert Comment

by:hernst42
ID: 21807188
Try $_SERVER["QUERY_STRING"]

maybe your script relies on register_globals to be turned on?
0
 

Author Comment

by:rmmarsh
ID: 21807480
Hielo:  that seems to do the job... but now it won't find the file, so I have some homework to do before I award points...  will get back to you tomorrow.

Thanks...
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 82

Assisted Solution

by:hielo
hielo earned 2000 total points
ID: 21807531
>> but now it won't find the file
Provide the full path to the file. So if the file resides on:
C:\Test\data.txt

use:
$COUNT_FILE = "C:\\Test\\data.txt";
0
 

Author Comment

by:rmmarsh
ID: 21807552
Hmmm... deleted the file (because it was old, and will upload new ones tonight when I get home) and am now getting this warning:

Warning: Cannot modify header information - headers already sent by (output started at /home/wwwmar1/public_html/clickCounter/count.php:10) in /home/wwwmar1/public_html/clickCounter/count.php on line 47

What do I do to fix this?
0
 

Author Comment

by:rmmarsh
ID: 21807562
Line 47 above refers to line 91 in attached code snippet
0
 
LVL 82

Assisted Solution

by:hielo
hielo earned 2000 total points
ID: 21807641
>>Warning: Cannot modify header information ..
start your file with:
<?php
ob_start();
0
 

Author Comment

by:rmmarsh
ID: 21807725
That did it also... I'm gonna get my PHP textbook out and start reading; would be nice to know why I'm doing something!

Thanks again!
0
 
LVL 82

Expert Comment

by:hielo
ID: 21807798
>>would be nice to know why I'm doing something!
LOL. I hear you!

>>Thanks again!
You are welcome!
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I imagine that there are some, like me, who require a way of getting currency exchange rates for implementation in web project from time to time, so I thought I would share a solution that I have developed for this purpose. It turns out that Yaho…
Build an array called $myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

609 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question