2010-08-06 4 views
1

숫자 "게시 ID"값을 주석에 첨부하여 데이터베이스에서 검색하여 적절한 위치에 표시하려고합니다. html 형식 내에서이 숫자 값을 데이터베이스에 삽입하는 스크립트로 보내려면 어떻게해야합니까? 나는 GET이나 POST를 사용할 필요가 있다고 가정하지만, 사용자가 입력 한 텍스트를 제외하고 그 것들을 보내는 방법을 이해하지 못한다.시스템에서 나가는 주석의 "사후 ID"값 설정하기

<div class="comments"> 
<form action="foxpost.php" method="post"> 

<label for="name">Name</label><br> 
<input id="name" name="name" type="text" /><br> 
<label for="message">Comment</label><br> 
<textarea class="message" id="message" name="message"></textarea><br><br> 

<input type="Submit" value="Post Comment" /> 
</form> 
</div> 

답변

0

이 양식에 숨겨진 필드에 ID를 넣어 :

<input type="hidden" name="post_id" value="id_goes_here" /> 
+0

@ 지미 : 필드가 숨겨져 있지만 사용자는 [Firebug] (http://getfirebug.com/)와 같은 도구를 사용하여 숨겨진 필드의 값을 변경할 수 있습니다. –

+0

그건 안전하지 않습니다. PHP에서 id를 생성하려면 SQL을 보내기 전에 $ _POST에서 주석을 파싱하고 dinamically 값을 생성하고 브라우저에 노출시키지 말고 id를 생성해야합니다. –

+1

OP는 게시물에 대한 참조와 함께 주석을 저장할 수 있도록 사용자가 주석을 달고있는 게시물의 ID를 서버로 다시 전달하려고합니다. – mwittrock

1

당신이 만약

내가 "이름"과 "코멘트"입력을 보내는 데 사용하고있는 형태이다 당신이 그것을 만들 필요가없는 mysql을 사용하고 있다면, mysql은 당신이 새로운 글을 삽입 할 때 그것을 자동 생성 할 수있다. 우리가 사용하는 다음 쿼리

INSERT INTO `student` (`name` , `email`) VALUES ('john', 'email');

당신이 ID가 쿼리에 지정되지 않은 볼 수 있지만 필드는 AUTO_INCREMENT를 가지고 있기를

 
CREATE TABLE `student` ( 
`student_id` INT(3) NOT NULL AUTO_INCREMENT, 
`name` VARCHAR(25) NOT NULL , 
`email` VARCHAR(50) NOT NULL , 
UNIQUE (`student_id`) 
);

을 테이블을 만들 수 있습니다 예를 들어

속성. 이드없이 학생을 삽입하면 가장 높은 이드를 얻고 추가합니다. 당신이 빈 테이블이 있고 위의 삽입 쿼리를 실행한다면, 당신은 MySQL의 설명서 http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

추신 3 ID 1, 2와 행과 3



더 얻을 것이다 다른 데이터베이스를 사용하는 경우 지정하십시오.

--- EDIT 1 --- 매우 심하게 질문을 오해했을 수 있습니다 (이것은 과거의 자정입니다하지만 그건 변명이 아니다) 당신이 1. hiddent 필드를 전달하려면
당신은, 그 몇 가지 옵션이 여기에 언급 된 2. $ _GET [ 'postid'] comment.php? postid = 13 같은에서 다른 페이지 3. 모두

에서 주석을 추가하지만 주석을 추가하기 전에, 잊지 마세요 경우 그 게시물이 존재합니다.

... 스팸을 줄이기 위해 akismet 라이브러리를 사용 하시겠습니까? http://www.achingbrain.net/stuff/php/akismet

당신은 wordpress.com

+0

MySQL을 사용한다면 위의 @vlad에 의해 개략적으로 설명 된 INSERT 문 바로 뒤에 호출되는 mysql_insert_id() 함수가 될 것입니다 ... http://us.php.net/manual/en/function.mysql -insert-id.php – Don

+0

Don 감사합니다. –

0

I 양식의 일부로 ID가없는 것이 좋습니다 그냥 데이터베이스를 AUTO_INCREMENT 기능을 사용에 등록 할 때 무료로 키를 얻을 수 있습니다.

2

PHP로이 질문에 태그를 추가 했으므로 저는 백엔드에서 사용하는 언어를 추측합니다.내가 만들고있어 또 다른 가정이 실제로 쿼리 문자열에 postID을 발견, "http://example.com/posts.php?postID=1212"같은를 postID와 귀하의 요청에 쿼리 문자열을 포맷하는 것입니다, 당신은 다음과 같이 그 위에 통과 :

<div class="comments"> 
<form action="foxpost.php?postID=<%= $_GET['postID'] %>" method="post"> 

<label for="name">Name</label><br> 
<input id="name" name="name" type="text" /><br> 
<label for="message">Comment</label><br> 
<textarea class="message" id="message" name="message"></textarea><br><br> 

<input type="Submit" value="Post Comment" /> 
</form> 
</div> 

사용
<%= $_GET['postID'] %> 

은 단순히 쿼리 문자열에서 postID를 HTML로 직접 내보내거나 변수에 할당 할 수 있습니다.