Howto identify the calling file in the file you are working


#1

I am trying to run an update query depending on the outcome of this conditional statement but I don’t have any idea as to what I need to do to get what I want. I need the statement to run the update if it was called by either CRON or from the admin panel via a button click in the page googlesitemaps.php. Here is what I have and I know it does not work the way I want it to.

if (!eregi("googlesitemap.php", $_SERVER['PHP_SELF'])) { tep_db_query("update " . TABLE_CONFIGURATION . " set configuration_value = '" . tep_db_input('true') . "', last_modified = now() where configuration_id = 11 "); }else{ // Do nothing }

I know that PHP_SELF is returning the value of the current page this code is in so it is running no matter what page calls this page. I need the magic code that tells me what called the page that this code is in.

I have searched for two days trying to find an answer to this question (not here). I think my main problem is not knowing exactly what keywords to use when using the search engines. I really don’t know how else to ask this question. Perhaps someone more familiar with PHP could formulate a better question out of what I have explained.

Thank you!

Gary


#2

Perhaps you’re looking for $_SERVER[‘HTTP_REFERER’]? Please read up on the PHP Manual about this before actually using it though.


#3

I ended up trying this after I read your post and I was looking for more specifics on HTTP_REFERER.

if(strpos($_SERVER['REQUEST_URI'], 'googlesitemap.php') || strpos($_SERVER['REQUEST_URI'], 'sitemaps.index.php')) { tep_db_query("update " . TABLE_CONFIGURATION . " set configuration_value = '" . tep_db_input('false') . "', last_modified = now() where configuration_id = 11 "); }

It works but I don’t think that it going to work when CRON calls it. I don’t have a clue how to figure out what the referring url would be in that situation.

Thank you for responding. It helped me in the right direction.

Gary


#4

HTTP_REFERER was what I was looking for but it returns the complete string of the URL including the session ID. While I was looking for help on stripping the session ID I came across the code I ended up using.

If anyone can tell me how to figure out how to identify CRON when it calls this script it would be really great!

Thanks again!

Gary


#5

Can’t you tell the cron job to call the script with a URL query string? Some unique identifier that noone knows except for the cron job?


#6

That’s kind of what I thought. I guess I will have to update this manually and turn CRON off or hopefully someone who is a CRON guru will enlighten us. ?!?

Thanks again for your help!

Gary