작은 따옴표를 포함하는 JQuery $ .get 및 PHP는 작은 따옴표에 대해 백 슬래시를 반환합니다.

Kitimenpolku

클라이언트 (특히 자바 스크립트 및 Jquery 라이브러리)에서 서버 (PHP에서 실행)로 데이터를 보내고 있습니다. 내가 보내는 정보는 다음과 같습니다.

Chrome Dev Tool-> Network에서

Request URL:http://host:8888/RoviImages.php?id=880&aid=334&albumTitle=The+Lion%27s+Roar&albumId=MW0002231494
Request Method:GET
Status Code:200 OK

Query String Parameters
id:880
aid:334
albumTitle:The Lion's Roar
albumId:MW0002231494

클라이언트 코드는 다음과 같습니다.

var data = {id: song_id, aid: aid, albumTitle: albumTitle, albumId: albumId};
$.get(request_url, data)

보내기 전에 정보를 확인하면 " The Lion 's Roar " 로 albumTitle을 얻습니다.

PHP가 정보를 받았을 때 가장 먼저 할 일은 그것을 인쇄하는 것입니다.

$albumTitle =    $_GET['albumTitle'];
error_log('Album Title = ' . $albumTitle);

그러면 " Album Title = The Lion \ 's Roar "로 돌아옵니다 .

정보를 처리 한 후 json_encode를 사용하여 자바 스크립트에 대한 응답을 에코합니다 . 자바 스크립트가 응답을 받고 JSON.parse를 통해 디코딩 하면 결과는 " The Lion \ 's Roar "입니다.

그래서 기본적으로 서버에 들어가지만 변경 사항으로 되돌립니다. 왜?

Sroes

마법 따옴표 설정이 켜져있을 것입니다. http://nl3.php.net/security.magicquotes를 참조 하십시오 .

스크립 상단에 이것을 추가하여 입력에서 모든 슬래시를 자동으로 제거하십시오.

if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관