I've encountered a rather weird problem that has me completely stumped.
I'm trying to pass a PHP variable from one file to another, then plug that variable into a search function within the Flickr API.
To put in context, it's pulling a variable ($location) containing the location of a weather forecast. $location (located in scraper.php), which is defined by user input, goes into the search function. The function sends a request to the Flickr API, which returns an image url.
as it goes:
require_once('flickr.php');
include 'scraper.php';
$Flickr = new Flickr;
$data = $Flickr->search($location);
Keep in mind, this all works beautifully if I define the search string in the file itself. It's only when I try to use a variable from scraper.php that it doesn't search for anything at all. For example:
$string = 'hawaii'
$Flickr = new Flickr;
$data = $Flickr->search($string);
The above works just fine. To make things even more confusing, if I echo '$location' before it goes into the search function I get the proper result just fine. The variable is there and included. It just won't carry through to the function for some reason.
Any help would be appreciated. Here is the full code from the project:
search.php:
echo $location;
$Flickr = new Flickr;
$data = $Flickr->search($location);
foreach($data['photos']['photo'] as $photo) {
//returns 1 photo url at large size (1024)
$image_url = 'http://farm' . $photo["farm"] . '.static.flickr.com/' . $photo["server"] . '/' . $photo["id"] . '_' . $photo["secret"] . '_b.jpg';
}
flickr.php (api key is taken out):
include 'scraper.php';
class Flickr {
private $apiKey = 'MYAPIKEY';
public function __construct() {
}
public function search($query = null) {
$search = 'http://flickr.com/services/rest/?method=flickr.photos.search&api_key=' . $this->apiKey . '&text=' . urlencode($query) . '&tags=city&sort=relevance&safe_search=1&per_page=1&content_type=1&has_geo=1&format=php_serial';
$result = file_get_contents($search);
$result = unserialize($result);
return $result;
}
}
I'm not going to include scraper.php, because it's pretty large, but I will if I need to. $location is working just fine.
Thanks!
EDIT: 'scraper.php' is also being used and passing variables to another page to display the weather.
When I just echo '$location' from 'search.php', I get a proper string result at the top, like I mentioned before.
here is the code (search.php):
$Flickr = new Flickr;
echo $location;
$data = $Flickr->search($location);
The echo command prints nicely at the top. It just won't go into the search function!