PDA

View Full Version : مشکل در فرم تغییر رمز عبور



mozhgan11111
شنبه 19 اردیبهشت 1394, 16:10 عصر
با سلام ..
درفرم تغییر رمز عبور میخوام رمز جدید وارد شده با تکرارش یکی باشه . برای اینکار از کد جاوا اسکریپت استفاده کردم ولی کار نکرد . اگه میشه کمکم کنید با php انجامش بدم .

کد فرم changepass.php با جاوا اسکریپت نوشتم
<script language="javascript">
function sendform()
{
var p=document.getElementById('pass').value;
var np=document.getElementById('newpass').value;
var rnp=document.getElementById('renewpass').value;
if ((p=="")||(np==""))
{
alert ('فرم را تکمیل کنید');
}
else if (rnp!=np)
{
alert('رمز عبور جدید با تکرار آن برابر نیست');
}
else
changepass.submit();
}
</script>
//////////////////////////////

کد فرم savepass.php

<?php
require_once("connection.php");
session_start();
if(isset($_POST['pass']))
{
$ps=$_POST['pass'];
$newps=$_POST['repass'];
$renewpass=$_POST['renewpass'];
$username=$_SESSION['user'];

$query="SELECT `id_u`, `name`, `user`, `pass` , `id_ut` FROM `user` WHERE `pass`='$ps' and `user`='$user'";
$run=mysql_query($query);
if(mysql_fetch_assoc($run))
{
mysql_query("update user set pass ='$newps' where user='$username'");
print (Redirect('changepass.php?ok'));
}
else
print (Redirect('changepass.php?nok'));
}
?>

اگه میشه کمکم کنید کاملش کنم

hamedarian2009
شنبه 19 اردیبهشت 1394, 16:36 عصر
سلام جاوا اسکریپتش درسته فقط کافیه تابع sendform رو به رویداد کلیک دکمه فرمتون بدید


<form action="savepass.php" method="post">
<input type="password" name="pass" id="pass"> <br>
<input type="password" name="newpass" id="newpass"> <br>
<input type="password" name="renewpass" id="renewpass"> <br>
<input type="submit" value="Submit" onclick="sendform();">
</form>
<script language="javascript">
function sendform()
{
var p=document.getElementById('pass').value;
var np=document.getElementById('newpass').value;
var rnp=document.getElementById('renewpass').value;
if ((p=="")||(np==""))
{
alert('فرم را تکمیل کنید');
}
else if (rnp!=np)
{
alert('رمز عبور جدید با تکرار آن برابر نیست');
}
else
changepass.submit();
}
</script>


البته باید سمت سرور هم اینکارو انجام بدین توی PHP کافیه مثل همون جاوا اسکریپت عمل کنید :


if($newps == $renewpass) {
//ادامه کار
} else {
//نمایش پیغام خطا
}

mozhgan11111
شنبه 19 اردیبهشت 1394, 17:10 عصر
سلام جاوا اسکریپتش درسته فقط کافیه تابع sendform رو به رویداد کلیک دکمه فرمتون بدید


<form action="savepass.php" method="post">
<input type="password" name="pass" id="pass"> <br>
<input type="password" name="newpass" id="newpass"> <br>
<input type="password" name="renewpass" id="renewpass"> <br>
<input type="submit" value="Submit" onclick="sendform();">
</form>
<script language="javascript">
function sendform()
{
var p=document.getElementById('pass').value;
var np=document.getElementById('newpass').value;
var rnp=document.getElementById('renewpass').value;
if ((p=="")||(np==""))
{
alert('فرم را تکمیل کنید');
}
else if (rnp!=np)
{
alert('رمز عبور جدید با تکرار آن برابر نیست');
}
else
changepass.submit();
}
</script>


البته باید سمت سرور هم اینکارو انجام بدین توی PHP کافیه مثل همون جاوا اسکریپت عمل کنید :


if($newps == $renewpass) {
//ادامه کار
} else {
//نمایش پیغام خطا
}





این کارو کردم که به رویداد دکمه بدم ولی کار نمیکنه

hamedarian2009
شنبه 19 اردیبهشت 1394, 18:00 عصر
من تست کردم مشکلی نداشت حواستون باشه باید کد جاوا اسکریپت زیر فرم باشه اگه نه قسمت کدهای html خودتون رو قرار بدین