Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/myhostn/public_html/forum/Sources/Subs.php on line 4412

Deprecated: Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in /home/myhostn/public_html/forum/Sources/Load.php on line 3372
mobile websites

mobile websites

Started by stokley, January 21, 2010, 02:10:31 pm

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

stokley

I have built mobile websites for a couple of my domains.
Is there a way that the server will automatically direct mobile traffic to the mobile sites?

Dynaweb

January 21, 2010, 05:02:56 pm #1 Last Edit: January 21, 2010, 05:26:25 pm by Dynaweb
I see you want to redirect mobile browsers to a mobile version of a web page?  I can help you with this.  I have adapted a script for use with our kind of servers (Apache/Linux) and it should detect most mobile units.  Help me test it and I can then supply the source code to you.  Here is the URL:

http://www.hostned.com/_test/mobiletest.php

stokley

It appears to work on my iphone. I got the "You are using a Mobile browser" page.

Dynaweb

It works on my HTC G1 Android too.  Looks like we have a winner.  Here is the PHP code:


<?php
/////////////
/// ABOUT
// This script will notice of the http request is coming from a mobile device and redirect to a page especially for mobile devices.  
// First change the settings, then place this code at the top of your web page.  

/////////////
/// SETTINGS

// URL FOR MOBILE VERSION OF PAGE
// replace mobileversion.mobi with the actual name of the page you want mobiles users to be redirected to.
$mobile_url "mobiletest-mobi.php";

/// DO NOT CHANGE ANYTHING BELOW HERE
/////////////

$mobile_browser '0';
 
if(
preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i'strtolower($_SERVER['HTTP_USER_AGENT']))) {
    
$mobile_browser++;
}
 
if((
strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
    
$mobile_browser++;
}    
 
//matches a 4 letter code in the user agent id
$mobile_ua strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,99));
//echo $mobile_ua;
//$mobile_ua = strtolower(($_SERVER['HTTP_USER_AGENT']));

$mobile_agents = array(
    
'w3c ','acs-','alav','alca','amoi','andr','audi','avan','benq','bird','blac',
    
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
    
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
    
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
    
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
    
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
    
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
    
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
    
'wapr','webc','winw','winw','xda','xda-');
 
if(
in_array($mobile_ua,$mobile_agents)) {
    
$mobile_browser++;
//    $mobile_browser = 1;
}
 
if (
strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
    
$mobile_browser++;
}
 
if (
strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'droid')>0) {
    
$mobile_browser++;
    
$mobile_ua .= " / $1";
}
 
if (
strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'mobile')>0) {
    
$mobile_browser++;
}

if(
$mobile_browser>0) {
   
// do something
echo ' You are using a MOBILE browser!';
header("Location: $mobile_url");

}
else {
   
// do something else
   //echo ' You are NOT using a MOBILE browser!';
}   
 
//echo '<br />You are identified as <i>'.$mobile_ua.'</i> from agent '.$_SERVER['HTTP_USER_AGENT'];
?>


This is the normal page.  No mobile device detected.

stokley

I changed "mobiletest-mobi.php" to the name of mobile page that I want it to redirect to.
Then I pasted the code into the head of my html page.
Why did the code it's self show up in the browser when it was placed in the head?

Dynaweb

The filename should end in .php (otherwise you need an .htaccess directive to enable php in other file extensions).

stokley

Ok, so how do I go about getting a .htaccess directive?
I'm a graphics girl. Need a little help here:)

Here are the sites where I'd like to implement this:

http://www.indochinewilmington.com
http://www.indochinewilmington.mobi

http://www.forever-tan.net
http://www.forevertan.mobi

http://www.stokleyproperties.com
http://www.stokleyproperties.mobi

Dynaweb

If your sites are on Linux server you can use .htaccess.  Just create a file in the domain root (public_html or httpdocs) named .htaccess

Here is a nice how-to
http://www.javascriptkit.com/howto/htaccess.shtml

stokley

I uploaded the .htaccess file to the root of www.stokleyproperties.com and it's not good.
The site is down and I'm getting this message:

Internal Site Error
This page encountered an internal error (500 internal server error) or some kind misconfiguration in the script and was unable to complete your request.

Please contact the site administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

More information about this error may be available here or in the server error log.

I'm unable to remove the file. It's hidden I guess.

What now? I need my site back up.