2012-04-29 2 views
0

의이 시나리오입니다 : 내가 접촉 몇 가지 체크 박스와 형태가 있습니다 jQuery의 직렬화를 사용빈 배열 - 확신은 여기 htaccess로의 잘못

<input type="text" name="cola[]" value="coke" /> 
<input type="text" name="cola[]" value="pepsi" /> 
<input type="text" name="cola[]" value="rc" /> 

을, 나는 데이터 문자열처럼 내 mailer.php에 보낸 그래서 : 나는 인해 htaccess로 재 작성 규칙에의 URL에서 .php 확장자를 생략해야했다

$.ajax({ 
    type: "POST", 
    url: "http://mydomain.com/mailer", 
    data: dataString, 
    success: function() {//some function} 
}); 

알 수 있습니다. 3 개의 확인란을 모두 선택하면 데이터 문자열은 &cola=coke&cola=pepsi&cola=rc처럼 보입니다. console.log을 사용하여 확인했습니다.

mailer.php은 다음과 같습니다

$cola = $_POST["cola"]; 
// other code 
$message = "<p>" . $cola . "</p>"; 
// code to mail it out 

그러나, 성공 우편에, 전자 메일 본문 텍스트는 그냥 "배열이"대신에 "콜라, 펩시, RC"로 말했다.

내가 가지고는 다음과 같습니다 내 htaccess로 내 재 작성 조건을 함께 할 수있는 뭔가가 될 수 있습니다 느낌 :

RewriteEngine On 

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ http://example.com/folder/$1 [R=301,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L] 

내 재 작성 조건

이 URL에서 후행 /를 제거하고 쓸어있는 .php 파일 확장자는 다음과 같습니다. domain.com/pretty

아무도 내가 왜 배열 내용 대신 "배열"메시지를 가져 오는 지 진단 할 수 있습니까? 고맙습니다!

+0

모든 점에서 나는 똥을 모른다. 그래서 htaccess와 아무런 관계가 없다. – izolate

답변

4

귀하의 .htaccess 문제가 아닙니다.

Array 
(
[0] => 'cola' 
[1] => 'pepsi' 
[2] => 'rc' 
) 

당신은 배열을 통해 루프가 필요하고 정보를 얻을 : 사실, $ _POST [ '콜라'는이 같은 배열이다.

희망 도움말.

+0

굉장해, 이제 나는 바보가된다. 정보 주셔서 감사합니다! – izolate

+0

또한 내 정보를 채굴하기 위해 배열을 반복하는 법을 보여 주실 분이나 혹시 멋진 분이 계신가요? – izolate

+1

당신은 2 가지 방법을 가지고 있습니다. for, foreach는 이것을 참고하십시오 : http://php.net/manual/en/control-structures.foreach.php –

2

이것은 htaccess와는 아무런 관련이 없습니다. $ cola 배열을 잘못 출력했습니다!

$cola = implode(', ', $cola); 
$message = '<p>' . $cola . '</p>'; 

: 여기


은 올바른 방법 당신이 따옴표를 ""사용하지 않는, PHP의 문자열 내부에 변수를 구문 분석하지 않을 경우, 단일를 사용 따옴표 ''대신에 구문 분석이 수행되므로 성능이 향상됩니다. 더 많은 실행 시간.

+1

사실, http://www.phpbench.com/을 확인하십시오 - 성능은 동일합니다. – MichaelRushton

+0

아니, 나 자신을 테스트 해 봤는데, $가 발견 될 때까지 500자를 문자로 파싱해야 할 때가 아니면 그 캐릭터를 아웃 버퍼로 보낸 다음 그 문자를 브라우저를 구문 분석하지 않고? –

+0

이 부분을 설명해 주시겠습니까? '$ cola = implode (',', $ cola);'감사합니다! – izolate