Is because the function isbanned is not really returning anything. You are
returning something in a function inside a function if that makes sense. I
have not tried it but try this:

function isbanned(ip){
       var request = new Http('http://anyplace/sql/banned_ips.php');
       request.set('method', 'POST');
       request.writeData('password', 'any');
       request.writeData('ip', ip);

      var returnVal = false;

       request.getContent(function (result){
               Ape.log(ip);
              returnVal = result;
       });

      return returnVal;
}

On Monday, January 23, 2012, utan <[email protected]> wrote:
> Thanks for your help,
>
> I end up doing all the work at php side, send the ip with http and
> then checking it at php level return either true or false and work
> with it.
> There is a problem , in the moment the http does its job the other
> code had run and even if true it doesn't return because I think
> because  anonymous function  or because it doesn't have a response yet
> from php server side..
> which then tests as false and keep running the code.. this is what I
> am doing..
>
> I have a function in name.js,
>
> function isbanned(ip){
>        var request = new Http('http://anyplace/sql/banned_ips.php');
>        request.set('method', 'POST');
>        request.writeData('password', 'any');
>        request.writeData('ip', ip);
>
>        request.getContent(function (result){
>                Ape.log(ip);
>      return result;
>        });
> }
>
> and
>
> Ape.registerHookCmd("connect", function(params, cmd) {
>        if (!$defined(params) || !$defined(params.name)) return 0;
>        if (userlist.has(params.name.toLowerCase())) return ["007",
> "NICK_USED"];
>        if (params.name.length > 9 || params.name.test('[^a-zA-Z0-9]',
'i'))
> return ["006", "BAD_NICK"];
>
>        if(isbanned(cmd.ip))return 0;// if true would return 0 and the code
> should stop
>
>        cmd.user.setProperty('name', params.name);
>        cmd.user.setProperty('ip', cmd.ip);
>
>        return 1;
> });
>
> If I put the code directly in Ape.registerHookCmd I have the same
> result, doesnt matter if is true or false the code continued to the
> next code , but if I test putting a return 1  before
> request.getContent the code stops and do what I want..
> maybe I still dont know much but why is this? if I do with json you
> think I will have better luck?
>
> On Jan 23, 6:24 am, Erick Romero <[email protected]> wrote:
>> You should add JSON  to the server.
>> I made it in this way:
>>
>> 1. Download the JSON file from the below link.
>> 2. Add the file inside the server under "framework" directory
>> 3. Modify "main.ape.js" in the server and add the line
>> "include("framework/JSON.js");"
>> 3. That's all.
>>
>> http://www.json.org/js.html
>> github:https://github.com/douglascrockford/JSON-js
>>
>> Now in php you do
>>
>> var data = array('name'=>'naruto', 'age'=>'15' );
>> /echo json_encode(/data);
>>
>> And in the server:
>> /
>> var request = new Http(URL);
>> request.getContent(function(result) { //call the PHP file
>>     if ( ! result) {
>>         cmd.sendResponse('ERR', {'code': 1001, 'value':
>> 'error_codes._1001'});
>>         Ape.log('USER_NOT_LOGGED_IN');
>>         return 0;
>>     }
>>     var data_user = JSON.parse(result)
>>     Ape.log(data_user.name);
>> //    Ape.log(data_user.age
>>     return 1;
>> //}/
>>
>> On 01/22/2012 08:04 PM, utan wrote:
>>
>>
>>
>>
>>
>>
>>
>> > Hi,
>>
>> > Sorry to highjack this tread, I've done the same I get the response
>> > from the php db array  json encoded , but when I try to use it in the
>> > serverside of Ape and try something like this:
>>
>> > request.getContent(function (result){
>> >            Ape.log(result.ID);
>> >       });
>>
>> > where result has the json from the test.php, if I try to access say
>> > result.ID I get JavaScript : undefined , how can I access it properly,
>> > tried JSON.decode(); but is not a function and I think core doesnt
>> > have loaded..
>> > need to convert it to object so I can use.. can find if Ape has json
>> > decode to work with..
>>
>> > thanks for any help.
>>
>> > On Jan 17, 2:19 pm, Erick Romero <[email protected]> wrote:
>> >> This works for me:
>>
>> >> 1. On APE Server use Http to fetch test.php (included into
>> >> APE_server/framework). Define a call back for that Http
>> >> 2. Test.php handles mysql functions and sends back the data (a simple
>> >> echo works). For convenience I send the data JSON encoded
>> >> 3. The http-call-back on APE server handles the raw with the data
retrieved.
>>
>> >> On 01/17/2012 03:54 PM, Micael Ribeiros wrote:
>>
>> >>> Is there a better way to do this besides this one:
>> >>> 1: On APE Server use mootools Request method to send a XMLHttpRequest
>> >>> to a test.php file
>> >>> 2: On the test.php file retrieve the mysql data and send it back
using
>> >>> file_get_contents or curl to send a Raw to the APE Server
>> >>> 3: On APE Server process the raw with the mysql data received from
the
>> >>> php script
>> >>> ?
>> >>> Thank you in advance for any response
>
> --
> You received this message because you are subscribed to the Google
> Groups "APE Project" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/ape-project?hl=en
> ---
> APE Project (Ajax Push Engine)
> Official website : http://www.ape-project.org/
> Git Hub : http://github.com/APE-Project/
>

-- 
You received this message because you are subscribed to the Google
Groups "APE Project" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/ape-project?hl=en
---
APE Project (Ajax Push Engine)
Official website : http://www.ape-project.org/
Git Hub : http://github.com/APE-Project/

Reply via email to