2012-02-24 2 views
0

저는 웹 서버 사용과 관련한 iphone 프로젝트를 진행 중이며 JSON 형식의 형식으로 데이터를 가져옵니다. 나는 사용자 ID, 사용자 이름 및 암호를 저장하는 mysql 데이터베이스에 "login_info"테이블을 만들었습니다. wesite에서 로그인하고 정보 페이지를 표시하기 위해 사용자 이름과 암호를 얻습니다.JSON을 사용하여 iphone에 웹 사이트 데이터 가져 오기

웹 사이트에 로그인 한 후 다른 페이지가 표시되지만 해당 정보 페이지의 데이터를 iphone에 표시하려면 json 형식으로 변환해야합니다. 내 질문은 웹 페이지에서 정보 페이지를 가져와야하고 iphone에서 정보 페이지의 값에 json 배열을 가져와야하는 것과 같은 방법으로이 작업을 수행 할 수 있습니다.

json 배열에 PHP로 표시되는 경우 웹 페이지의 다른 세부 정보와 함께 웹 사이트 페이지에 간단히 덤프됩니다. 나는 어쨌든 로그인 후에 UserID를 사용할 수 있다고 생각하고 있었고 더 많은 웹 페이지를 추가하면 그 UserID를 기반으로 다른 웹 페이지의 세부 정보를 얻을 수 있다고 생각했습니다. Username과 Password는 로그인 목적으로 만 사용되며 UserID를 반환하고 나중에 해당 UserID를 사용하여 데이터에 액세스합니다. 제게 웹 파트에서 경험하지 못했고 배우려고 노력하십시오.

답변

0

PHP에서 어떤 내용이든 HTTP 응답으로 수신됩니다. 우리는이 게시물에서 이미 같은 내용을 논의했습니다. sending a response from a php script to iOS,

iPhone으로 다시 보내려는 정보에 관계없이 데이터 배열을 만드는 것이 좋습니다. PHP의 json_encode() 함수를 사용하여 배열을 json으로 변환하십시오. 이렇게하면 불필요한 데이터가 전송되는 것을 피할 수 있습니다.

업데이트 : 조건문을 사용하여 구현할 수 있습니다.

방법 1 : 요청이 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()) { 
    //the query is coming from iPhone, place your data you want to send back to iphone here 
} else { 
    //query is not from iPhone, you can place rest of your code here 
} 

, 나는 누군가가 자바 스크립트를 비활성화하는 경우 다음이 사용하는 자바 스크립트 작업을 수행하는 방법에 대한 코드에 의해 예기치 않은 동작으로 발생할 수 있기 때문에이 당신이 PHP를 사용하는 것이 좋습니다 아래의 링크를보십시오 (위의 예는 같은 링크에서 가져옵니다).

Detect iPhone Browser

방법 2 : 당신이 당신의 아이폰에서 조회. 요청을 iPhone에서 가져 오는 것을 PHP에 알리는 HTTP POST 값을 보내십시오. IMO POST 다음에 GET을 사용하는 것이 더 좋습니다. 누군가가 귀하의 URL 패턴을 알게되고 조정할 수도 있기 때문입니다. iPhone에서 임의의 다른 값을 전송하고 서버 측에서 확인하여이를 해결할 수 있습니다.

그래서 대신

http://mysite.com?ua=iphone

의 당신은 PHP에서 사용을 확인할 수 있습니다이

http://mysite.com?ua=iphone&ran=jkdkfjklj678

및 전송 시도 할 수

if(isset($_POST['ua']) && $_POST['ua'] == 'iPhone') { 
    //The request is coming from iPhone, make sure to check the random value too 
} else { 
    //The request is not from iPhone, render the other page. 
} 

M ethod 3 : iPhone에서 요청을 동일한 페이지 대신 다른 PHP 스크립트로 보내지 않는 이유는 무엇입니까? 이 방법을 사용하면 논리를 분리하고 스크립트로 엉망이되는 것을 피할 수 있습니다.

예를 들면. iPhone의 경우 iphone.php을 사용하고 나머지는 somepage.php으로 나에게이 방법은 훨씬 더 깨끗합니다.

+0

당신이 이것을하는 방법을 이해할 수없는 경우. 나를 알리고 설명하기. –

+0

안녕하세요, Azhar, 답장을 보내 주셔서 감사합니다. 나는 json 배열로 정보 페이지의 데이터를 변환하고 iphone에서 성공적으로 액세스했지만 내가 원하는 것은 로그인 후 웹 페이지에 json 배열을 표시하고 싶지 않다. 대신 실제 웹 페이지 wher 사용자가 세부 정보를 볼 수 있기를 원한다. 정상적인 웹 페이지 에서처럼. – iSim

+0

답변이 업데이트되었습니다. 그것이 당신을 돕는다면 대답으로 표시하는 것을 잊지 마세요 :) –

관련 문제