2010-07-18 2 views
-2

나는 누군가를 위해 응용 프로그램을 만들고 있는데, 모니터하고 싶은 것들이있다. 각 작업마다 NSLogs가 모두 설정되어 있지만 콘솔이나 다른 서버로 보낼 수 있기를 원합니다. 어쨌든이 일을하고 있습니까? 또한 나는 사용자가 그것에 대해 알기를 원하지 않는다. 나는 그가 관리해야하는 계정에 대한 암호를 사용자에게 제공했기 때문에 이것을 모니터링하고있다. 그리고 그가 어떤 규칙을 위반하지 않았는지 확인하기 위해 무엇을하고 있는지보고 싶다.사용자가 버튼을 누르거나 무언가를했을 때 NSLog를 보내는 방법

답변

2

나는 당신이 원하는 것을 얻지 못한다. NSLog()는 콘솔에 출력하는 표준 함수입니다. 적어도 디버그 모드에서는 일반적으로 NSLog()가 릴리스 코드에서 제거됩니다. (내가 일반적으로 알고있는 큰 일반화)

사용자가 귀하의 컴퓨터에 있습니까? 네트워크를 통해 연결되어 있습니까? 등 몇 가지 질문이 있습니다.

또한 사용자에게 규칙을 위반하는 작업을 수행 할 수있는 옵션을 제공하는 이유는 무엇입니까? 나는 이것이 귀하의 게시물에서 가장 큰 포인트라고 생각합니다. 사용자는 분명히 규칙을 어기는 기능을 가지고 있습니다. 그것들을 감시하는 대신 그 기능을 변경하는 것은 어떨까요?

내가 사용하고있는 소프트웨어가 "기록"되어 개발자가 내가 한 일을 볼 수 있다고 생각하면 즉시 대안을 살펴보기 시작할 것입니다.


편집 :이 답변에 대한 설명에서 설명하려고합니다. 나는이 코드를 컴파일 가능한 것으로 주장하지 않고, 단지 그러한 솔루션이 어떻게 작동해야 하는지를 설명하려하고있다. 그것은 최고가 아니며 가장 빠르지도 않을 것입니다. 그러나 그것은 일을 끝낼 것입니다. 나는 개인적으로 사용자가 그럴 이유가 없다면 그런 종류의 기능을 사용해서는 안되며, 응용 프로그램에 대한 소스 코드를 볼 때 일시적이더라도 기능을 제거하는 것이 쉽다는 것을 알 수 있습니다.

PHP 스크립트 -이 메일로 오류가 표시됩니다.

<?php 
/* Get the specified incident */ 
$incident = $_GET['incident']; 
$app = $_GET['app']; 
$email = ''; //Your email address 

/* send it to $email, with a subject of $app, 
** and the "incident as a message" */ 
if(mail($email, $app, $incident)){ 
    echo "SUCCESS"; 
} 
?> 

그런 다음, 목표 - C에서 그것을 호출 -는 NSString의 stringWithContentsOfURL 방식의 기능을 사용하는 빠른 래퍼 함수를 ​​구현합니다. 이게 ..

-(BOOL) userRuleBreak:(NSString *)incident{ 

/* We need to generate a URL of http://xxxxxx/perm.php?incident=???&app=???? */ 

NSUrl *alert = [NSUrl initWithString:[NSString 
       initWithFormat:@"http://www.xxxxxx.xxx/perm.php?incident=%s&app=%s", 
        incident, @"APPNAME"]; 

NSString *status = [NSString stringWithContentsOfURL:alert, 
          encoding:NSASCIIStringEncoding]; 

if(status != nil){ 
    return YES; 
} else { 
    return NO; 
} 

} 

명백하게, 실제로는 NSString의 내용을 확인할 무언가를 위해 if 문을 대체하십시오. 이 코드는 컴파일 될 수도 있고 컴파일되지 않을 수도 있습니다. - 시도하지는 않았지만, 자존심있는 솔루션을 코딩하도록 권유합니다.

이 응용 프로그램의 실제 문제는 사용자가하지 말아야 할 것을 사용자가 기다리고 있다는 사실이 아닙니다. 사용자가 그 사람에게 뭔가 할 수있는 능력을 부여하고 있다는 사실입니다. 해서는 안된다. 사용자가 무언가를하고 싶지 않다면 기능을 제공하지 마십시오. 사용자가 이미 뭔가를 한 후에 이메일을 기다리는 것은 좋지 않습니다. 그때까지는 너무 늦었습니다. 그 일이 일어나기 전에 그만 두십시오. 그 일을 할 수있는 선택권을주지 마십시오. 능동적이고 반동적이지 않아야한다. 왜냐하면 사용자가 무언가를한다면 그는 행동해서는 안되기 때문이다. 그 모든 괜찮아요 그리고 잘 말하는 "하지만 당신이 그렇게하지 말라고 했잖아! 너는 허락되지 않았어"-하지만 그가 한 피해를 되돌리려는 사람이 되겠지.

+0

이 사람은 나를 위해 일을하고 있지만 패스워드를 변경하고 게시해서는 안되는 것을 게시 할 수 있습니다. 그래서 나는 그의 행동을 모니터하고 싶다. 그는 나 근처에 컴퓨터가 없다. –

+0

그는 기능을 요구합니까? 그가 그 사람들에게 접근 할 수 있다면 당신의 우려를 볼 수 있습니다. 그것은 거대한 안보 문제입니다. 내가 잘못했을 수도 있지만 간단한 PHP 스크립트를 만들어 전자 메일을 보냅니다. URL에 문자열 (script.php? event = "password-change"등)을 전달한 다음 [NSString setStringWithContentsOfURL]에 의해 호출되는 PHP 스크립트를 URL을 인수로 사용하여 NSString을 다음과 같이 확인하십시오. 그것이 제대로되었는지 확인하십시오. 심지어 래퍼 함수를 ​​만들 수도 있습니다. 더 좋은 옵션이 있지만 IMO를 사용하면 작업이 완료됩니다. 물론, 그 기능성은 존재하지 않아야합니다. – EnOpenUK

+0

하지만 내 웹 사이트에는 없으며 다른 회사의 웹 사이트에 있습니다. –

관련 문제