에서 인수를 전달하는 것은 여기 내 ajax_handle 파일입니다. 나는 (동적) $ methodName 함수에 전달하는 가장 좋은 방법이 무엇인지 전혀 모른다.통화 기능 동적
Q
통화 기능 동적
0
변수
A
답변
1
동적 방법으로 $_POST['data']
을 그대로 전달할 수 있다고 가정합니다. 동적 메서드가 배열을 허용하지만 처음에는 기본값을 설정하여 쉽게 처리하고 의 유효성을 검사 할 수 있습니다. 예 : 또한 name
및 address
이상으로 실제 지역 변수를 변환 extract()
를 사용하도록 선택할
class AController
{
public function dynamicMethod($params)
{
// Set default values but allow them to be overridden by $params
$locals = array_merge(array(
'name' => 'John Doe',
'address' => 'Nowhere',
), $params);
// Do stuffs and return result. Example:
return array('nameAndAddress' => $locals['name'] . ' lives at ' . $locals['address']);
}
}
. 아약스 핸들에서
:
$controller = new $className;
$result = $controller->$methodName($_POST['data']);
echo json_encode($result);
이 말했다 모두와 함께, @Sven이 무슨 말을하는가 올바른지 유의하시기 바랍니다. 현재 접근 방식에 몇 가지 보안 문제가 있습니다.
+0
감사합니다. 나는이 솔루션 call_user_func_array (array ($ controller, $ methodName), $ _ POST [ 'data'])를 찾았습니다. – user1930254
관련 문제
- 1. 통화 기능
- 2. 통화 기능
- 3. 통화 기능
- 4. 통화 기능
- 5. 통화 기능
- 6. 동적 통화 기호가있는 통화 서식
- 7. 통화 제어 기능
- 8. 간단한 통화 변환 기능
- 9. 는 통화 기능
- 10. 부트 스트랩의 통화 기능
- 11. 통화 기능, 프로그램/
- 12. 통화 제어 기능
- 13. 통화 기능 PostgreSQL을
- 14. 통화 기능은 동적
- 15. SQL 트리거 - 통화 금지 기능
- 16. Laravel Routes.php의 통화 컨트롤러 기능
- 17. Swift에서 앱 종료시 통화 기능
- 18. Gmock 통화 기능 두 번
- 19. 스팬의 텍스트 변경시 통화 기능
- 20. 동적 기능
- 21. 동적 기능
- 22. jQuery 페이지 변경 중 모바일 통화 기능
- 23. 파워 쉘 : 스크립트 블록 외부 통화 기능
- 24. AngularJS와 : 삼항 연산자 조건 검사에서 기능 통화
- 25. 자바 스크립트 모달 창 통화 기능 - UI
- 26. 변경 후 Jquery 모바일 통화 기능
- 27. 체크 아웃 페이지의 wooCommerce 통화 기능
- 28. Windows Phone 8의 통화 기록 기능
- 29. wifi를 사용하는 Android 화상 통화 기능
- 30. 프로그래밍 방식으로 Android 통화 검색 기능
코드와 관련된 보안 문제가 마음에 들지 않습니다. 아마도'$ _POST [ 'req']'의''../../ WhateverPath/Any_xxx '''를 보내서 "Controller.php"로 끝나는 파일 시스템에 파일을 요구할 수 있습니다. 컨트롤러에서 public 메서드를 호출 할 수 있습니다. 필요한 파일이 실제로 생각하는 경로 안에 있는지 확인하십시오. 'realpath()'를 사용하여 얻을 수있는 상대 경로를 확장하거나 관련 "파일 경로"일 수있는 문자를 완전히 금지하십시오. 컨트롤러 이름이이 행성의 어떤 캐릭터가 될 수있는 이유가 있습니까? ASCII 문자로 충분해야합니다. – Sven
@Sven이 점을 지적 해 주셔서 감사합니다.하지만 어떻게 ajax 호출에서 $ _POST [ 'req']를 변경 하시겠습니까? 어쨌든 ASCII 필터 또는 허용 된 filnames 배열을 만들거야. – user1930254
서버로 HTTP 요청을 보내지 못하게하는 방법은 없습니다. 그리고 모든 데이터는 내 통제하에 있습니다. 물건을 난독화할 수는 있지만, 아약스 코드를 항상 보면서 자신이하는 일을보고 똑같이하고 재미있는 행동을 확인하기 위해 물건을 변경하십시오. – Sven