سلام
من برای پروژم نیاز دارم به فرم تغییر رمز عبور برای کاربر . خودم انجام دادم ولی نمی دونم چرا کار نمی کنه لطفا کمکم کنید مرسی
Printable View
سلام
من برای پروژم نیاز دارم به فرم تغییر رمز عبور برای کاربر . خودم انجام دادم ولی نمی دونم چرا کار نمی کنه لطفا کمکم کنید مرسی
سلام
باید یه فرم با html بسازی که سه تا فیلد داشته باشه که یکیش فرم جاری و دوتا هم فرم جدیدشو از کاربر بگیره بعد مقادیر از طریق فرم به یک صفحه php ارسال میشه که اونجا باید چک بشه و بعد از طریق کوئری update میتونی رمز رو تو بانک تغییر بدی.
اگه کداشو نوشتی بزار تا ببینیم مشکلش چیه؟
[PHP]
<?php
require './includes/init.inc.php';
include './template/head.tpl.php';
if (isset($_REQUEST['userName'])&& (!empty($_REQUEST['password']) && !empty($_REQUEST['newpassword']))){
$userName =$_REQUEST['userName'];
$password = $_REQUEST['password'];
$newpassword = $_REQUEST['newpassword'];
$confirmnewpassword = $_REQUEST['confirmnewpassword'];
$result = "SELECT password FROM user WHERE userName='$userName'";
if(!$result){
echo "نام کاربری وارد شده وجود ندارد!";
}
else
if($password != mysql_result($result, 0)){
echo "رمز عبور اشتباه وارد شده است.";
}
if($newpassword == $confirmnewpassword){
$sql ="UPDATE user SET password = '$newpassword' WHERE userName='$userName'";
}
if(!$sql){
echo "تغییر رمز عبور موفقیت آمیز بود!";
}
else{
echo "رمز عبور جدید و تکرار رمز عبور باید یکسان باشد!";
}
}
?>
<form action ="" method="post">
<table border="1" align="center" width="600" style="border-collapse:collapse" bordercolor="#333333">
<tr bgcolor="#006683"><td height="30"><font color="#FFFFFF"><font size="4" face="B Davat"> تغییر رمز عبور </font></td></tr>
<tr><td>
<br>
<table border="0" align="center">
<tr align="right">
<td><font size="4" face="B Davat">کلمه عبور فعلی</td>
<td> : </td>
<td> <input type="text" name="password"></td>
</tr>
<tr align="right">
<td width="110"><font size="4" face="B Davat"> کلمه عبور جدید </td>
<td> : </td>
<td> <input type="password" name="newpassword"></td>
</tr>
<tr align="right">
<td width="120"><font size="4" face="B Davat"> تکرار کلمه عبور جدید </td>
<td> : </td>
<td> <input type="password" name="confirmnewpassword"></td>
</tr>
<tr>
<td><input type="submit" value="ثبت رمز عبور جدید" style=" width:120"></td>
</tr>
</table></td></tr>
</table>
</form>
<?php
include './template/tail.tpl.php';
?>
[/PHP]
شما بهتره مقادیر فرمتون رو با متد post که فرستادید همانطوری هم دریافت کنید
بعدش شما دستور update خودتون را باید با mysql_query اجرا هم میکردید
[PHP]
$userName =$_REQUEST['userName'];
$new_passwd = $_POST['newpassword'];
$new_passwd2 = $_POST['confirmnewpassword'];
$old_passwd = $_POST['password'];
if ($new_passwd!=$new_passwd2)
echo 'کلمات عبور وارد شده یکسان نیست. رمز عبور تغییر نکرده است.';
else if (strlen($new_passwd)>16 || strlen($new_passwd)<6)
echo 'رمز عبور باید بین 6 تا 16 کاراکتر باشد.لطفا دوباره سعی کنید.';
else
{
// به روزرسانی
$result = mysql_query("UPDATE user SET password = '$new_passwd' WHERE userName='$userName'");
if ($result)
echo 'رمز عبور تغییر یافت.';
else
echo 'رمز عبور تغییر نکرد.';
}
[/PHP]
من حتی برات تعداد کاراکترهای مجاز برای رمز عبور رو هم مشخص کردم.موفق باشی
سلام
مرسی بابت کدی که فرستادید ولی بازم هم جواب نمی ده نمی دونم چه مشکلی داره هیچ پیغامی هم نمی ده نه error نه پیغام هایی که تو برنامه خودم و شما نوشته شده
این کدی که من نوشتم من تو سایتهایی که طراحی میکنم استفاده میکنم و کار میکنه
شما چطوری username کاربر رو بگیرید؟ معمولا از طریق session اینکارو میکنن ولی من تو کداتون ندیدم session استارت کنید پس گه از سشن استفاده کردی قبل از همه کدهایی که نوشتی یعنی خط 1 این کدو بنویس:
[PHP]
session_start();
[/PHP]
بعدش چرا فایلهایی که include کردی دوتا پسوند دارن این هم استاندارد نیستش یا باید inc باشن یا php
من برای کاربر این کد ها رو نوشتم . یه کلاس php رفتم که اینطوری یاد دادن من هم نوشتم اولین بار هست که دارم طراحی سایت کار می کنم نمی دونم باید چیکارش کنم session_start(); هم نوشتم حالا با استفاده از این دو تا صفحه کد می تونید کمکم کنید! مرسی
[PHP]
<?php
function login($userName, $password) {
$query = "SELECT * FROM user WHERE userName='$userName' AND password='$password'";
$result = mysql_query($query);
mysqlCheckResult($result);
if (mysql_num_rows($result) == 1) {
$user = mysql_fetch_assoc($result);
setLoginSession($user);
return true;
} else {
return false;
}
}
function isLogin() {
if (isset($_SESSION['userId']) && !empty($_SESSION['userId'])) {
return true;
} else {
return false;
}
}
function getLoginUserName(){
return $_SESSION['userName'];
}
function setLoginSession($user) {
$_SESSION['userId'] = $user['id'];
$_SESSION['userName'] = $user['name'];
}
function clearSession() {
unset($_SESSION['userId']);
unset($_SESSION['userName']);
}
function logout() {
clearSession();
}
function userRegister($name, $userName, $password) {
$query = "INSERT INTO user SET name='$name',userName='$userName',password='$passw ord'";
$result = mysql_query($query);
if ($result == false) {
if (mysql_errno() == 1062) {
return false;
} else {
mysqlCheckResult($result);
throw new Exception("Error", mysql_errno());
}
} else {
return true;
}
}
[/PHP]
بذار یه حالی بهت بدم
این کد من برا اکسس است
دیگه خودت زحمت تبدیلشو بکش
برای صفحه اول
کد:echo"<br>
<center><h4>تغيير کلمه عبور</h4><br>
<form action=\"address\" method=\"post\">
<p><font face=\"Arial\"><input type=\"username\" name=\"oldpas\" size=\"30\"><b><span lang=\"fa\">
:کلمه عبور فعلي</span></font></p>
<p><font face=\"Arial\"><input type=\"password\" name=\"npas1\" size=\"30\"><b><span lang=\"fa\">
: کلمه عبور </span><br></font></p>
<p><font face=\"Arial\"><input type=\"password\" name=\"npas2\" size=\"30\"><b><span lang=\"fa\">
:تکرار کلمه عبور </span><br></font></p>
<input type=\"submit\" value=\"تغيير\"></form>
</center>";
برنامه واسه تو که تازه کاری یکم سخته چون با توابع نوشته شده و باید توابع رو فراخوانی کنی ولی من واست یه کد نوشتم و تست هم کردم جواب میده
فقط شما باید اون فایلی که توابع توش نوشتی هم به صفحه include کنی تا مقدار متغیر session که همون نام کاربری هست به صفحه ارسال بشه
نام بانک هم من nima گزاشتم تو باید نام بانک خودتو بزاری
[PHP]
<?php
session_start();
getLoginUserName();
if (isset($_POST['submit'])){
if ($_POST['password'] == '' || $_POST['newpassword'] == '' || $_POST['confirmnewpassword'] == '')
echo '<p align="center" style="color:orange">فیلدهای فرم نمی تواند خالی باشند!</p>';
else
{
$userName =$_SESSION['userName'];
$password = $_POST['password'];
$newpassword = $_POST['newpassword'];
$confirmnewpassword = $_POST['confirmnewpassword'];
$link=mysql_connect('localhost','root','') or die ('coul not connect to mysql server:'.mysql_error());
mysql_select_db('nima',$link) or die ('could not select to db:'.mysql_error());
$r=mysql_query("select password from user where password='$password'") or die ('can not execute to query:'.mysql_error());
$n=mysql_num_rows($r);
if ($n == 0)
{
echo '<p align="center" style="color:red">رمز عبور اشتباه وارد شده است.</p>';
}
elseif ($newpassword == $confirmnewpassword )
{
$r2=mysql_query("UPDATE user SET password = '$newpassword' WHERE userName='$userName'") or die ('can not execute to query:'.mysql_error());
echo '<p align="center" style="color:green">رمز عبور با موفقیت تغییر کرد.</p>';
}
else
{
echo '<p align="center" style="color:orange">رمز عبور جدید و تکرار رمز عبور باید یکسان باشد.</p>';
}
mysql_close($link);
}
}
?>
<!DOCTYPE HTML>
<head>
<meta http-equiv="content-type" content="text/html" />
<meta name="author" content="micro" />
<meta charset="utf-8" />
<title>تغییر رمز عبور کاربر</title>
</head>
<body dir="rtl">
<form action ="" method="post">
<table border="1" align="center" width="600" style="border-collapse:collapse" bordercolor="#333333">
<tr bgcolor="#006683"><td height="30"><font color="#FFFFFF"><font size="4" face="B Davat"> تغییر رمز عبور </font></td></tr>
<tr><td>
<br>
<table border="0" align="center">
<tr align="right">
<td><font size="4" face="B Davat">کلمه عبور فعلی</td>
<td> : </td>
<td> <input type="text" name="password"></td>
</tr>
<tr align="right">
<td width="110"><font size="4" face="B Davat"> کلمه عبور جدید </td>
<td> : </td>
<td> <input type="password" name="newpassword"></td>
</tr>
<tr align="right">
<td width="120"><font size="4" face="B Davat"> تکرار کلمه عبور جدید </td>
<td> : </td>
<td> <input type="password" name="confirmnewpassword"></td>
</tr>
<tr>
<td><input type="submit" value="ثبت رمز عبور جدید" style=" width:120" name="submit" ></td>
</tr>
</table></td></tr>
</table>
</form>
</body>
</html>
[/PHP]
ببخشید اینجاش برا اکسسه
کد برا صفحه دوم
یعنی کد اصلی
کد:$op=$_POST['oldpas'];
$p1=$_POST['npas1'];
$p2=$_POST['npas2'];
if ($p!=$op){
echo"کلمه عبور خود را درست وارد کنيد<BR>";
echo"<br>
<center><h4>تغيير کلمه عبور</h4><br>
<form action=\"address\" align=\"rtl\" method=\"post\">
کلمه عبور قديم: <input type=\"password\" name=\"oldpas\"><br><br>
کلمه عبور جديد: <input type=\"password\" name=\"npas1\"><br>
از نو: <input type=\"password\" name=\"npas2\"><br>
<input type=\"reset\" value=\"خالي کردن فيلدها\">
<input type=\"submit\" value=\"تغيير\">
</form><center>";}
else if ($p1!=$p2){
echo"لطفا در هنگام ورود کلمه عبور جديد دقت کنيد";
echo"<br>
<center><h4>تغيير کلمه عبور</h4><br>
<form action=\"http://127.0.0.1/pass.php\" align=\"rtl\" method=\"post\">
کلمه عبور قديم: <input type=\"password\" name=\"oldpas\"><br><br>
کلمه عبور جديد: <input type=\"password\" name=\"npas1\"><br>
<font > از نو: <input type=\"password\" name=\"npas2\"><br>
<input type=\"reset\" value=\"خالي کردن فيلدها\">
<input type=\"submit\" value=\"تغيير\">
</font></form><center>";}
else{
$q="select * from private where stid='$u'";
$r= odbc_exec($con,$q);
$p="update private set password='$p1' where stid='$u'";
$r= odbc_exec($con,$p);
if ($r)
echo"<center>کلمه عبور تغيير يافت</center>";
else
echo"<center>خطا! لطفا دوباره امتحان کنيد</center>";
}