2012-12-02 4 views
0

많은 샘플 코드를 확인했지만 여전히 제대로 작동하려면 고심하고 있습니다. 내 PHP 스크립트에서 XML 출력을 생성하려고합니다.PHP에서 XML 출력 생성

login.php

<?php 

    mysql_connect("localhost", "root", "") or die("cannot connect"); 
    mysql_select_db("ConquestOfLancaster") or die("cannot select DB"); 

    $username = $_REQUEST['username']; 
    $password = sha1($_REQUEST['password']); 

    $username = mysql_real_escape_string($username); 

    $domDoc = new DOMDocument; 
    $rootElt = $domDoc->createElement('root'); 
    $rootNode = $domDoc->appendChild($rootElt); 

    $sql = "SELECT user_id, user_name FROM tbl_user WHERE user_name='$username' and user_pass='$password'"; 
    $result = mysql_query($sql); 

    $count=mysql_num_rows($result); 

    if($count > 0){ 

     //echo("welcome"); 
     $rootAtr = $domDoc->createAttribute('success'); 
     $rootAtrVal = $domDoc->createTextNode('TRUE'); 
     $rootAtr->AppendChild($rootAtrVal); 
     $rootElt->AppendChild($rootAtr); 

     $subElt = $domDoc->createElement('username'); 
     $subNode = $rootNode->appendChild($subElt); 

     $textNode = $domDoc->createTextNode($username); 
     $subNode->appendChild($textNode); 

     echo htmlentities($domDoc->saveXML()); 
    } else{ 

     //echo("not exist"); 
     $rootAtr = $domDoc->createAttribute('success'); 
     $rootAtrVal = $domDoc->createTextNode('FALSE'); 
     $rootAtr->AppendChild($rootAtrVal); 
     $rootElt->AppendChild($rootAtr); 

     echo htmlentities($domDoc->saveXML()); 
    } 

?> 

및 브라우저에 출력

<?xml version="1.0"?> <root success="TRUE"><username>user1</username></root> 

내 주요 문제는이 PHP와 상호 작용하는 내 iOS 앱이 결과를 분석 할 수 있다는 것입니다. 내가 뭘 잘못하고 있니?

+0

우선은 depricated mysql_로 * 명령 세트를 사용하는 것입니다 생각한다. PDO 또는 mysqli를 사용하십시오. –

+0

XML이 생성되는 방식이 바뀌 었습니까? 내 편이 중요한 실수 야? – OutOfBoundsException

+0

XML을 변경하지 않겠지 만 날짜가 명시되지 않은 지원되지 않는 기술을 새 코드에 사용하는 것은 좋지 않습니다. http://ca1.php.net/manual/en/function.mysql-connect.php –

답변

1

htmlentities을 꺼내려고 했습니까? 보내는 것과

은 다음과 같습니다

&lt;xml version ... 

하지

<?xml version="1.0"?> <root success="TRUE"><username>user1</username></root> 

당신은 매우 잘못

+0

실제 XML 출력으로 인쇄하는 방법이 있습니까? htmlentities를 제거하고 화면에 아무것도 표시하지 않습니다. 나는 PHP 코딩에서 새롭고 아직도 어려움을 겪고있다. 어리석은 질문에 대한 미안. – OutOfBoundsException

+0

당신은 올바른 출력입니다 적절한 헤더를 보내지 않은 경우 화면에 user1을해야한다, 당신은 항상 페이지 소스를 보려고 시도 할 수 있습니다. 그리고 if 문 양쪽에서'echo htmlentities ($ domDoc-> saveXML());'를'echo $ domDoc-> saveXML();'으로 대체했는지 확인하기 만하면됩니다. –

+0

우후! 당신이 제안하고 추가 한 것을 변경했습니다. header ('Content-Type : application/xml'); 이제는 XML 출력처럼 보입니다 :) 그러나 맨 위에 "이 XML 파일에는 관련 스타일 정보가 없습니다. 문서 트리가 아래에 나와 있습니다." 걱정할 필요가 있니? – OutOfBoundsException