프로그램을 성공적으로 설치할 때 어딘가에서 가장 간단한 방법으로 알리려고합니다. 내 응용 프로그램은 Java 기반이며 Java 설치 프로그램이 있습니다. 모든 매개 변수로 http 호출을 수행 할 클라이언트를 쉽게 설치할 수 있습니다. 이는 문제가 아닙니다. 내 문제는 다른 측면에 있습니다 - 나는 호스팅 된 웹 사이트를 가지고 있고 거기에 모든 트래픽을 직접 원하는 그러나 프로그래밍 세계의 그 부분에 익숙하지 않은 :) 각 성공적인 설치 레코드를 덤프 것이 좋을 것이다. (나는 사이트에 통합 된 MySql을 가지고있다). 또 다른 옵션은 저에게 전자 메일을 보내거나 적어도 로그 파일에 꼬리표를 보내는 것입니다. 더 나은 것은 더 간단합니다. 어느 쪽이든 괜찮을 것이다. 누구나 접근을 제안 할 수 있습니까? 나는 약간의 PHP를 알고 있고 아마도 간단한 것들을 할 수있을 것입니다. 그러나 예제 나 출발점이 없으면 오늘날의 웹 기술 미로에서 길을 잃기가 매우 쉽습니다. :)최소한의 방법으로 "집으로 전화"를가는 방법?
답변
웹 사이트에 이미 로깅이 있습니까? 그렇다면 이미 적절한 URL에 대해 grep 할 수있는 로그 파일이 있습니다. 프로그래밍 필요 없음 :) 다른 곳에서 해당 URL로 연결하지 마십시오. 오 탐지 (false positive)로 끝나지 않아야합니다.
모든 설치를 센트리 시키시겠습니까 당신의 신청서의? 그런 다음 "집으로 전화"는 일을하는 적절한 방법이 아닙니다. 응용 프로그램의 다운로드를 계산하면 어떨까요? 누군가 다운로드하면, 보통 설치하는 것입니다.
설치 관리자에서 잠재적 인 버그에 더 관심이있는 경우 뒤에 보고서를 작성하여 서버 으로 보내면 사용자가이를 수행하도록 요청할 수 있습니다.
#downloads! = # 성공적인 설치 –
위의 Jon Skeet이 말한 답변은 매우 간단합니다. 이건 내 문제 야. 얼마나 많은 성공적인 다운로드가 발생했는지 알 수있는보다 강력한 방법을 제안 할 수 있습니까? 성공적으로 다운로드 할 때마다 성공적인 설치가 이루어지는 것은 아닙니다. 나는 고객을 염탐 할 의도가 없으며, 그 반대는 사실입니다. 단지 서비스를 개선하는 것입니다. – Dima
예, 거기에 포인트가 있습니다, Markus. 동의합니다. 더 좋은 방법입니다. 어쨌든, 사용자가 집에 전화를 걸었다 고 말할 수 있습니다. 서버에서 어떻게 처리합니까? 실제로 위에서 게시 한 PHP 스 니펫이 수행합니다. 귀하의 답변 주셔서 감사합니다! – Dima
PHP 스크립트를 사용하면 매우 간단합니다. 당신은 쿼리 문자열의 모든 데이터를 전달할 수 :
// For example, just a simple http call to log.example.com/?version=3.4.5b
$version = $_GET['version'];
$dbh = new PDO('mysql:host=localhost;dbname=mydb', 'myuser', 'mypass');
$sth = $dbh->prepare("INSERT INTO log SET version = :version, installed_at = :installed_at");
$sth->bindParam(':version', $version, PDO::PARAM_STR);
$sth->bindParam(':installed_at', time(), PDO::PARAM_INT);
$sth->exec();
10ks! 나는 이런 식으로했다. – Dima
$ version 값에 대한 입력 검증을 추가 할 수도있다.bindParam/exec 시퀀스가 많은 보안 문제를 잡아낼 것이라고 생각하지만 일반적으로 변수 값을 확인하여 데이터베이스에 추가하기 전에 그 값이 무엇인지 확인하는 것이 더 안전합니다. 설치 기계의 IP를 로그에 추가 할 수도 있습니다. – kaybenleroll
고마워, 나는 주위에 PHP 마법에 대해 갈거야 .. (그것에 한 줄을 쓴 적이 없어) 방금, 방향을 싶었어, 많이 고마워. – Dima
을 나는 존 소총은 이미 충분히 질문이지만 대답 것 같아요 .. 당신이 집에 전화를 할 경우
이 - 공손 위해 확인 당신이 사용자에게 알리고 허락을 요청하십시오.
나쁜 평판을 얻을 수 있습니다.
AwStat와 같은 일반적인 로깅 기능을 가지고 있지만 직접 사용할 수는 없다고 생각합니다. – Dima
원시 로그를 가져올 수 없다는 뜻입니까, 아니면 분석입니까? 심지어 특정 사용자 에이전트 나 분석에 나타날 다른 것을 지정할 수있는 경우에도 분석이 유용합니다. –
사용자 에이전트는 좋은 생각입니다. 감사합니다! – Dima