function isbanned(ip){ var request = new Http('http://neumann-valle.info/chat/sql/ banned_ips.php'); request.set('method', 'POST'); request.writeData('password', 'sagan3077'); request.writeData('ip', ip); var banned = false; request.getContent(function (result){ //Ape.log(ip); banned =result; });
return banned; } now on the hook if(isbanned(cmd.ip))return 0; and the result , was that the code continued to the end and I could login without any issues.. any thoughts? On Jan 23, 9:37 am, Pablo Tejada <ptejad...@gmail.com> wrote: > Did you tried my suggestion? > On Jan 23, 2012 12:34 PM, "utan" <vcomputado...@gmail.com> 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 <err...@gmail.com> 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 <err...@gmail.com> 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 <err...@gmail.com> 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 ape-project@googlegroups.com > > To unsubscribe from this group, send email to > > ape-project+unsubscr...@googlegroups.com > > 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 ape-project@googlegroups.com To unsubscribe from this group, send email to ape-project+unsubscr...@googlegroups.com 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/