2011-07-31 16 views
0

こんにちは私はときに私はパスワードの変更フィールドを追加することができますどのようにページの会員セクションでこのhttp://kramansronet.comze.com/HTML PHP MYSQLパスワード変更

登録し、すべてが

に動作しますか?

は、ここで入力する彼の現在のパスワードをユーザーに尋ねるべきメンバーのログイン

<?php include "base.php"; ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>User Management System (Tom Cameron for NetTuts)</title> 
<link rel="stylesheet" href="style.css" type="text/css" /> 
</head> 
<body> 
<div id="main"> 
<?php 
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) 
{ 
    ?> 

    <h1>Member Area</h1> 
    <p>Thanks for logging in! Your username is <b><?=$_SESSION['Username']?></b> and your email address is <b><?=$_SESSION['EmailAddress']?></b>.</p><br> 

    <h3>Account Tools:</h3> 
    Username: <?=$_SESSION['Username']?><br> 
    Password: <?=$_SESSION['password']?><br> 
    Email: <?=$_SESSION['EmailAddress']?><br> 
    Account Type: <?=$_SESSION['accounttype']?><br> 


    <ul> 

     <li><a href="logout.php">Logout.</a></li> 
    </ul> 

    <?php 
} 
elseif(!empty($_POST['username']) && !empty($_POST['password'])) 
{ 
    $username = mysql_real_escape_string($_POST['username']); 
    $password = md5(mysql_real_escape_string($_POST['password'])); 

    $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'"); 

    if(mysql_num_rows($checklogin) == 1) 
    { 
     $row = mysql_fetch_array($checklogin); 
     $email = $row['EmailAddress']; 
     $accounttype = $row['accounttype']; 

     $_SESSION['Username'] = $username; 
     $_SESSION['EmailAddress'] = $email; 
     $_SESSION['accounttype'] = $accounttype; 
     $_SESSION['LoggedIn'] = 1; 

     echo "<h1>Success</h1>"; 
     echo "<p>Please Refresh your browser to go to memeber page.</p>"; 
     echo "<meta http-equiv='refresh' content='=2;index.php' />"; 
    } 
    else 
    { 
     echo "<h1>Error</h1>"; 
     echo "<p>Sorry, your account could not be found. Please <a href=\"index.php\">click here to try again</a>.</p>"; 
    } 
} 
else 
{ 
    ?> 

    <h1>Member Login</h1> 

    <p>Thanks for visiting! Please either login below, or <a href="register.php">click here to register</a>.</p> 

    <form method="post" action="index.php" name="loginform" id="loginform"> 
    <fieldset> 
     <label for="username">Username:</label><input type="text" name="username" id="username" /><br /> 
     <label for="password">Password:</label><input type="password" name="password" id="password" /><br /> 
     <input type="submit" name="login" id="login" value="Login" /> 
    </fieldset> 
    </form> 

    <?php 
} 
?> 
</div> 
</body> 
</html> 
+0

は*にもログインしていないときに、ユーザーがそれを忘れてしまった場合には、自分のパスワードを変更する必要がありますことを考えてみましょう。 –

答えて

2

ページのための私のページで新しいパスワードを入力すると、さらに2つの入力フィールド(念のセキュリティ対策として)二回 - 再び予防措置として

これはformpasswordのフィールドを使用してinputのフィールドを使用してHTMLで行われます。

次に、PHPで、指定されたパスワードが現在ログインしているユーザー(セッションから)に属するかどうかがチェックされます。この場合、両方の新しいパスワードが一致する、つまりユーザーが入力しなかった場合、データベースはSQL UPDATEステートメントを使用して更新されます。

通常、パスワードで処理する場合、proper hashing should be usedです。

+0

こんにちはどうすればいいですか?サンプルコードを教えてください。 – user870401

+0

登録時と同じ方法です。 –

+0

はいコードをどこに置くのか分かりません。 heres私の登録コードhttp://pastebin.com/XCNdkniZ – user870401

0

登録フォームを作成している必要があります。したがって、変更するパスワードを組み込むのは非常に簡単です。メンバーの設定ページ(または何でも)に3つの入力フィールドを入力するだけです。彼らは市が言ったものです。 また、送信ボタンが必要です。フォームには「changepassword.php」のようなアクションが必要です。 3つのフィールドをすべて投稿してください。 クエリ現在のパスワードのデータベースと、それは単に一致する場合

UPDATE users SET password = '$newpass' WHERE username = '$username' 
+0

私はUPDATEユーザーを置くSET password = '$ newpass' WHERE username = '$ username'はchangepassword.phpにありますか? – user870401

+0

はい、これはmysqlクエリーであることがわかります。 PHPとMySQLについて十分な知識があるかどうかはわかりません。 –

関連する問題