이상한 상황에 있는데, DB에 문자열을 넣을 때 mysql_real_escape_string
으로 출력하면 모든 것이 정상이며 mysql이 자동 stripslashes를 만든 것처럼 보입니다! 예를 들어, 나는 tes't
을 저장하고 다음을 인쇄하십시오 : tes't
하지만 php 4.2가 설치된 localhost에 동일한 코드로 tes\'t
을 입력하십시오. mysql의 수수께끼는 뭐니? 한 번 영원히 한 번, 안전하고 깨끗한 데이터베이스에 데이터를 삽입하고 선택해야한다는 것을 알고 싶습니다! 왜냐하면 그것은 내가 정말로 혼란스럽게 만들었 기 때문입니다! 그것은 PHP의 마법에 가능성이 따라db에서 내용을 선택할 때 mysql 자동 stripslashes?
0
A
답변
1
마술 따옴표가 켜져있을 가능성이 높습니다. 이 문제를 해결하기보다는 오히려 해제해야합니다. 서버에 대한 액세스 권한이없는 경우에도 글로벌 방식으로 처리해야합니다. 예를 들어 :
if ((function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) || ini_get('magic_quotes_sybase')) {
foreach ($_POST as $k => $v) { $_POST[$k] = stripslashes($v); }
foreach ($_GET as $k => $v) { $_GET[$k] = stripslashes($v); }
foreach ($_COOKIE as $k => $v) { $_COOKIE[$k] = stripslashes($v); }
}
코드의 시작 부분에 그 퍼팅 당신이 마법 따옴표 처리해야 위치를 추적 할 필요가 없습니다 의미하는 모든 계기로 처리되어 있는지 마법 따옴표를합니다.
여기에 자세한 내용이 나와 있습니다. http://www.php.net/manual/en/function.get-magic-quotes-gpc.php
1
는 설정, MySQL의 미스터리보다 더 PHP의 신비를 인용 :) 대신 mysql_real_escape_string()
를 사용하는 좀 더 일반적인 기능을 사용할 수 있습니다 : 당신이 있는지 확인이 코드
function escape($s)
{
if (get_magic_quotes_gpc()) $s=stripslashes($s);
return mysql_real_escape_string($s);
}
을 옵션이 활성 상태이고 첫 번째 스트리핑을 수행합니다.
관련 문제
- 1. DB에서 선택할 때 CodeIgniter 정의되지 않은 인덱스
- 2. db에서 자동 업데이트 데이터
- 3. PHP stripslashes 문제
- 4. 다른 stripslashes 문제
- 5. Wordpress stripslashes issue
- 6. Twig 템플릿 안에 stripslashes
- 7. PHP를 위해서 stripslashes
- 8. datepicker 변경에 따라 DB에서 ListView 내용을 다시로드하십시오.
- 9. MySQL - DB에서 * 데이터 * 추적 변경?
- 10. 마우스로 항목을 선택할 때 primefaces 자동 완성 입력이 포커스를 잃습니다.
- 11. 자동 완성 jquery에서 항목을 선택할 때 양식을 제출하려면 어떻게해야합니까? 여기
- 12. jQuery 자동 완성 레이블, 선택할 때 다른 필드의 값
- 13. Jquery 자동 완성 - 항목을 선택할 때 커서가 시작으로 이동
- 14. ASP.NET의 DB에서 자동 생성 된 ID
- 15. Iphone 신청을위한 다수 SQLite DB에서 선택할 수있는 능력
- 16. 행 수를 선택할 때 백분율의 백분율을 어떻게 선택할 수 있습니까?
- 17. Mysql 사용자는 테이블을 선택할 수 있지만 뷰는 선택할 수 없습니다.
- 18. 선택할 MySQL 포크/버전은 무엇입니까?
- 19. 오버플로 : 숨김하지만 내용을 자동 스크롤합니다.
- 20. MYSQL 여러 함수를 사용할 때 자동 커밋
- 21. Echo 국제 언어가 MySQL Db에서 검색되었습니다
- 22. PHP에서 데이터를 선택할 때 MySQL 테이블이 잠겨 있습니까?
- 23. ejabberd : mysql db에서 채팅 내역을 검색하십시오.
- 24. PHP MYSQL dB에서 사진 링크 표시
- 25. Visual Studio AutoComplete는 선택할 때 입력을 시뮬레이션합니다.
- 26. MySQL 데이터베이스에서 추출한 내용을 어떻게 표시합니까?
- 27. PHP를 사용하여 mysql db에서 정보 가져 오기
- 28. mysql DB에서 사용자 이름과 암호를 확인하십시오. C#
- 29. mySQL DB에서 고유 한 값 확인
- 30. mysql DB에서 좌표를 저장하려면 double 유형을 사용해야합니까?
PHP 4.2? 아야. 그것은 수십 년 전의 것이며 더 이상 지원되지 않습니다. 평범한 MySQL 확장 대신에 PDO 나 MySQLi를 사용하라고 말했을 것입니다 (따옴표를 이스케이프하지 않고 준비된 명령문을 사용할 수는 있지만) PHP 5가 필요합니다. 가능하면 업그레이드해야합니다. :-) – Wiseguy
나중에 테스트와 실험실을 위해서 ;-) – Vahid
내가 새 집을 만들고 싶다면 나는 망치 대신에 조잡한 모양의 클럽을 사용할 수 있었지만 왜 그런가? lol – Wiseguy