2016-03-31 12 views
0

Bu şifrede kullanıcı şifresini güncellemeye çalışıyorum. SQL enjeksiyon önleme özelliği olmadığı için güvenilir olmadığını biliyorum, sadece burada öğrenmeye çalışıyorum. neyse, kodumdaki $ _request değişkenini kullanarak veritabanı sorgusu ile çalışmaz, eko ile değişkeni görüntülemek istediğimde çalışır.

PHP kodu:

$newPassword=$_POST['newPassword']; 
$confirmPassword=$_POST['confirmPassword']; 
$userID1=$_REQUEST['ID']; 
$code=$_GET['$code']; 
echo "<h1>Hello " . $userID1 . "</h1>"; 
if (isset($_GET['submit'])) 
{ 

    if($newPassword == $confirmPassword){ 

      mysql_query("UPDATE facultymember SET password='$newPassword' WHERE ID='$userID1'"); 
      $message = "Your password has been updated."; 
      } 
    else 
     { 
     $message = "New password does not equal Confirm password"; 
     } 
} 

HTML formu:

<form name="frmChange" action='newpass.php' method="GET" onSubmit="return validatePassword()"> 
    <div style="color:red;" "class="message"><?php if(isset($message)) { echo $message; } ?></div> 
    Enter a new password 
     <input type="text" name="newPassword"> 
    Re-enter the new password 
     <input type="text" name="confirmPassword"> 

    <input name="submit" type="submit" value="Save Changes"> 
</form> 
+0

'$ _REQU eklenmiştir EST ['id'] 'hiçbir değeri yoktur, çünkü hiçbir zaman –

+0

değerini ayarlamış olursunuz ve bunu echo ile görüntülediğimde değer görünür, ancak veritabanı güncellenmez –

+0

* Nerede ayarlandı? Formunda hiçbir şey yok. –

cevap

0
GET isteği yöntemi = no

$newPassword=$_POST['newPassword']; 
$confirmPassword=$_POST['confirmPassword']; 
or 
$newPassword=$_GET['newPassword']; 
$confirmPassword=$_GET['confirmPassword']; 

ve "GET" gönderiyorsunuz zaman değeri elde etmek

yanlış nesne Kimlik parametresi de