954,190 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

php url code?

Trying to display images in html by calling a php script in the img tag. php script fetches the image binary from mysql. image is not displaying. here is img tag

<img src="getdata.php?id=1" />


my question is, it seems people are using the "...php?id=1" to pass an identifier 'id' to the script. I haven't been able to find anything about how these work, what the syntax is, and whether this automatically creates a variable '$id' in the script with a value of 1, which is implied, but since i can't get the script to work i cannot determine if accurate. Can anyone either explain or point to a resource that handles this?

thanks!
matt

went1180
Newbie Poster
9 posts since Sep 2006
Reputation Points: 10
Solved Threads: 0
 

The url: getdata.php?id=1 works just like a regular url on any php page, only difference with images the content type returned to the client/browser.

What php does is parse the URL sent to it via HTTP, in this case getdata.php?id=1.
If the HTTP method is "GET" as is the case, it will create a global variable $_GET.

$_GET is an associative array, with each parameter in the url set as an index, and the associated value as the value.

for getdata.php?id=1

[PHP]$_GET = array('id'=>'1'); // this is what PHP does automatically[/PHP]

so you can get the value with:

[PHP]$id = $_GET['id']; // will be equal to '1'[/PHP]

Older versions of PHP had a feature called "register globals" (I think). It automatically made every parameter passed in the URL a global.

Eg: for getdata.php?id=1

[PHP]$id; // will be equal to '1' in older php version, or when register globals is on[/PHP]

This isn't considered safe practice however, so may servers will disable it.

Something to note with generating images with php is that any output other than the binary data for the image will cause the image not to show.
So if you have a single error, everything messes up..

If you want to debug, find where you have the line:

[PHP]header("Content-Type: [/php]

and add a return or die(); right before it so you can debug. Otherwise your debugging will be interpreted by teh browser as part of the image data...

digital-ether
Nearly a Posting Virtuoso
Moderator
1,293 posts since Sep 2005
Reputation Points: 461
Solved Threads: 101
 

by god man that was a succinct, clear answer and i thank you for it. now if only my f***ing script was working...

went1180
Newbie Poster
9 posts since Sep 2006
Reputation Points: 10
Solved Threads: 0
 

Err, isn't it $_REQUEST[]?

cscgal
The Queen of DaniWeb
Administrator
19,421 posts since Feb 2002
Reputation Points: 1,474
Solved Threads: 229
 

er, madame, rather.....sry.

went1180
Newbie Poster
9 posts since Sep 2006
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You