Did you tried my suggestion?
On Jan 23, 2012 12:34 PM, "utan" <[email protected]> wrote:

> Ok, moved the function code to the hook , now I have the code like
> this:
>
> code before to call the php file
>
> request.getContent(function (result){
>        if(result){
>                return 0;
>        }
>        else{
>                cmd.user.setProperty('name', params.name);
>                cmd.user.setProperty('ip', cmd.ip);
>        }
>        });
>
> but still the code runs after the return 0 , then the page opens but
> with error user.properites are undefined..
> and server side gets me this: TypeError: user.getProperty("name") is
> undefined
> since I am not working with a function when returning the code doesnt
> stop..
> any thoughts?
>
> On Jan 23, 9:08 am, Erick Romero <[email protected]> wrote:
> > Try the following:
> >
> > Remove "return 1" from connect hook. As you said, the code will be ran
> > before you get the php response; so no matter if it is banned you are
> > returning 1 (true).
> >
> > I would delete is_banned function and move that logic into connect hook,
> > making a IF to return 0 or 1 for the connect hook based on the
> php-response.
> > Also you may move the logic user-setProperty into the if (the side that
> > returns 1)
> >
> > On 01/23/2012 10:44 AM, utan 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