Is there a way to detect if a user is using an iDevice WITHOUT reading the user-agent (which could easily be spoofed)? I want to have a mobile version (which will have no captcha), but desktop version will have captcha, so I want to use any other methods of checking other than UA-checks.
According to what I know, you can't detected mobile phones without user-agent. In fact, there is no any other function that check the mobile device..
You can check this lightweight class for detection of moblie devices:
First, as @bwoebi said, there is no other way to reliably check to see if they are on iOS.
However, you could say something like; OK, mobile devices have a screen size < Y * X, so I could just check the screen size. Unfortunately, this is also easily spoofed - by resizing the browser window.
In the end, it's probably not a good idea to skip Captcha for anyone. Just use it or don't - hackers are smart enough to set the user agent or resize thier browser. Also, it's not like people on Mobile can't solve Captchas.
I just used mobile detect about 30 min ago, it works PERFECTLY and easy to implement all you put in your code is:
// Check for a specific platform with the help of the magic methods:
if( $detect->isiOS() ){
// do code here
}
and it will do that code. easy to use. Just put include 'includes/Mobile_Detect.php'; $detect = new Mobile_Detect();
at the top of your page and it works fine.