권장 : ASP 기본 자습서 : ASP에서 하위 프로그램 적용 학습 ASP에서는 vbscript 및 기타 방법을 통해 자신의 프로그램을 호출 할 수 있습니다. 예 : vbscript를 사용하여 서브 루틴을 호출하는 방법 ASP에서 vbscript로 작성된 서브 루틴을 호출하는 방법. 다음은 인용 된 내용입니다
프록시를 통과 한 후 클라이언트와 서비스 사이에 중간 계층이 추가되므로 서버는 클라이언트의 IP를 직접 얻을 수 없으며 서버 측 응용 프로그램은 전달 주소를 통해 클라이언트에게 직접 반환 할 수 없습니다. 그러나 HTTP_X_FORWARDED _ ???? 원래 클라이언트 IP 주소와 원래 클라이언트가 요청한 서버 주소를 추적하는 데 사용됩니다.
캐시 호환성 응용 프로그램의 설계 원리를 설명하기위한 두 가지 예는 다음과 같습니다.
'서버 이름의 주소가 필요한 ASP 응용 프로그램의 경우 : http_host/server_name을 직접 참조하지 말고 http_x_forwarded_server가 있는지 확인하십시오.
| 다음은 인용 된 내용입니다. 기능 gethostname () dim hostname as string = hostname = request.servervariables (http_host) ISDBNULL (request.servervariables (http_x_forwarded_host))가 아닌 경우 LEN (trim (request.servervariables (http_x_forwarded_host))))) hostname = request.servervariables (http_x_forwarded_host) 끝 If 끝 If 호스트 메인을 반환하십시오 엔드 기능 |
// 클라이언트 IP를 기록 해야하는 PHP 응용 프로그램의 경우 : remote_addr을 직접 참조하지 말고 http_x_forwarded_for를 사용하십시오.
| 다음은 인용 된 내용입니다. 함수 getUserip () { $ user_ip = $ _server [remote_addr]; if ($ _server [http_x_forwarded_for]) { $ user_ip = $ _server [http_x_forwarded_for]; } } |
참고 : HTTP_X_FORWARDED_ 여러 가지 중간 프록시 서버를 통과하면 여러 주소를 쉼표로 나눈 방법 : 200.28.7.155, 200.10.225.77, 219.101.137.3, 많은 오래된 데이터베이스 디자인 (BBS). 클라이언트 주소를 기록하는 데 사용되는 필드는 종종 20 바이트로 설정되어있어 너무 작습니다.
나는 종종 다음과 같은 오류 메시지를 본다.
Microsoft Jet 데이터베이스 엔진 오류 '80040E57'필드는 추가 할 데이터의 양을 수락하기에는 너무 작습니다. 적은 데이터를 삽입하거나 붙여 넣으십시오.
/inc/char.asp, 라인 236
그 이유는 클라이언트 액세스 주소를 설계 할 때 관련 사용자의 IP 필드 크기를 50 바이트로 설계하는 것이 가장 좋습니다.
공유 : ASP 코드의 결함 공차 메커니즘 예를 들어, 중국에서 가장 인기있는 ASP를 취하면서, 실제로 코드를 작성할 때 결함 공차의 개념을 생각하는 사람은 거의 없습니다. 왜 그것에 대해 생각해보십시오. 원래의 의미는 다음 코드를 작성하여 실수를 견딜 수 있다는 것입니다