2012-05-17 100 views
3

我有幾個Index.php文件,如(index.php,index2.php,index3.php等),我也有一個數據庫與不同的ID的URL。當有人進入一個索引文件時,登陸頁面的視圖是動態的,只有數據庫中指定的參數會改變顯示的一些參數,比如說我輸入domain.com/index.php?id=2 - 這是爲了X城市和域名domain.com/index2.php?id=112將顯示Y城市的頁面。iphone檢測php

到目前爲止好..

現在我想插入一臺iPhone檢測代碼,這將重定向正在進入從iphone的URL到iPhone友好的用戶設計。所以我創建了一個I-index.php文件插入下面的代碼index.php頁面:

<? 
if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPod')) 
{ 
    header('Location: http://www.mydomain.com/mobile/i-index.php'); 
    exit(); 
} 
?> 

,現在當我從我的iphone輸入網址mydomain.com/index.php?id=1我是重定向到i-index.php文件,但不是指定的ID(?id = 1)。

我希望我的解釋不要混淆。任何人都可以提出一個方法爲它重定向到指定的ID(包括原來的索引的移動指數都被正確連接到數據庫)

謝謝

+0

我的代碼中沒有看到任何'?id = 1' – zerkms

+0

請參閱關於PHP如何檢測iPhone的內容。 http://stackoverflow.com/questions/10632400/iphone-detection-php – Othman

回答

2
<? 
if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPod')) 
{ 
    header('Location: http://www.mydomain.com/mobile/i-index.php?id='.$_GET['id']); 
    exit(); 
} 
?> 
+0

謝謝!有用 :) – orlyidd

0

,所以我創建了一個I-指數.PHP插入

...

頭( '位置:http://www.mydomain.com/mobile/i-index.php');

所以如果一個iphone請求I-index.php文件,該腳本發送重定向到I-的index.php

不是指定的ID(?id = 1)。

它在代碼中說'?id = 1'在哪裏?

0
header('Location: http://www.mydomain.com/mobile/i-index.php?id='.$_GET['id']); 
0

只要保持在網絡

<?php 

function isIphone($user_agent=NULL) { 
    if(!isset($user_agent)) { 
     $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; 
    } 
    return (strpos($user_agent, 'iPhone') !== FALSE); 
} 

if(isIphone()) { 
    header('Location: http://www.yourwebsite.com/phone'); 
    exit(); 
} 

// ...THE REST OF YOUR CODE HERE 

?> 

,並在JavaScript中搜索你說

var agent = navigator.userAgent; 
var isIphone = ((agent.indexOf('iPhone') != -1) || (agent.userAgent.indexOf('iPod') != -1)) ; 
if (isIphone) { 
    window.location.href = 'http://www.yourwebsite.com/phone'; 
} 

Detect iPhone Browser

0

這將整個查詢字符串添加到i-index.php。因此,您收到的任何查詢字符串也將傳遞給i-Phone版本。如果您需要向index.php添加更多參數,則無需再次更改此代碼,這對未來的更改非常有用。

<? 

if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPod')) 
{ 
    header('Location: http://www.mydomain.com/mobile/i-index.php?' . $_SERVER['QUERY_STRING']); 
    exit(); 
} 
?> 
0

我建議不要這樣做在PHP中,但using RewriteEngine in a .htaccess file。 這可能看起來類似的東西:

RewriteEngine on 
RewriteCond %{HTTP_USER_AGENT} iPhone 
RewriteCond %{REQUEST_URI} !^/mobile/i-index.php 
RewriteRule .* /mobile/i-index.php [R,QSA] 

QSA被照顧的查詢字符串,並添加原始參數到新的URL,因此爲您提供了更多的靈活性。

還有一個更復雜的版本可用in a different thread