2017-12-22 5 views
1

私は2つのボタン(検索と更新)を持つ単純なHTMLフォームを持っています。 このコードでは、MySQLから「検索」ボタンを使用して値を取得し、取得した値「年齢」がボタン「更新」を介してDBに挿入されます。ユーザがdbに存在する場合、すべてのフォームフィールドを表示しない場合は、それを読み取り専用として表示します。

HTMLフォームフィールドがあります。

  • Privateno(検索キー)
  • ユーザー

だから、年齢、私は本当に助けとして必要なものを...

HTMLフォームでのみ管理する方法検索キー(privateno)フィールドを編集可能にするデータベースに「privateno」が実際に存在するかどうかにかかわらず(この場合、フィールド値はDBから自動的に挿入される)まで「読み取り専用」になるようにします。そのような単純な

<?php 

// php code to search data in mysql database and set it in input text 

if(isset($_POST['search'])) 
{ 
    // id to search 
    $id = $_POST['id']; 

    // connect to mysql 
    $connect = mysqli_connect("localhost", "root", "","test"); 

    // mysql search query 
    $query = "SELECT `user`, `age`, `privateno` FROM `test` WHERE `privateno` = $id LIMIT 1"; 

    $result = mysqli_query($connect, $query); 

    // if id exist 
    // show data in inputs 
    if(mysqli_num_rows($result) > 0) 
    { 
     while ($row = mysqli_fetch_array($result)) 
     { 
      $user = $row['user']; 
      $age = $row['age']; 
      $privateno = $row['privateno']; 
     } 
    } 

    // if the id not exist 
    // show a message and clear inputs 
    else 
    { 
     echo "User doesn't exist"; 
     $user = ""; 
     $age = ""; 
     $privateno = ""; 
    } 

    mysqli_free_result($result); 
    mysqli_close($connect); 
} 

// in the first time inputs are empty 
else 
{ 
    $user = ""; 
    $age = ""; 
    $privateno = ""; 
} 

?> 

<?php 
if(isset($_POST['update'])) 
{ 

    $age = $_POST['lname']; 

    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "test"; 

    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "INSERT INTO test (text) 
      VALUES ('$age')"; 

    if ($conn->query($sql) === TRUE) { 
     echo "New record created successfully"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 

    $conn->close(); 
} 
?> 

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    </head> 
    <body> 
     <form action="index.php" method="post"> 
      PrivateNo:<input type="text" name="id" value="<?php echo $privateno;?>"><br><br> 
      First Name:<input type="text" name="fname" value="<?php echo $user;?>"><br> 
      <br> 
      Age:<input type="text" name="lname" value="<?php echo $age;?>"><br><br> 
      <input type="submit" value="search" name="search" /> 
      <input type="submit" value="update" name="update" /> 
     </form> 
    </body> 
</html> 

答えて

0
First Name:<input type="text" name="fname" value="<?php echo $user;?>"readonly><br> 

、私の悪い、私はほんの数分でここに掲示した後にアイデアを得ました。

フィールドを「読み取り専用」モードにすると、その特定の「読み取り専用」フィールドにDB値が取得されないと考えました。

+2

私はあなたがそれが非常に安全でない解決法であることを実感していただきたいと思います。あなたのスクリプト全体は安全ではなく、言及されているわけではありません。 – icecub

+0

どの部分が正確に何をお勧めしますか? – Peter

+0

私はauth.phpファイルも持っています。 "<?phpの のsession_start(); 場合(ISSET($ _ SESSION!の[" ユーザー名 "])){ ヘッダー(" 場所:login.php "); の出口();} ?>" 私は「 – Peter

関連する問題