RE: [PHP] FLASH, MySql and PHP as CGI Problem.....
| From: | John W. Holmes | Date: | Mon, 30 Sep 2002 11:01:51 +0000 |
| Subject: | RE: [PHP] FLASH, MySql and PHP as CGI Problem..... | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-118185@lists.php.net to get a copy of this message | ||
Is register globals on? Look at a phpinfo() page to see. You may have to
use $HTTP_GET_VARS or HTTP_POST_VARS (not sure how flash sends it's
data) to get the values...
$HTTP_GET_VARS['newsText']
$HTTP_GET_VARS['posted']
Let us know if that's not it.
---John Holmes...
> -----Original Message-----
> From: Rebekah Garner [mailto:rebekah@powergothgirls.com]
> Sent: Monday, September 30, 2002 2:34 AM
> To: php-general@lists.php.net
> Subject: [PHP] FLASH, MySql and PHP as CGI Problem.....
>
> Okay, I have come down to the wire and I am at a complete loss. I
have a
> project due and to make a long story short (no lectures on this aspect
of
> my problem please, I have already beate myself up over it)---I had to
> develop without the server/hosting information due to retarded
clients.
> Any, I have a Flash project that uses a MySql database via PHP. It
works
> perfectly on servers that have the PHP in Apache. I end up with PHP
> running as CGI. No problem, I think. I change what needed to be
changed
> and it wouldn't work. After a week of pulling my hair out and bugging
the
> support department they recompile something and install the newest
version
> of PHP and it works! Or so I thought. I was only testing the
"fetching"
> script which pulls from the database for display in the SWF. It
works. I
> thought that I was in the clear. Wrong. My SWF won't send the content
of
> the variable to the database. The script runs, but it is making an
empty
> entry. The damned things work on any of the three other servers that
I
> have tested it on, but not this. So.....if anyone out there has any
> experience with this or can direct me to someplace that they know for
sure
> would have the information, then please please do. I had gotten my
base
> scripting of this from PHP for Flash, but I can't find anything that
> helps.
>
> I am including my php code for retrieving information from the
database
> (which works) and my code for inserting into the database (which
executes,
> but doesn't pass the varible information).
> I am also including my ActionScript code and the guidelines set down
by
> the hosting company for use of PHP on their server. I have the PHP
> scripts outside of the cgi-bin, but with the cgi exstension and a
> permissions setting of 755. I know that the scripts are executing
because
> when I run them from a browser they send a blank entry into the
database
> also (as in when used in the SWF also).
>
>
> fetchdefaultTableName.cgi-------------------------
>
> #!/usr/local/bin/php
>
> <?php
>
> $dbHost = "mysql.hostname.com";
> $dbUser = "username";
> $dbPass = "password";
> $dbName = "databasename";
>
>
>
>
> $link = @mysql_connect($dbHost, $dbUser, $dbPass);
>
>
> if (!$link)
> {
>
> print "Could not connect to server";
> exit;
> }
>
> if (!@mysql_select_db($dbName))
> {
> // Report error to Flash and exit
> print "Could not select $dbName database";
> exit;
> }
>
>
> $query = "SELECT newsText FROM tablenamedefault ORDER BY updateID DESC
> LIMIT 1";
>
>
> $result = @mysql_query($query);
>
>
> if ($result && @mysql_num_rows($result) > 0)
> {
> $newsText = "";
>
>
> while($row = mysql_fetch_array($result))
> {
>
> $posted = strftime("%a %d/%m/%y %H:%M", $row['posted']);
>
> $newsText .= stripslashes($row['newsText']) . '';
> }
>
> print "&newsText=" . urlencode($newsText);
> }
> else
> {
>
> print "No new items yet";
> }
>
>
> mysql_close($link);
>
> ?>
>
> updatedefaultTableName.cgi-----------------------
> #!/usr/local/bin/php
>
> <?php
>
>
> $dbHost = "mysql.hostname.com";
> $dbUser = "username";
> $dbPass = "password";
> $dbName = "databasename";
>
>
>
> $link = @mysql_connect($dbHost, $dbUser, $dbPass);
>
>
> if (!$link)
> {
> print "Could not connect to server";
> exit;
> }
>
> if (!@mysql_select_db($dbName))
> {
>
> print "Could not select $dbName database";
> exit;
> }
>
>
>
> $posted = time();
>
> $query = "INSERT INTO tablenamedefault (newsText, posted)
> VALUES('$newsText', $posted)";
>
>
> $result = @mysql_query($query);
>
> if ($result)
> {
> print "Success";
> }
> else
> {
> print "Couldn't add item";
> }
>
>
> mysql_close($link);
>
> ?>
>
> Flash ActionScripting:
>
>
>
> Code that contains the posting info for display in the SWF (and it
works
> fine):
>
>
> _root.clearNewsText();
>
> _root.generateText();
>
> newsText = "";
>
>
loadVariables("http://www.url.com/fetchdefaultTableName.cgi?"+(Math.rand
om
> ()*1000000), _root.newsText, "POST");
>
> stop();
>
>
>
> Code that contains the posting info for input:
>
>
> on (release) {
>
> _root.sendTextUpdate();
>
>
> loadVariables("http://www.url.com/updatedefaultTableName.cgi"),
> _root.newsTextHolder, "POST");
>
> }
>
>
>
>
>
> WebHosting Facts:
>
> We do support PHP scripting, but it is not built into the web server.
What
> this means is that you can execute PHP code like you would execute C
or
> Perl code, as a CGI script. You will not be able to use the PHP
"includes"
> or "extensions" however.
>
> If you wish to use it, be sure to put your file/s in your cgi-bin.
>
> If a CGI script is not in the cgi-bin/ directory, the file must end in
> .cgi. It also must be set executable and it needs to have the standard
> #!/path/to/interpreter reference on the first line of the file. The
path
> to PHP is /usr/local/bin/php.
>
> The current version installed (from the -v flag) is: 4.0.2
>
>
>
>
>
> Sorry for the redundancy, but I wanted to make sure that I was
understood
> and didn't leave anything out for you gurus out there. Show me the
way to
> your infinate light and wisdom ;)
>
>
>
> Rebekah Garner
>
>