Thursday, July 05, 2012

Access localhost/Server on Android device over wifi


Recently in one of my android project I have used XAMPP for database. For accessing  database/localhost/server from my application I have use ip address 10.0.2.2 . That is the way for getting  localhost from android device. But when I have installed that application in my real device that was unable to get the server  . How that will get the server? I have use 10.0.2.2 for http connection . So, getting the server we have to make a connection between android device and our server location. We can do it by connecting with connectify software that will help us to communication device with our server. And in this time have to use in this time the ip address create by WIFI connection as we are creating connection with the server by using wifi.

In this situation I have used cracked "Connectify" so that my android device have the access of my laptop
local network access. In the lite version of connectify you won't get the options for allowing "Local Network Access " .




After establishing connection have to go command prompt . Write "ipconfig" to get the ipv4 address.
In the command prompt which ip address is given , you have you use that ip address in your application for getting the server. (Below red marked line : you have to use that ip address)



Before editing your code you can also check from your android device is it working or not . For that you have to go browser then write the ip address in the url then we will get the localhost.

















Set up ADB/Drivers for android Device and Some important Commands


Most people won’t have to use ADB (Android Debug Bridge) ever, but if you want to learn how or want to get a little more technical with your Android phone, here’s how to get it set up.
I. Setting Up The SDK
1. Download the Latest Android SDK from Google
Android SDK (Select the exe version)
2. Once downloaded, double click the exe file to open it. (MAKE SURE you change the directory that it is installing everything to to c:\android-sdk\)
3. Click on the SDK Manager and it will ask you to install packages. Select the following and leave all others unchecked:
Android SDK Tools
Android SDK Platform Tools
Google USB Driver Package, Revision XX (XX being the highest number available)
4. Then click continue and follow the on screen prompts until all of the packages are installed and it finishes.
5a. On your phone, click Settings > Applications > Development and make sure USB Debugging is on.
5b. If using Ice Cream Sandwich (Android 4.0), click on Settings > Developer Options and make sure USB Debugging is on.
6. Plug your phone into your computer via USB cable (it needs to be on). It should say installing drivers if using Windows.
7. Open Windows File Explorer and look for the android-sdk folder inside of the C drive. Then open the platform-tools folder inside that. Now, hold the shift key down on your keyboard and right click in any blank area inside that folder. This will give you the option to open a command window here. Select that and a command prompt will open saying c:\android-sdk\platform-tools\      *if using windows XP, this won’t work. So instead open command prompt first by going to Start > Run > then typing in cmd and hitting enter. Then type cd c:\android-sdk\platform-tools\ and hit enter, then continue.
8. Type the following into the command prompt window (hitting enter at the end of every line):
adb devices
You should see a serial number pop up, it’s the serial number of your phone. This means you are all set!
If you do NOT see a serial number, then we need to reinstall the drivers manually in Section II below.
II. IF DRIVERS JUST WON’T AUTOMATICALLY INSTALL, DO IT MANUALLY HERE
1. A program called PDANet (used normally to allow you to wired tether your phone’s internet to your computer) can be used to install the ADB drivers for a lot of phones. Download it and follow it’s instructions to install it then go back to step 8 in Section I above and see if that gets you the serial number (if you do, you are all done). If not, then use one of the device specific programs below in step 2.
2. Download your phone’s driver’s below then goto your Device Manager on your computer, look for the phone and click on it. Then click Properties > Update Driver > Browse > Let me pick > Computer > Have Disk > Browse > Then select the driver you downloaded below:
Universal Motorola Drivers (unzip the file once you download it, and run the program inside to install the drivers)(Updated 09.27.10)
Motorola Droid Drivers (unzip the file once you download it).
Motorola Milestone Drivers (follow the instructions on the page).
Motorola CLIQ Drivers (follow the instructions on the page).
Samsung Behold 2 Drivers (unzip the file, run the setup.exe) (If you have Windows 64Bit, you CANNOT install the Behold Drivers. Find someone with a 32Bit system to to any Behold 2 procedures involving ADB).
Samsung Galaxy Drivers (unzip the file, do NOT run setup.exe. Instead follow step 1 in Section II and install manually.)
If using a Samsung device, try downloading Samsung Kies and installing that then plugging in your device and trying again.
V. Some Common ADB/Fastboot Commands
ADB Commands
adb devices – lists which devices are currently attached to your computer
adb install <packagename.apk> – lets you install an Android application on your phone
adb remount – Remounts your system in write mode – this lets you alter system files on your phone using ADB
adb push <localfile> <location on your phone> – lets you upload files to your phones filesystem
adb pull <location on your phone> <localfile> – lets you download files off your phones filesystem
adb logcat – starts dumping debugging information from your handset to the console – useful for debugging your apps
adb shell <command> – drops you into a basic linux command shell on your phone with no parameters, or lets you run commands directly
adb devices – lists which devices are currently attached to your computer
adb install <packagename.apk> – lets you install an Android application on your phone
adb remount – Remounts your system in write mode – this lets you alter system files on your phone using ADB
adb push <localfile> <location on your phone> – lets you upload files to your phones filesystem
adb pull <location on your phone> <localfile> – lets you download files off your phones filesystem
adb logcat – starts dumping debugging information from your handset to the console – useful for debugging your apps
adb shell <command> – drops you into a basic linux command shell on your phone with no parameters, or lets you run commands directly
Fastboot Commands
fastboot devices – lists which devices in fastboot mode are currently attached to your computer
fastboot boot <filename> – boots a rom stored on your pc specified by the filename
fastboot flash <partition> <filename> – flashes a rom stored on your pc, partition can be one of 
{boot, recovery, system, userdata}

