2013-06-05 8 views
0

Я работаю над своим сайтом, и я пытаюсь создать страницу настроек, которая позволяет им изменять свой пароль, однако каждый раз, когда я пытаюсь изменить свой пароль, он отображает Query failed, если вы можете обнаружить проблему, это будет большой помощью;Ошибка SQL Query [Password Change]

require_once('config.php'); 
require_once('auth.php'); 


$errmsg_arr = array(); 


$errflag = false; 


$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
if(!$link) { 
    die('Failed to connect to server: ' . mysql_error()); 
} 


$db = mysql_select_db(DB_DATABASE); 
if(!$db) { 
    die("Unable to select database"); 
} 
$password = clean($_POST['password']); 
$retpassword = clean($_POST['retpassword']); 


if($password == '') { 
    $errmsg_arr[] = 'Password missing'; 
    $errflag = true; 
} 
if($retpassword == '') { 
    $errmsg_arr[] = 'Please retype your password'; 
    $errflag = true; 
} 
if(strcmp($password, $retpassword) != 0) { 
    $errmsg_arr[] = 'New passwords do not match!'; 
    $errflag = true; 
} 

//If there are input validations, redirect back to the settings page 
if($errflag) { 
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr; 
    session_write_close(); 
    header("location: settings.php"); 
    exit(); 
} 


$qry = "UPDATE members SET passwd = ".md5($_POST['password'])." WHERE member_id = ".$_SESSION['SESS_MEMBER_ID'].""; 
$result = @mysql_query($qry); 


if($result) { 
    header("location: changed.php"); 
    exit(); 
}else { 
    die("Query failed"); 
} 
?> 
+1

Используйте 'mysql_error()', чтобы узнать, что пошло не так. –

+0

@Pekka 웃 Спасибо за это! – user2331568

ответ

0

Просто выстрел в темноте, так как я не знаю, сообщение об ошибке, вместо:

$qry = "UPDATE members SET passwd = ".md5($_POST['password'])." WHERE member_id = ".$_SESSION['SESS_MEMBER_ID'].""; 

использования этого (вы забыли вложить пароль в одинарных кавычках):

$qry = "UPDATE members SET passwd = '".md5($_POST['password'])."' WHERE member_id = ".$_SESSION['SESS_MEMBER_ID'].""; 
+0

Большое вам спасибо, извините, я не знал, как эхо ошибки mysql, это сработало. =] – user2331568

+0

np, чтобы поймать ошибку, используйте что-то вроде этого '$ query = mysql_query ($ sql) или die (mysql_error());' – Stephan