Server Scripting: Difference between revisions
No edit summary |
mNo edit summary |
||
Line 27: | Line 27: | ||
Now test the script by opening Flashpoint's copy of Basilisk and typing in a URL that you know should work. In this example, you could go to <code><nowiki>http://www.example.com/levels/getlevel.php?id=100</nowiki></code> and make sure that the contents of the <code>getlevel.php@id=100</code> file appear in the browser window. | Now test the script by opening Flashpoint's copy of Basilisk and typing in a URL that you know should work. In this example, you could go to <code><nowiki>http://www.example.com/levels/getlevel.php?id=100</nowiki></code> and make sure that the contents of the <code>getlevel.php@id=100</code> file appear in the browser window. | ||
<noinclude> | |||
[[Category:Other Guides]] | |||
</noinclude> |
Revision as of 16:36, 29 January 2021
Sometimes the only way to get a game working is to use a server-side script. This page goes over some simple cases of how to handle this.
Using PHP Scripts
Sometimes a game may require a PHP script to return different data depending on a query string. Query strings are passed to PHP scripts the same way that Flashvars are passed to SWFs. The query string is all of the text of a URL after a question mark ?
.
For example, when loading a user level, a game might make a request that looks something like this: http://www.example.com/levels/getlevel.php?id=100
.
To save such a game, you first need to save all the user levels. First download Wget if you don't have it already. Next, write a script like the following batch script to download the levels:
SET baseURL=http://www.example.com/levels/getlevel.php?id= FOR /L %%i in (1,1,1000) DO ( wget -x %baseURL%%%i )
If you're more familiar with another language such as Python or Powershell, you can use it instead.
Now you should have all the files downloaded, with filenames such as getlevel.php@id=100
, getlevel.php@id=101
, etc.
Copy the following PHP code into a new text document and save it according to the name of the original PHP script. In this example, you would save it as getlevel.php
.
<?php header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . str_replace("?", "@", basename($_SERVER["REQUEST_URI"]))); exit(); ?>
Place the files you downloaded and the PHP script in the same folder in Flashpoint's htdocs
folder. In this example, the script and files would go in htdocs\www.example.com\levels
.
Now test the script by opening Flashpoint's copy of Basilisk and typing in a URL that you know should work. In this example, you could go to http://www.example.com/levels/getlevel.php?id=100
and make sure that the contents of the getlevel.php@id=100
file appear in the browser window.