For farther information you can visit Android Debug Bridge.

Tuesday, July 03, 2012

Using Placeholder or parameter markers for preventing sql injection in PHP


public static function getMembers($startRow,$numRows,$order){
$sql = “SELECT SQL_CALC_FOUND_ROWS * FROM “ . TBL_MEMBERS . “ ORDER BY $order LIMIT :startRow, :numRows”;
}

Here in the above statement SQL_CALC_FOUND_ROWS is a special MySQL keyword that computes the total number of rows that would be returned by query , assuming  the LIMIT clause wasn't applied. So if the query would return 20 records, but the LIMIT clause limits the returned rows five, SQL_CAL_FOUND_ROWS return a value of 20. This is useful because it enables you to display the records several pages, as you see in a moment.

:startRow and :numRows are called placeholders or parameter markers.
They serve two purposes.
First of all, they let you prepare — that is, get MySQL to parse — a query once, then run it multiple
times with different values. If you need to run the same query many times using different input
values -- when inserting many rows of data, for instance -- prepared statement can really speed up execution.
Secondly, they reduce the risk of so-called SQL injection attacks. For example, an alternative to using
placeholders might be to write:


$sql = “SELECT SQL_CALC_FOUND_ROWS * FROM “ . TBL_MEMBERS . “ ORDER BY $order LIMIT $startRow, $numRows”;


However, imagine that, due to insufficient checking of user input, a malicious user managed to set
$numRows to “1; DELETE FROM members”.

This would run the query as intended, but it would also run the second statement, which would delete all records from your members table!

When you use placeholders, you pass data to the query via PDO (as you see shortly), not directly into
your query string. This allows PDO to check the passed data to ensure that it only contains what it’s supposed to contain(integers in this case).


Next, the two :startRow and :numRow placeholders you created earlier are populated with the actual data from the $startRow and $numRow variables:

$st->bindValue( “:startRow”, $startRow, PDO::PARAM_INT );
$st->bindValue( “:numRows”, $numRows, PDO::PARAM_INT );

The PDOStatement::bindValue() method takes three arguments:

the name of the placeholder to bind,
the value to use instead of the placeholder,
and the data type of the value (PDO::PARAM_INT, or integer, in this case).

By specifying the data type, PDO can ensure that the correct type of data is passed to MySQL. In addition, PDO automatically escapes any quote marks and other special characters in the data.(Failing to escape special characters is another common cause of SQL injection vulnerabilities.)

Some other common data types that you can use include:

PDO::PARAM_BOOL — A Boolean data type
PDO::PARAM_NULL — The NULL data type
PDO::PARAM_STR — A string data type. (This is the default if you don’t specify a type.)
PDO::PARAM_LOB — A LOB data type, such as BLOB or LONGBLOB