Hi,

I 've tried your suggestion too I get this nickname.js:40:TypeError:
user.getProperty("name") is undefined
and the code runs after the else, but when logged in, the
user.properties is undefined.. so somehow it stops the code but the
wrong way..
My brain is about to explode.. ROLF

On Jan 23, 10:25 am, Erick Romero <[email protected]> wrote:
> What about this:
>
>     Ape.registerHookCmd("connect", function(params, cmd) {
>
>         if ( ! params || ! params.session_id) return 0;
>
>         var request = new Http("your_php_file");
>         request.getContent(function(result) { //call the PHP file
>
>             if (result == '') { //YOUR PHP is sending an EMPTY when
>     there are not match (as you wrote)
>
>                 cmd.sendResponse('ERR', {'code': 1001, 'value': 'User
>     BANNED'});
>                 return 0;
>
>             } else {
>
>                 cmd.user.setProperty('name', params.name);
>                 cmd.user.setProperty('ip', cmd.ip);
>                 return 1;
>
>             }
>         });
>
>     });
>
> On 01/23/2012 11:34 AM, utan 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/

Reply via email to