2009-10-06 4 views
0

나는 웹 사이트를 개발하고 (기회이기 때문에 내 고객의 서버가 허용 doesent) mod_rewrite에 한정된 반복하지 않고 친화적 인 URL을 만들어 내 시도에있어,이 시스템을 함께했다. php는 $ seccion이라는 변수를 기대하며,이 섹션에는 특정 섹션이있는 두 번째 파일에 대한 상대 경로가 있어야합니다. 그렇게하면 정적 인 것들 (header, footer, sidebars)을 모두 index.php에 유지할 수 있으며, 변경된 사항은 중간에있는 것입니다. 당신이/가입에 가면는 PHP 포함하고 POST

그런 다음 만이있는 index.php를이 :

<? $seccion = 'signup.php'; @include '../index.php'; ?> 

URL은 www.root.com/signup 될 것입니다하지만 실제로 www.root 포함됩니다. co.kr/index.php를 방문하여 www.root.com/signup.php를로드하십시오.

이 배열은 또한 파일에 링크해야 할 때마다 절대 URL을 사용해야 함을 의미합니다.

문제는 이제 POST가 작동하지 않는 것 같습니다. www.root.com/signup에 양식이 있고 동작이 www.root.com/welcome이고 POST를 통해 입력을 보내야한다고 가정합니다. 음, 정보는 절대로 도달하지 않습니다. PHP는 $ _POST = Array()를 반환합니다

아이디어가 있습니까?

편집 : 이전에 이미 개발 중에 동일한 문제가 발생했다는 것을 잊어 버렸고, 당시의 솔루션은 아약스를 사용하고 jQuery를 통해 POST 요청을 보냈습니다. 그것은 우아한 솔루션이지만, 내가 항상 원하는 것은 아닙니다.

+0

설정이 문제가 아닌 것 같습니다. /welcome.php에 직접 데이터를 게시하면 어떻게됩니까? – timdev

+0

나는 그것을 풀어 주겠다.하지만 여전히 index.php에 welcome.php가 내장되어야한다. 앞에서 말했듯이, index.php에는 모든 정적 인 것들이 있습니다. – Nacho

답변

0

어딘가에 다른 방향으로 진행되고있는 것처럼 들리지만 "path /"를 "path"또는 그와 비슷한 것으로 리디렉션 할 수있는 mod_rewrite 규칙이 있습니까? Firebug for Firefox는 NET 탭에 모든 리디렉션을 표시합니다.

어쨌든이 방법을 삭제하고 대신 라우터를 사용하여 요청을 처리하는 것이 좋습니다. MicroMVC, CodeIgniter 또는 대부분의 다른 MVC 프레임 워크를 보면 단일 인덱스를 사용한다는 것을 알 수 있습니다.php 파일은 URL (/ blog/read/45)에 전달되고 "blog.php"파일을로드하고 "read (45)"또는 (blog-> read (45))를 호출하는 경로 파일을 사용합니다.).

+0

는 더 mod_rewrite는 규칙이 없습니다. 그리고 아이디어를 재 작성할 필요하지 않았지만 그래, 내가 뭔가 다른이 방법을 드롭해야합니다 추측되고있다 내 전체 구조. 그 프레임 워크를 살펴 보겠습니다. – Nacho

0

보십시오. 이렇게하면 하나의 페이지를 템플릿으로 사용할 수 있습니다. 템플릿을 포함한 다른 모든 페이지를 설정하십시오. 그런 다음 페이지에서 POST를 수행 할 수 있습니다.

파일 : _design.php

<html> 
<head> 
<title>Site</title> 
</head> 
<body> 
<?php include $file; ?> 
</body> 
</html> 

파일 : index.php를

<?php 
$file = 'pg/index.php'; // this gets content 
include $file; 
?> 

파일 : 페이지/index.php에

<?php 
if(isset($_POST)){ 
echo '<pre>'; 
print_r($_POST); 
echo '</pre>'; 
} 
?> 
<form action="?" method="post"> 
Name: <input type="text" name="name" /> 
<input type="submit" value="Send" /> 
</form> 
+0

잘 모르겠지만, 내가 알 수있는 것은, 지금 당장 얻은 것입니다. \ – Nacho

+0

위의 테스트를 iis와 함께 apache와 windows로 centos에서 시험해 보았습니다. 나는 아래 사람에 동의한다. mod_rewrite 설정이 있습니까? 이것은 게시물을 죽일 수 있습니다. – David

+0

나는 내 클라이언트의 서버에 가지고 있지 않으며 어느 쪽도 가지고 있지 않다 : ( – Nacho

0

나는 비슷한 문제가 다른를 다 퉜다 그의 Windows 컴퓨터에 PHP를 설치 한 친구와 밤.

그의 단순한 형식은 게시물을 전달하지 않았거나 데이터를 PHP 스크립트로 가져 오는 것이 아닙니다. 그의 코드에 아무런 문제가 없었습니다. PHP 또는 Apache 설정과 관련이 있습니다. Aptana를 설치하고 내부 서버를 사용하면 양식이 올바르게 작동합니다.

먼저 간단한 양식을 테스트하고 _POST 데이터가 실제로 PHP에 의해 선택되는지 확인하십시오.

+0

나는 XAMPP에있다. 불행하게도, 나는 서버 소프트웨어를 바꾸는 방법이나 시간을 모른다. _POST, 집어하지만, 발신자와 리시버 (가) 같은 페이지에있는 경우에만 사용할 수 있습니다. – Nacho