2013-05-09 1 views
0

사용자의 벽에 게시 할 코드가 있지만, 페이지가로드 될 때 게시됩니다. 게시물이 필요할 때만 게시해야합니다. 내 벽에 단추가 제출됩니다. 그 양식 조치에 나열된 페이지이기 때문에제출 버튼을 눌렀을 때만 액션이 발생합니다.

<div align="center"> 
<form method="GET" action="translate.php"> 
<textarea name="status2" cols="50" rows="5"<input type="text"/> 
<?php echo str_ireplace(array  ('old','awkward','all','again','behind','along','alright','hello','among','children','yes','child','kids','food','barnard castle','beer','book','blow','beautiful','bird','burst','brown','burn','boots'), 
array ('auld', 'aakwad', 'aall','agyen','ahint','alang','alreet','alreet','amang','bairns','aye','bairn','bairns','bait','barney','beor','beuk','blaa','bonny','bord','borst','broon','bourn','byeuts'),$status); ?> 

</textarea><br> 

<input type="submit" value="post to wall" 
// i did try my wall code here but it still posted on page load 
/> 
</form> 

</div> 

<?php 

$args = array(
    'message' => 'Hello World', 
    'link'  => 'http://apps.facebook.com/geordie-status/', 
    'caption' => 'Translate from English to Geordie' 
    ); 
$post_id = $facebook->api("/$uid/feed", "post", $args); 

?> 

답변

1

input 태그에 name 속성을 추가하십시오. 사용자가 제출 버튼을 눌렀는지 확인하려면 isset을 사용하십시오.

 <input type="submit" value="post to wall" name="submit" 
     // i did try my wall code here but it still posted on page load 
     /> 
     </form> 

</div> 

    <?php  
     if (isset($_POST['submit'])){ 
     $args = array(
      'message' => 'Hello World', 
      'link'  => 'http://apps.facebook.com/geordie-status/', 
      'caption' => 'Translate from English to Geordie' 
      ); 
     $post_id = $facebook->api("/$uid/feed", "post", $args); 
     } 
     ?> 
+0

lmao, 난 그냥 알아 냈어하지만 post.php 양식 동작을 변경하고 위의 경우 post.php 기본적으로 추가했습니다. 어쨌든 고마워, 당신은 여전히 ​​대답을 틱받을 : D 조 –

0

당신은 translate.php 내부 벽에 게시하기위한 코드를 삽입해야합니다

여기 내 코드입니다. 양식이 제출되면 값은 translate.php의 매개 변수로 전달되고 $ _GET을 사용하여 가져오고 벽에 쓰는 코드를 실행할 수 있습니다.

+0

미안하지만이 코드는 translate.php 안에 있습니다. 필요한 것은 제출 버튼을 클릭했을 때만 실행되는 PHP 코드입니다. 그걸 알아 낸 후에는 나머지 문제에 집중할 수 있습니다. 감사합니다 –

+0

그럼 당신의 양식에 를 추가하고 $ _GET [ 'isSubmitted'] == 'true'가 맞는지 확인하십시오. 양식 제출 버튼이 실제로 클릭되었고 데이터가 게시되고 있음을 알 수 있습니다. –

0

문제는 브라우저가 페이지가 다시로드 될 때마다 데이터를 다시 보냅니다. 같은 페이지에

  • 리디렉션 사용자, 그래서 데이터 (header("Location: asd"))

  • 스토어 세션에서 일부 해시 삭제됩니다 보내 숨겨진 입력을하고 있는지 여부를 확인 :

    2 개 방법이있다 해시가 맞습니다. 양식이 올바르게 제출되면 해시를 변경하십시오.

+0

정직하다는 것을 의미하는 것이 확실하지 않습니다. 위의 코드는 my translate.php 페이지입니다. 이 전에 사용자가 내 index.php를 사용하고 거기에 입력 된 데이터는 POST를 사용하여 translate.php로 전송됩니다. 데이터 영역이 변경된 후에 텍스트 영역을 사용하여 사용자가 '제출'을 눌러 데이터가 자신의 벽에 게시 될 수 있습니다. –

관련 문제