2017-05-23 1 views
0

사용자가 시스템에 로그인 한 후 사용자 프로필 업데이트를하고 있습니다. 모든 것이 좋다, 사용자 로그인 후, 사용자는 사용자 이름 등을 바꿀 수 있습니다. 그러나 문제가 있습니다. 사용자가 세부 사항을 변경하면 전체 사용자 데이터베이스 세부 사항이 변경됩니다. 로그인은 여기사용자 프로필 업데이트 오류

<?php 


     $connect = new mysqli("localhost","root","","tenantsdb"); 

    $submit = isset($_POST['submit']); 

    if($submit) 
    { 
     $uname = $_POST['uname']; 
     $psw = $_POST['psw']; 
    } 
$get = mysqli_query($connect, "SELECT * FROM tenantsignup WHERE uname 
='$uname' AND psw ='$psw'"); 
$get2 = mysqli_fetch_assoc($get); 
$id = $get2['id']; 
$num = mysqli_num_rows($get); 

if($num==1) 
{ 
    header("location:q1.php?id=$id"); 
} 

else 
{ 
    echo"this username doesnt exsts"; 
} 
?> 

코딩 데이터베이스에 연결되고 여기에

<form class="modal-content animate" action="qcon.php" method="POST"> 
<div class="imgcontainer"> 
    <span onclick="document.getElementById('id01').style.display='none'" 
class="close" title="Close Modal">&times;</span> 
    <img src="download.png" alt="Avatar" class="avatar"> 
</div> 

<div class="container"> 
    <label><b>Username</b></label> 
    <input type="text" placeholder="Enter Username" name="uname" required> 

    <label><b>Password</b></label> 
    <input type="password" placeholder="Enter Password" name="psw" required> 

    <button type="submit">Login</button> 
    <input type="checkbox" checked="checked" name ="submit"> Remember me 
    </div> 

코딩되어 여기 내 페이지는 여기

를 코딩되는 사용자 로그인 후

<div class = "col-md-6"> 
<div class = "panel panel-default"> 
    <div class = "panel-body"> 

    <?php 
    global $conn; 
    $servername = "localhost"; //host name 
    $username = "root"; //username 
    $password = ""; //password 
    $mysqli_database = "tenantsdb"; //database name 

    //mysqli prepared statement 

    $conn = mysqli_connect($servername, $username, $password, 
    $mysqli_database) or die("Connection failed: " . 
    mysqli_connect_error()); 

    mysqli_select_db($conn,$mysqli_database) or die("Opps some thing went 
    wrong"); 
    $id = $_REQUEST['id']; 

    $sql = mysqli_query($conn,"SELECT * FROM tenantsignup WHERE id 
    ='$id'"); 
    $get3 = mysqli_fetch_assoc($sql); 

    if(isset($_POST['update'])){ 

     $uname = $_POST['uname']; 
     $psw = $_POST['psw']; 
     $name = $_POST['name']; 
     $email = $_POST['email']; 
     $contact_no = $_POST['contact_no']; 
     $area = $_POST['area']; 
     $gender = $_POST['gender']; 
     $age = $_POST['age']; 
     $max_budget = $_POST['max_budget']; 
     $staying_with = $_POST['staying_with']; 
     $race = $_POST['race']; 

     $result = mysqli_query($conn,"UPDATE tenantsignup set 
     uname='$uname',psw='$psw',name='$name', 
     email='$email',contact_no='$contact_no',area='$area', 
     gender='$gender',age='$age',max_budget='$max_budget', 
     staying_with='$staying_with',race='$race'"); 

     if($result){ 

     echo 'Success!'; 

     }else{ 

     echo 'failed'; 

     } 
    } 
    ?> 

    <form action ="q1.php" method="POST"> 
    <div class = "form-group"> 
     <label for ="id">ID</label> 
     <input type="text" class ="form-control" id="id" name="id" value="<? 
     php echo $id;?>"> 
    </div> 
    <div class = "form-group"> 
     <label for ="uname">Username</label> 
     <input type="text" class ="form-control" id="uname" 
     name="uname"value="<?php echo $uname;?>" > 
    </div> 
    <div class = "form-group"> 
     <label for ="psw">Password</label> 
     <input type="text" class ="form-control" id="psw" name="psw"value=" 
     <?php echo $psw;?>" > 
    </div> 
    <div class = "form-group"> 
     <label for ="name">Name</label> 
     <input type="text" class ="form-control" id="name" 
     name="name"value="<?php echo $name;?>" > 
    </div> 
    <div class = "form-group"> 
     <label for ="email">Email</label> 
     <input type="text" class ="form-control" id="email" 
     name="email"value="<?php echo $email;?>" > 
    </div> 
    <div class = "form-group"> 
     <label for ="contact_no">Contact No</label> 
     <input type="text" class ="form-control" id="contact_no" 
     name="contact_no"value="<?php echo $contact_no;?>" > 
    </div> 
    <div class = "form-group"> 
     <label for ="area">Area</label> 
     <input type="text" class ="form-control" id="area" 
     name="area"value="<?php echo $area;?>" > 
    </div> 
    <div class = "form-group"> 
     <label for ="gender">Gender</label> 
     <input type="text" class ="form-control" id="gender" 
     name="gender"value="<?php echo $gender;?>" > 
    </div> 
    <div class = "form-group"> 
     <label for ="age">Age</label> 
     <input type="text" class ="form-control" id="age" name="age"value=" 
     <?php echo $age;?>" > 
    </div> 
    <div class = "form-group"> 
     <label for ="max_budget">Max Budget</label> 
     <input type="text" class ="form-control" id="max_budget" 
    name="max_budget"value="<?php echo $max_budget;?>" > 
    </div> 
    <div class = "form-group"> 
     <label for ="staying_with">Staying With</label> 
     <input type="text" class ="form-control" id="staying_with" 
    name="staying_with" value="<?php echo $staying_with;?>" > 
    </div> 
    <div class = "form-group"> 
     <label for ="race">Race</label> 
     <input type="text" class ="form-control" id="race" 
    name="race"value="<?php echo $race;?>" > 
    </div> 

    <button type="submit" name="update">Update</button> 
    </form> 
+0

업데이트 쿼리에 조건을 추가해야합니다. 사용자 테이블에 ID 또는 고유 필드가 있습니까? –

+0

귀하의 인수 기록에 의문의 여지가 있습니다. –

+0

'$ submit = isset ($ _ POST [ 'submit']); 이것은 항상 설정된 것으로 간주됩니다. –

답변

0

당신 UPDATE 쿼리에 WHERE 절을 추가해야합니다.

$result = mysqli_query($conn,"UPDATE tenantsignup set 
     uname='$uname',psw='$psw',name='$name', 
     email='$email',contact_no='$contact_no',area='$area', 
     gender='$gender',age='$age',max_budget='$max_budget', 
     staying_with='$staying_with',race='$race' WHERE id='$id'"); 
+0

thx, @ChrisD ... 작동 중입니다 :) 그리고 내 게시물에서 추천 해 주신 모든 분들께 감사 드리며 SQL injection에 집중하겠습니다.) ... 감사합니다. 좋은 하루 되세요. –

0

WHERE을 추가해야합니다.

$result = mysqli_query($conn,"UPDATE tenantsignup set 
     uname='$uname',psw='$psw',name='$name', 
     email='$email',contact_no='$contact_no',area='$area', 
     gender='$gender',age='$age',max_budget='$max_budget', 
     staying_with='$staying_with',race='$race' WHERE id=$id"); 

참고로 쿼리를 교체 : 데이터를 업데이트하기 위해하지 않는 안전한 방법입니다. pdo 또는 prepared statement를 사용해야합니다.

관련 문제