Re: [Phplib-users] Classes, MySQL, Images & phplib
Brought to you by:
nhruby,
richardarcher
|
From: Frank B. <fb...@sy...> - 2001-12-31 20:52:46
|
Try:
function Image() {
global $GLOBALS;
$ID=$GLOBALS[ID];
At 03:51 PM 12/31/01 -0500, Mike Gifford wrote:
>Hey Nathan,
>
>nathan r. hruby wrote:
>
>>>OK.. My present code looks like this:
>>>require('config.php3');
>>>class Image {
>>> var $db;
>>> function Image($ID='$GLOBALS[ID]') {
>> No quotes in the above, it's not working cause $ID is being set to the
>> string "$GLOBALS[ID]" and not the actual value of the global $ID (as a
>> side note, this happen becasue you're using single quotes which casue
>> literal strings, double quotes would have meant that the string would have
>> been scanned for variable substituion and it would have been ok, but you
>> would have paid a small performance penalty for that substitution. This
>> is where knowing everything about your varibles comes in handy.)
>
>
>I tried a stack of different options on this, but these gave me parse
>errors:
> $ID=$GLOBALS[ID]
> $ID="$GLOBALS[ID]"
>
>and these didn't (they gave me identical - but bad results):
> $ID='$GLOBALS[ID]'
> $ID=48
>
>As did this actually:
>
>require('config.php3');
>class Image {
> var $db;
> function Image() {
> $ID=$GLOBALS[ID];
> echo "ID $ID";
> $this->db = new proDB;
> $sql="SELECT photo FROM WLPphoto WHERE profileID='$ID'";
> $this->db->query($sql);
> while ($this->db->next_record()) {
> Header("Content-type: image/jpeg");
> print $this->db->Record['photo'];
> }
> }
>}
>
>Although this displays properly outside of the class...
> $ID=$GLOBALS[ID];
> echo "ID $ID";
>
>result is:
> ID 48
>
>
>>>I just want to clarify though.. in the example you gave ($this->db =
>>>new nameOfdbClass;), if I was trying to add this to phpSlash 6.2
>>>nameOfdbClass; would be DB_Sql (or would it be slashDB?
>> if all youre tables are in the same databse as the phpslash stuff, then
>> slashDB, else you'll need to make a new subclass of DB_Sql.
>
>
>Hmm.. That is essentially what I'm doing...
>
>Some folks on this list may remember me asking about/talking up a online
>bibliography 6 months or so ago.. It's mostly working now and sitting
>here (still in draft mode):
> http://www.openconcept.ca/WLP/biblio/categories.php3
>
>I'm presently working up the portfolio side (harder to explain), but
>this is what I need the images for... In anycase, it's all based on the
>6.2 code of phpSlash..
>
>
>>>Both seem to produce the same result for me.. I even tried commenting
>>>out the header line (Header("Content-type: image/jpeg");) to see if that
>>>would just echo the raw jpg data.. It didn't.. So something's goofing
>>>up...
>> Make sure you're not outputing anything before that header() call. I bet
>> there's an error creeping in (probably from using the wrong db class)
>> that's casuing it. For something liek what you're doing I like to add a
>> construct like this to the top of my code:
>
>> if ($debug && $HTTP_GET_VARS[breakme]) {
>> echo "I'm outputing something to break the headers.<br>\n";
>> echo "This will allow me to see what exactly I'm sending.<br>\n";
>> echo "Including errors :)<br>\n";
>> }
>
>
>This is usefull.. That way it is easy to make/break code..
>http://localhost/WLP/profiles/image.php3?ID=48&breakme=yes
>
>
>
>However, I can't seem to get any output from within the class..
>
>Putting this in the function and commenting out the header doesn't
>output anything..
> echo "this isn't working";
>
>The URL above does, but.. that isn't managing stuff within the code..
>
>
>> Also, check to make sure (for debug pruposes) error_reporting is set to
>> E_ALL. And FWIW, I'd do a $this->db->nf() and make sure the returned
>> valus is 1 and if it isn't sending a "not availible" jpeg to the
>> browser before entering the while() loop. This ensures that if the script
>> freaks out and can't find a image in the databse, something is returned to
>> the user indicating so :)
>
>
>I've got a couple references of phpSlash 6.2 ending Variable.class with:
>}; /* end of Variable.class */
>
>
>and not the ?> which would be standard.. I've never seen a php file
>ended like that before...
>
>In anycase, the whole file now looks like this:
>
><?php
>error_reporting(E_ALL);
>require('config.php3');
>
>if ($debug && $HTTP_GET_VARS[breakme]) {
> echo "I'm outputing something to break the headers.<br>\n";
> echo "This will allow me to see what exactly I'm sending.<br>\n";
> echo "Including errors :)<br>\n";
>}
>
>class Image {
> var $db;
> function Image() {
> $ID=$GLOBALS[ID];
> $this->db = new proDB;
> echo "this isn't working";
> $sql="SELECT photo FROM WLPphoto WHERE profileID='$ID'";
> echo $this->db->nf();
> $this->db->query($sql);
> while ($this->db->next_record()) {
> // Header("Content-type: image/jpeg");
> print $this->db->Record['photo'];
> }
> }
>}
>?>
>
>And results in the following:
>
>Warning: Undefined variable: sitename in
>/usr/local/web/WLP/profiles/config.php3 on line 191
>
>Warning: Use of undefined constant rootdir - assumed 'rootdir' in
>/usr/local/web/WLP/profiles/Variable.class on line 23
>
>Warning: Use of undefined constant basedir - assumed 'basedir' in
>/usr/local/web/WLP/profiles/Variable.class on line 24
>
>Warning: Use of undefined constant listvariable - assumed 'listvariable'
>in /usr/local/web/WLP/profiles/Variable.class on line 33
>
>Warning: Use of undefined constant newvariable - assumed 'newvariable'
>in /usr/local/web/WLP/profiles/Variable.class on line 34
>
>Warning: Use of undefined constant value - assumed 'value' in
>/usr/local/web/WLP/profiles/Variable.class on line 55
>
>Warning: Undefined variable: siteowner in
>/usr/local/web/WLP/profiles/config.php3 on line 192
>
>Warning: Use of undefined constant value - assumed 'value' in
>/usr/local/web/WLP/profiles/Variable.class on line 55
>
>Warning: Undefined variable: xsitename in
>/usr/local/web/WLP/profiles/config.php3 on line 193
>
>Warning: Use of undefined constant value - assumed 'value' in
>/usr/local/web/WLP/profiles/Variable.class on line 55
>
>Warning: Use of undefined constant breakme - assumed 'breakme' in
>/usr/local/web/WLP/profiles/image.php3 on line 5
>
>Warning: Undefined index: breakme in
>/usr/local/web/WLP/profiles/image.php3 on line 5
>
>Which shouldn't be affecting things when the errors are turned off..
>Those should be pretty innocent..
>
>Mike
>--
>Mike Gifford, OpenConcept Consulting, http://www.openconcept.ca
>Supporting progressive organizations in online campaigns and tools.
>Feature: Women's Learning Partnership http://learningpartnership.org
>Truth is that which confirms what we already believe. Northrop Frye
>
>
>_______________________________________________
>Phplib-users mailing list
>Php...@li...
>https://lists.sourceforge.net/lists/listinfo/phplib-users
>
|