ID:133502
 
Can we have a proc that posts php to a site? It'd help me out alot, seeing as BYOND doesn't have any procs like that now, and it is impossible with the current procs.[not impossible but it requires a client to be connected to the world to send the html to, and it leaves that file in that players cache, which for devolpers is a nightmare, and for hackers is a paridise] maybe it could look a bit like this postPHP(site,html) where site was the site your posting to, and html is the info[the inputs and such] your sending to the site.
Already possible with the world.Export() function -- although BYOND doesn't support the POST protocol at the moment.
In response to Nadrew (#1)
What good is that then >:O that's why i'm suggesting it isn't it. You my friend just made a useless post.
In response to Tubutas (#2)
If you would have actually read the reference entry on world.Export() you'd notice that it mentions that POST may be supported down the line. That means your feature request isn't going to be added since it's already added as much as it's going to be for now; until Export() is made to work with POST.
In response to Nadrew (#3)
Why isn't the POST method supported? DMCGI clearly supports it, except that's for receiving.

I suppose all you really need to do is add a params variable to world.Export() which can be used to send parameters using the GET or POST request. This should be a value derived from list2params().
In response to Tubutas (#2)
Hardly a useless post. Just because post isn't currently supported doesn't mean what you're trying to do isn't possible or easily possible.

There's nothing inherently wrong with using GET, in fact it's probably safer as since the user can change the data easier you're more likely to check it unlike with POST data where I doubt your validation routines would be what they need to be as it can be spoofed almost as easily.

As for the cache if you use world.export() it doesn't store the information in the cache but instead returns a list of the data. When you call browse assuming you're showing the result to a user, you can optionally specify a name for the file. By duplicating this with another call to browse with the content equal to an empty strign and display set to 0 you'd effectively remove it from the cache.
In response to StolenSoul (#5)
i already have hashed values of everything the post is as safe as it ever will be, what nadrew says i get, but its impossible to post with a client connected, thats what im ultamitly trying to achieve.
In response to Tubutas (#6)
Can you define with a lient connected? kind of ambiguous
In response to StolenSoul (#7)
with a /mob... who has a client... that is connected to the game... the server that i am hosting... Do you understand what i am saying? I can break it down into baby langauge for you, if you need it.
In response to Tubutas (#8)
You can break it down all you want but sying that you can't pass it with a client makes no sense on it's own. As it won't matter if a client is connected or not you can still use world.export() So what exactly is it you're trying to do that you're saying can't be done?

And by the way just because you don't know how to articulare what you're trying to do is no reason to get rude.
In response to StolenSoul (#9)
but its impossible to post with a client connected

I think he meant without a client connected. Since world.Export only supports the get method, using a browser is the only way to use the post method. And you can only open a browser window for someone if there is a client connected.
In response to Nickr5 (#10)
Oh, looks like everyone understands but you stolen. I may be inarticulate, but at least i am not illiterate.
In response to Tubutas (#11)
Funny that you should say that as he had to take a guess to your meaning.

There's a huge differnece between a client being and not being connected vocabulary wise.

Now back to your "issue"

Yes you can't post data without showing a page to a client, but you can use world.export and use the GET method to post without a client.

Assuming you're doing this on a timer of some sort, you could simply call one function or the other based on wheterh there's a user involved or not. Problem solved until POST gets added.
In response to StolenSoul (#12)
StolenSoul wrote:
Yes you can't post data without showing a page to a client, but you can use world.export and use the GET method to post without a client.

Except the entire point is to allow for POST requests to be possible. And as far as I know, there is no difference in safety, however if you start using clients to send POST information it may get compromised and changed by a client, so a server-side function would be much nicer.

I suppose a DLL could already be made to do this, but frankly I can't figure out how to compile those things in .so format so they'd work on Linux, and I don't really want to bother with it.

A major advantage to POST requests is that it doesn't have a really small limit like the GET protocol has. POST can additionally be used to send files, which the GET protocol can't do either.
In response to Android Data (#13)
Yes these are valid points, and nobody is saying that having world.Export() use post is bad. It's even planned for according to the reference.

However having one specific to a language would be redundant at best and kind of pointless, which was the original post.

I only offered a workaround until the feature is implemented.
In response to Tubutas (#11)
Tubutas wrote:
I may be inarticulate, but at least i am not illiterate.

The only thing you *are* doing is courting a forum boot-to-da-head for being insulting. Knock it off, please, or expect a lengthy absence. We don't need this crap here.

(don't bother with replies or commentary to this issue, take it as a friendly warning- this is not up for debate and they will be deleted anyway as it hijacks the thread topic, so please don't waste your time or ours.)