2012-04-04 2 views
0

데이터베이스 행 ID가이 같은 URL에 연결되어 있습니다 : 내가 수동의 index.php를 새로 고치면페이지에서 임의의 PHP ID를 링크에로드하도록하려면 어떻게해야합니까?

페이지 행에 대해 2site.com/index.php?id=2

된다 임의의 레코드를 표시하지만 자연스럽게 주소 표시 줄에 레코드 ID를 표시하지 않습니다.

주소 표시 줄에 ID 변경 사항을 표시하면서 링크를 임의의 레코드로 표시하는 방법이 있습니까?

도움 주셔서 감사합니다.

답변

1

임의의 레코드를 표시하는 대신 레코드의 ID를 선택하고 ID를 표시하는 버전으로 리디렉션하십시오.

$randomId = // whatever method you use to choose it 
header("Location: http://site.com/index.php?id=$randomId"); 
+0

키아 토키 시아, 유나이티드를 사용하십시오. 이 방법은 잘 작동합니다 (임의의 ID가 결국 URL 막대에 표시되기 때문에).하지만 실행하면 페이지가로드되지 않고 리디렉션 루프 (310)가 발생합니다. 이 문제를 해결하는 방법을 알고 있습니까? 감사! – karhu

+1

id가 지정되지 않은 경우에만 리디렉션을 수행해야합니다 ('! isset ($ _GET [ 'id'])'). – JJJ

+0

Brilliant. 이제 작동 중입니다. 모든 도움을 주셔서 감사합니다! – karhu

1

이 시도 :

$randomId = rand(0,100); // if let's say your post IDs go from 0 to 100 
header("Location: http://www.yourdomain.com/post.php?id=$randomId"); 
1

가이 작업을 수행하는 여러 가지 방법이 있습니다.

당신은 Juhana가 말한 것처럼 the header function을 사용할 수 있습니다. 이렇게하면 페이지를 다시로드하여 다른 페이지로 리디렉션됩니다.

window.historyjQuery for AJAX을 사용하여 페이지를로드하지 않고 HTML5를 사용하여 주소 표시 줄을 변경할 수 있습니다.

가장 안전한 옵션은 PHP 헤더 기능입니다. 머리말을하기 전에 인쇄/에코를하지 말 것을 명심하십시오. 이미 '헤더가 이미 전송되었습니다.'라는 메시지가 계속 나타나는 경우에는 ob_clean()

관련 문제