2014-10-17 3 views
0
<?php 
$rs = mysql_query("SELECT * FROM users WHERE id='$_SESSION[user_id]'"); 
while ($row= mysql_fetch_array($rs)) 
{ 
    $starter= $row['id']; 
    $user_name= $row['user_name']; 
} 


$starterID=$starter; 
$companyID=$_GET['id']; 


$input = $_POST['message']; 


date_default_timezone_set('Europe/Helsinki'); 
$timestamp = date('h:i', time()); 


$file = $companyID." and ".$starterID.".txt"; 


if (file_exists($file)) { 
    $file = $companyID." and ".$starterID.".txt"; 
} else { 
    $file = $starterID." and ".$companyID.".txt"; 
} 


$current = file_get_contents($file); 

$current.= "<b>$user_name</b> <br> $input $timestamp\n<br>"; 

if(isset($_POST['message'])){ 
file_put_contents($file, $current); 
} 

echo $current; 
?> 

<form action="" method="post"> 
<input type="text" name="message" autocomplete="off"> 
<input type="submit"> 
</form> 

그래서 2 명의 등록 사용자간에 아주 간단한 대화입니다.페이지 새로 고침이 내 양식을 제출합니다.

ID가 154 인 사용자가 ID 156과 대화를 시작하면 파일 154156.txt이 생성됩니다. 이 파일은 모든 메시지가 저장된 곳입니다.

내 문제는 다음과 같습니다. 사용자 154가 메시지를 쓰고 페이지를 새로 고침하고 메시지가 파일에 저장되고 인쇄되는 제출 버튼을 눌러 메시지를 보냈다고 가정 해 봅시다. 이 후 입력 필드가 지워지지만 사용자가 페이지를 새로 고치면 동일한 메시지가 저장되고 다시 인쇄됩니다.

페이지 새로 고침이 양식을 다시 제출하지 않도록하려면 어떻게해야합니까?

+0

sa 인 경우 마지막 메시지를 확인할 수 있습니다. 나 또는 아닙니다. 같은 경우 아무런 작업도 수행하지 마십시오. – Khushboo

+0

당신이 새로 고침 할 때마다 이전 내용이 게시됩니다. 결과적으로 당신의'if (isset ($ _ POST [ 'message']))'는 내용을 실행하고 저장합니다. @Apul Gupta의 승계를 사용합니다 – Ronser

+1

'unset ($ _POST)'마지막 스크립트에서. –

답변

1

페이지에 여전히 $_POST 값이 있습니다. 그래서, 당신이 그것을 리프레시하면. print으로 파일을 다시 보냅니다.

그래서,이 같은 사용자를 리디렉션 header을 추가

if(isset($_POST['message'])){ 
    file_put_contents($file, $current); 
    header('Location:Your_File_name.php') 
} 
0

내가 모든 제안을 시도했지만 불행하게도 사람들은 나를 위해 작동하지 않았다.

는 좀 더 많은 연구를했고,이 경우에 가장 적합한 솔루션 발견과 나 다음되었습니다

원래 코드 :

if(isset($_POST['message']) && $_POST != null){ 
file_put_contents($file, $current); 
} 

솔루션 : 제안

if(isset($_POST['message']) && $_POST != null){ 
file_put_contents($file, $current); 
echo' <script type="text/javascript"> 
location.reload(); 
</script>'; 
} 

감사합니다 , 그들은 나에게 무엇을 검색 할 것인지 더 좋은 아이디어를주었습니다 :)

관련 문제