2017-05-29 8 views
1

入力データの更新に問題があります。ページを読み込んで更新するには、以前の値は残っています。 。ページをリフレッシュすると新しいデータが表示されず、ログアウトして再入力する必要があります。値ボタンを押したときに入力値を更新しないでください。データベースがある場合

<input type="text" class="form-control" name="first_name" id="first_name" placeholder="Sólo letras" value="<?php 
if ($_POST) { 
    echo $_POST[ 'first_name' ]; 
} else { 
    echo $_SESSION[ 'first_name' ]; 
} 
?>" required> 
... 

を取得する

使用この

function account_profile(array $data) { 
     if (!empty($data)) { 
      $trimmed_data = array_map('trim', $data); 

      $user_id = mysqli_real_escape_string($this->_con, $trimmed_data[ 'user_id' ]); 
      $first_name = mysqli_real_escape_string($this->_con, $trimmed_data[ 'first_name' ]); 
      $last_name = mysqli_real_escape_string($this->_con, $trimmed_data[ 'last_name' ]); 
      $address = mysqli_real_escape_string($this->_con, $trimmed_data[ 'address' ]); 
      $city = mysqli_real_escape_string($this->_con, $trimmed_data[ 'city' ]); 
      $telephone = mysqli_real_escape_string($this->_con, $trimmed_data[ 'telephone' ]); 

      $query = "UPDATE users SET first_name = '$first_name', last_name = '$last_name', address = '$address', city = '$city', telephone = '$telephone' WHERE user_id = '$user_id'"; 
      if (mysqli_query($this->_con, $query)) { 
       mysqli_close($this->_con); 
       return true; 
      } 
     } else { 
      throw new Exception(FIELDS_MISSING); 
     } 
    } 

と、このいずれかのアドバイス

+0

はあなたが前にあなたがボタンを押した場合、古い値は常にセッションになりますので、このために、他の必要ないけない次のコード

if (isset($_POST['first_name'])){ //First Name changed, so we update it $_SESSION['first_name'] = $_POST['first_name']; } echo $_SESSION['first_name']; //Print data (first_name in this instance) 

を試してみてくださいページをリフレッシュするか、すでに表示されているときに、その行で新しいSELECTクエリを実行していますか?また、mysqli_real_escape_stringを使用せず、プリペアドステートメントを使用することをお勧めします。 –

答えて

0

ためのおかげで

if (isset($_POST)) { 

よりもむしろ

をお試しください
if ($_POST) { 
+0

は私の編集を確認してください – forerser

1

私はあなたの質問を正しく理解しているかどうかはわかりません。 しかし、あなたのコード

​​

のはPOSTリクエストを作るときFIRST_NAMEが空でないことを確認するif (isset($_POST['first_name']))を使用することをお勧めします。

コードの主な問題は、ボタンをクリックするたびにセッションのfirst_name値を設定するのを忘れていた可能性があります。そのため、ページを更新すると最新の値が表示されません。$ _SESSION ['first_name ']はまったく更新されません!

ので、私の理解から、あなたはおそらくとにかく

+0

おかげで感謝をISSETを追加し、データを表示されませんが、データが表示されない、私は今 – forerser

+0

とにかく、 – ryo7689

+0

ハズレのデータを印刷するためのecho文を追加して、どちらのショーは – forerser

関連する問題