Board logo

OT... PHP programers
tegwin - 4/12/09 at 01:13 PM

Do we have any PHP programers in the house? I have a bit of an issue reading some variables from a server array... and im confused!


sprouts-car - 4/12/09 at 01:49 PM

I've done some php, whats the problem?

Chris


tegwin - 4/12/09 at 02:01 PM

Basically...

if I look at the URL it looks like this:

quote:

http://webappdomainname/index.phtml?d=136435&preview=1&t=1259923523



However, if I run this code to show all variables
quote:

# <?php # print '<pre>' . htmlspecialchars(print_r(get_defined_vars(), true)) . '</pre>'; # ?>



I get this:
quote:

[QUERY_STRING] => domain=ZnZlcg%3D%3D&company_id=79&contact_id=7226&selected_contact_id=&document_id=136435&document_stack=a:1:{i:0;i:136435;}&u ser_var_page_name=get+defined+variable&user_var_page_description=&user_var_page_published_date=4th+December+2009&user_var_page_modified_da te=4th+December+2009&user_var_page_created_by=john+smith&user_var_page_modified_by=john+smith&user_var_custom_icon=&frame_id=244892




I need to get the "contact_id" value from that _server query string and use it in my program.... but I cant for the life of me figure out how to get it..

The normal method of
quote:

1. <?php 2. 3. echo $_get['contact_id']; 4. 5. ?>



Does not work, because the "contact_id" is not actually in the URL for the $_get to look at....

Any ideas how I can get that variable from the query string rather than from the URL string?

[Edited on 4/12/09 by tegwin]


sprouts-car - 4/12/09 at 02:27 PM

Could it be in the session variables?

ie SESSION['contact_id']

Failing that, i found this example which should help (with a little mod):

quote:
After a fruitless attempt find a built-in function whic did this, I wrote this functions to find out all the variables (well, those I wanted) in current scope and their values. I believe this is going to be handy in debugging.

<?php
/**
* @desc works out the variables in the current scope(from where function was called).
* Returns an array with variable name as key and vaiable value as value
* @param $varList: variables returned by get_defined_vars() in desired scope.
* $excludeList: variables to be excluded from the list.
* @return array
*/
function getDefinedVars($varList, $excludeList)
{
$temp1 = array_values(array_diff(array_keys($varList), $excludeList));
$temp2 = array();
while (list($key, $value) = each($temp1)) {
global $$value;
$temp2[$value] = $$value;
}
return $temp2;
}

/**
* @desc holds the variable that are to be excluded from the list.
* Add or drop new elements as per your preference.
* @var array
*/
$excludeList = array('GLOBALS', '_FILES', '_COOKIE', '_POST', '_GET', 'excludeList';

//some dummy variables; add your own or include a file.
$firstName = 'kailash';
$lastName = 'Badu';
$test = array('Pratistha', 'sanu', 'fuchhi';

//get all variables defined in current scope
$varList = get_defined_vars();

//Time to call the function
print "<pre>";
print_r(getDefinedVars($varList, $excludeList));
print "</pre>";
?>


tegwin - 4/12/09 at 03:37 PM

I tried that bit of code from the PHP manual... thats what gives me the massive list of variables...

Session doesnt work


TimEllershaw - 4/12/09 at 03:44 PM

Can you stick the long Query String through the parse_str() function to get it ?


I'll have a think about it when I get a spare minute.

Cheers,

Tim.


tegwin - 4/12/09 at 03:51 PM

http://www.php.net/manual/en/function.parse-str.php

That might explain a few things...

But im not sure what exactly to try... appreciate any thoughts


TimEllershaw - 4/12/09 at 04:40 PM

I would have expected all the arguments to be in the $argv array, but know there is some issue with having to set something in the php.ini.

if you do this what do you get :

foreach($_SERVER['argv'] as $k=>$v)
echo "$k -> $v n";

[Edited on 4/12/2009 by TimEllershaw]


Gav - 4/12/09 at 04:47 PM

If its a posted form you need to use $_POST["Contract_Id"]


tegwin - 4/12/09 at 07:43 PM

quote:
Originally posted by TimEllershaw
I would have expected all the arguments to be in the $argv array, but know there is some issue with having to set something in the php.ini.

if you do this what do you get :

foreach($_SERVER['argv'] as $k=>$v)
echo "$k -> $v n";

[Edited on 4/12/2009 by TimEllershaw]



That gives me all of the query string variables....