2014-03-03 5 views
0

POST 후 서버에서 일부 데이터를 자동으로 다시 가져올 수 있습니까?POST 후에 데이터를 자동으로 되돌릴 수 있습니까?

  1. 나는
  2. 가 나는 PHP 코드의 예를 들어 폼의 데이터를 올리기 HTML 양식이 있습니다 saveRecord()를
  3. 는 PHP 코드는 MySQL의 DB
  4. 의 데이터를 저장하는 데이터가 비를 포함하는 경우 레코드 ID == 0이 INSERT가있을 것입니다 경우 0 레코드 ID는 업데이트가 될 것이며, PHP 코드는 알고
  5. (INSTER 후)이 어떻게 새로운 것을 보낼 수있는 새로운 레코드 ID (DB에서 돌아 오기) ID를 (브라우저) HTML 양식으로 다시 기록 하시겠습니까?

내가 기존 레코드 (ID! = 0)를 편집하는 경우, everithing 괜찮 ...

내 문제는 내가 새로운 데이터를 게시 할 때 (ID를 == 0) 나는 그것이 여러 게시 할 수 있다는 것입니다 시간, 그리고 PHP 코드 때마다 DB에 새 레코드를 만듭니다 ...하지만 난 정말 싶지 않아. 나는 ... 여러 INSERT들을 방지하기 위해, (오른쪽 HTML 형태로) 다시 (브라우저에) (서버에서) 삽입 된 레코드의 ID를 전송하고자하는

내가 어떻게 할 수 있습니다!

특정 CI 코드 :

function update($record) { 

    print_r($record); 

    $id = $record['crn_id']; 
    $record['crn_active'] = (($record['crn_active'] == 'on') ? 1 : 0); 
    array_shift($record); 
    if ($id == 0) {    
     $this->db->insert('currencies', $record); 
    } else { 
     $this->db->where('crn_id', $id); 
     $this->db->update('currencies', $record); 
    } 
} 

>

+1

코드를 공유하시기 바랍니다, 그래서 우리는 ** 실제로 **하고 당신이 무엇을 볼 수 있습니다. –

+0

mysqli_insert_id ($ connection)를 사용해야 할 수도있다. // 마지막으로 삽입 된 ID를 찾으려면 .. – user1844933

답변

1

여기에 일반화 될 수있는 당신의 방법에 당신을 도울 수있는 세 가지 방법은 다음과 같습니다?

  1. 다른 열이 고유의 확인은. 데이터베이스에 중복 데이터가있을 우려가 너무 많으면 제약 조건으로 일반화 할 수있는 규칙이있을 수 있습니다. 이 (예를 들어, <input type="submit" onsubmit="this.disabled=true">)를 클릭 한 후
  2. 은 제출 버튼을 비활성화합니다.
  3. 그냥 제출 페이지를 다시로드하지 않았는지 사용자를 만들기 위해 생성 한 번 키를 사용 (일부 AJAX 기반의 유효성 검사가 실패 할 경우 다시 활성화해야합니다). CSRF 및 XSS 공격에 도움이되는 form keys을 살펴보십시오.
+0

THX! 제 3의 좋은 생각이지만, 제 2의 하나에 동의하지 않습니다 ... 사용자가 폼 데이터를 몇 번이고 다시 POST 할 수 있어야합니다 ...하지만 코드 (또는 시스템)가 스마트해야합니다. 그것은 새로운 데이터이거나 이전에 게시 된 NEW 데이터의 업데이트 일뿐입니다 ... – Ruky

+0

두 번째 제안은 절대적으로 필요하지 않습니다. 어리석게도 동일한 버튼을 여러 번 클릭하는 것만으로도 바보가 다시 게시되는 가장 일반적인 방법입니다. –

+0

사실 나는 다른 방식으로 그것을 해결해야만한다 ... 나는 간단한 (폼) 포스트의 AJAX 포스트 insted를 사용해야한다 ... – Ruky

관련 문제