Page 1 of 1

Trouble with $string == "string"

Posted: Thu Dec 08, 2011 9:17 am
by weisd
Firstly, I am working inside a program called PHPRunner.

My trouble is with this bit,

$visitorsearch = $FirstTerm." ".$SecondTerm ;
$xt->assign("pagetitle",$visitorsearch);
$crumbfeild = $visitorsearch;

echo $crumbfeild ;

If ($crumbfeild == 'Television Antennas')
{
Do Something
}

php prints, Television Antennas, but the "if" statement is not carried out.

This works when the string is set by,

$crumbfeild = $_REQUEST['ctlSearchFor'];
$xt->assign("crumbfeild",$crumbfeild);

After much debugging I am certain that the equality test fails here even though the echo statement prints Television Antennas,

If ($crumbfeild == 'Television Antennas')

Entire script below,

Code: Select all

//Declaring Variables

{
$FirstTerm = "";
$xt->assign("FirstTerm",$FirstTerm);
} 

{
$SecondTerm = "";
$xt->assign("SecondTerm",$SecondTerm);
} 

{
$crumbfeild = "";
$xt->assign("crumbfeild",$crumbfeild);
}  

{
$crumbs = "";
$xt->assign("crumbs",$crumbs);
} 

{
$visitorsearch = "";
$xt->assign("visitorsearch",$visitorsearch);
}
 
 
//Finished Declaring Variables


if(isset($_REQUEST['ctlSearchFor']))

{
    $xt->assign("pagetitle",$_REQUEST['ctlSearchFor']);
    $crumbfeild = $_REQUEST['ctlSearchFor'];	
    $xt->assign("crumbfeild",$crumbfeild);
}


global $strTableName;

if (isset($_SESSION[$strTableName.'_advsearch']))

{

$searchClauseObj = unserialize($_SESSION[$strTableName.'_advsearch']);

}

 

$fieldSearchData = $searchClauseObj->getSearchCtrlParams("FieldName");

$fieldSearchData = $searchClauseObj->_where[$strTableName."_srchFields"];

 

for($i=0; $i<count($fieldSearchData); $i++){

      $nmbr = count($fieldSearchData);

		$fName = $fieldSearchData[$i]['fName'];

      $val1 = $fieldSearchData[$i]['value1'];

      $val2 = $fieldSearchData[$i]['value2'];

      $srchCat = $fieldSearchData[$i]['opt'];

      $srchNot = $fieldSearchData[$i]['not'];


If ($i == 0)
{
$FirstTerm = $val1;
$xt->assign("FirstTerm",$FirstTerm);
}


If ($i == 1)
{
$SecondTerm = $val1;
$xt->assign("SecondTerm",$SecondTerm);
}

$visitorsearch = $FirstTerm." ".$SecondTerm ;
$xt->assign("pagetitle",$visitorsearch);
//echo "1" ;
$crumbfeild = $visitorsearch;
//echo "2" ;
//$xt->assign("crumbfeild",$crumbfeild);
}
echo $crumbfeild ;

If ($crumbfeild == 'Television Antennas')
{
$crumbs = "<font color='#000099' size='-3' face='Verdana, Arial, Helvetica, sans-serif'><a href='http://www.weisd.com/'>Home</a>><a href='http://www.weisd.com/store2/1200.php'>Antennas</a>>Television Antennas</a></font><br>";
$xt->assign("crumbs",$crumbs);
} 


if ($crumbfeild == "Connector Adapters and Accessories")
{
$crumbs = "<font color='#000099' size='-3' face='Verdana, Arial, Helvetica, sans-serif'><a href='http://www.weisd.com/'>Home</a>><a href='http://www.weisd.com/store2/1200.php'>Antennas</a>>Connector Adapters and Accessories</a></font><br>";
$xt->assign("crumbs",$crumbs);
} 


if ($crumbfeild == "Communications Antennas and Accessories")
{
$crumbs = "<font color='#000099' size='-3' face='Verdana, Arial, Helvetica, sans-serif'><a href='http://www.weisd.com/'>Home</a>><a href='http://www.weisd.com/store2/1200.php'>Antennas</a>>Communications Antennas and Accessories</a></font><br>";
$xt->assign("crumbs",$crumbs);
} 


if ($crumbfeild == "Extech Air Velocity and Anemometers")
{
$crumbs = "<font color='#000099' size='-3' face='Verdana, Arial, Helvetica, sans-serif'><a href='http://www.weisd.com/'>Home</a>><a href='http://www.weisd.com/store2/2900.php'>Test Equipment</a>>Extech Air Velocity and Anemometers</a></font><br>";
$xt->assign("crumbs",$crumbs);
} 


if ($crumbfeild == "Extech Multi Meters")
{
$crumbs = "<font color='#000099' size='-3' face='Verdana, Arial, Helvetica, sans-serif'><a href='http://www.weisd.com/'>Home</a>><a href='http://www.weisd.com/store2/2900.php'>Test Equipment</a>>Extech Multi Meters</a></font><br>";
$xt->assign("crumbs",$crumbs);
} 


if ($crumbfeild == "Car Radio Antennas & Accessories")
{
$crumbs = "<font color='#000099' size='-3' face='Verdana, Arial, Helvetica, sans-serif'><a href='http://www.weisd.com/'>Home</a>><a href='http://www.weisd.com/store2/1200.php'>Antennas</a>>Car Radio Antennas & Accessories</a></font><br>";
$xt->assign("crumbs",$crumbs);
} 


if ($crumbfeild == "Antenna Installation Accessories")
{
$crumbs = "<font color='#000099' size='-3' face='Verdana, Arial, Helvetica, sans-serif'><a href='http://www.weisd.com/'>Home</a>><a href='http://www.weisd.com/store2/1200.php'>Antennas</a>>Car Radio Antennas & Accessories</a></font><br>";
$xt->assign("crumbs",$crumbs);
} 


Re: Trouble with $string == "string"

Posted: Thu Dec 08, 2011 10:00 am
by Celauran
Have you tried var_dump() to make sure there aren't any non-printing characters in the string?

Re: Trouble with $string == "string"

Posted: Thu Dec 08, 2011 10:19 am
by weisd
I have not. I am learning php as I go, Off to read the manual... unless you can tell me how to implement.. :) Thanks, I needed a lead to follow, this is driving me nuts...

Re: Trouble with $string == "string"

Posted: Thu Dec 08, 2011 10:30 am
by Celauran
Replace your echo line with:

Code: Select all

echo "<pre>";
var_dump($crumbfeild);
echo "</pre>";
The could be a leading or trailing space, line feed characters, or the like which are causing the strings to not be equal.

Re: Trouble with $string == "string"

Posted: Thu Dec 08, 2011 10:31 am
by weisd
Hmmm. Seems to be a lagging space?

Television Antennasstring(19) "Television Antennas" - this one works
Television Antennas string(20) "Television Antennas " - this one fails

Now to find out where it comes from?

Re: Trouble with $string == "string"

Posted: Thu Dec 08, 2011 10:40 am
by Celauran
You could just add a trim() call before the comparison and problem solved.

Re: Trouble with $string == "string"

Posted: Thu Dec 08, 2011 10:44 am
by weisd
This was the culprit adding the space,

Code: Select all

$visitorsearch = $FirstTerm." ".$SecondTerm;


This was the fix,

Code: Select all

If ($crumbfeild == 'Television Antennas' || 'Television Antennas ')

Thanks a ton!

Re: Trouble with $string == "string"

Posted: Thu Dec 08, 2011 10:45 am
by weisd
Celauran wrote:You could just add a trim() call before the comparison and problem solved.
That would be more elegant. Tnx again!