Ok, Pablo thank you so much.. I will be waiting..

On Jan 23, 11:12 am, Pablo Tejada <[email protected]> wrote:
> Erik,
>
> Returning 0 inside the getContent callback does not returns it to the
> parent function which is the hook. The problem is in the Http class itself.
>
> I skim through the Http.js file and quickly spotted a fix but I'm currently
> mobile so I don't know if I'll be able do anything. If I'm able to do the
> edits that I think could solve this I will share the file with you guys in
> an attachment.
>
> On Jan 23, 2012 2:02 PM, "Erick Romero" <[email protected]> wrote:
>
>
>
>
>
>
>
>
>
> > No sure if I understand what you mean.
> > I am understanding that your problem is on the server side.  If you have
> > troubles into the client-side you should add more information.
>
> > By the way, is the flow-logic entering into the if (result == '')?
> > If it is the case, then the hook is returning zero and the code should
> > stop there (returning zero into the hook-connect server makes
> > client-users to be dropped)
>
> > If the flow-logic is not entering into the "if" quoted above, in that
> > case make the PHP-file outputs ZERO when there are not match instead of
> > a empty char and change the IF to if (result === 0)
>
> > On 01/23/2012 12:44 PM, utan wrote:
> > > 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/

-- 
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