2014-01-12 35 views
0

所以我有設置頁面,用戶可以更新他的信息。除密碼外,所有字段均可正常工作。當用戶點擊提交時,它將密碼更新爲mysql中的任何內容。我需要的是,如果密碼字段爲空,則密碼列中不會發生任何事情。密碼字段更新爲空時,設置保存php和ajax

的settings.php

$("#save").click(function(){ 
    var id=$("#hidid").val(); 
    var fname=$("#fname").val(); 
    var flastname=$("#flastname").val(); 
    var fusername=$("#fusername").val(); 
    var femail=$("#femail").val(); 
    var floc=$("#floc").val(); 
    var fdescr=$("#fdescr").val(); 
    var fslogan=$("#ffslogan").val(); 
    var day=$("#day").val(); 
    var month=$("#month").val(); 
    var year=$("#year").val(); 

    var noldpass=$("#noldpass").val(); 
    var roldpass=$("#roldpass").val(); 

    $.ajax({ 
     url:"s/fsave.php", 
     type:"POST", 
     data:"id=" + id + "&fname=" + fname + "&flastname=" + flastname + "&fusername=" + fusername + 
     "&femail=" + femail + "&floc=" + floc + "&fdescr=" + fdescr + "&fslogan=" + fslogan + 
     "&day=" + day + "&month=" + month + "&year=" + year + "&noldpass=" + noldpass + "&roldpass=" + roldpass, 
     success:function(data){ 
      alert(data); 
      $("#sc").show(); 
     } 
    }); 
}); 

fsave.php

<?php 
include "db.php"; 

$id=$_POST['id']; 
$fname=$_POST['fname']; 
$flastname=$_POST['flastname']; 
$fusername=$_POST['fusername']; 
$femail=$_POST['femail']; 
$floc=$_POST['floc']; 
$fdescr=$_POST['fdescr']; 
$fslogan=$_POST['fslogan']; 
$day=$_POST['day']; 
$month=$_POST['month']; 
$year=$_POST['year']; 
$noldpass=$_POST['noldpass']; 
$roldpass=$_POST['roldpass']; 
$fname=mysql_real_escape_string($fname); 
$flastname=mysql_real_escape_string($flastname); 
$fusername=mysql_real_escape_string($fusername); 
$femail=mysql_real_escape_string($femail); 
$fdescr=mysql_real_escape_string($fdescr); 
$fslogan=mysql_real_escape_string($fslogan); 
$noldpass=mysql_real_escape_string($noldpass); 
$roldpass=mysql_real_escape_string($roldpass); 

if ($noldpass != $roldpass){ 
    echo "Passwords dont match!"; 
    exit(); 
}elseif ($noldpass == $roldpass){ 
    $sqlp=mysql_query("UPDATE users set password='$roldpass' where id='$id'"); 
}else{ 
    $sql=mysql_query("UPDATE users SET name='$fname',lastname='$flastname',username='$fusername',email='$femail', 
    location='$floc',bio='$fdescr',slogan='$fslogan',day='$day',month='$month',year='$year' WHERE id='$id'"); 

    if (mysql_affected_rows() == 1){ 
     echo "excellent"; 
    }else{ 
     echo mysql_error(); 
    } 
} 

?> 

回答

1

嘗試改變條件

elseif ($noldpass == $roldpass) 

elseif ($noldpass == $roldpass && trim($roldpass) != '')