Премини към съдържанието

Препоръчан отговор


Решили ли сте си проблема ?

Не просто никои не ми отговори и реших че няма смисъл да държа темата ето за какво ставаше на въпрос:

използвам този скрипт за промяна на парола но се появи следния проблем казва ми грешна сегашна парола дори когато паролата в базата с данни е така и се чудя откъде идва проблема на мен всичко ми изглежда наред но явно имам някъде грешка която немога да открия дано някои помогне Благодаря ви!!!!

 

ето го и скрипта:

<?php if($_POST['changepassword']) {$oldpasss = $_POST['oldpasss'];$oldpasss = pvpgn_hash($oldpasss);$password = $_POST['passwordd'];$cpassword = $_POST['cpassword'];if($password != $cpassword) {echo "<div class='error'>Паролите не съвпадат</div>";}else{$password = pvpgn_hash($password);$email = addslashes(htmlspecialchars($_POST['email']));$user = addslashes(htmlspecialchars($_POST['users']));if($user == NULL ||$oldpass == NULL ||$password == NULL ||$cpassword== NULL || $email == NULL){echo "<div class='error'>Съжалявам, но не сте попълнили всички полета</div>";}else{$res = mysql_query("SELECT * FROM `pvpgn_BNET` WHERE acct_username='$username'");$row = mysql_fetch_assoc($res);if($oldpass != $row['password']){ echo "<div class='error'>Грешна сегашна парола</div>";}else{$nq = "UPDATE `BNET` SET acct_passhash1='$password' WHEREacct_email='$email' AND acct_passhash1='$oldpasss'";$nr = mysqll_queryy($nr);echo "<div class='success'>Вие успешно си променихте вашата паролатана $_POST[passwordd].</div>";}}}?>
Редактирано от qvor16 (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Че кой да ти отговори, когато премълчаваш два файла.

pvpgn_hash.php и дъмпа на базата.

 

Още повече, това е класически гомнокод и без право на сърдене.

 

Първо

 if($_POST['changepassword'])

$_POST се проверява на empty и isset.

 

Второ

$oldpass = $_POST['oldpass'];$oldpass = pvpgn_hash($oldpass);$password = $_POST['password'];$cpassword = $_POST['cpassword'];

това еднообразие плаче за функция, която да връща филтриран резултат.

 

Трето

$email = addslashes(htmlspecialchars($_POST['email']));

това е супер тъпо. Първата функция е стара, втората е безсмислена.

 

Четвърто

if($user == NULL ||$oldpass == NULL ||$password == NULL ||$cpassword== NULL || $email == NULL)

да караш сървъра да прави подобна проверка, значи че не жалиш магарето си. За какво е JS?

 

Пето

 echo "<div class='error'>Грешна сегашна парола</div>";}else{$nq = "UPDATE `pvpgn_BNET` SET acct_passhash1='$password' WHEREacct_email='$email' AND acct_passhash1='$oldpass'";$nr = mysql_query($nq);echo "<div class='success'>Вие успешно си променихте вашата паролатана $_POST[password].</div>";

Явно ти предстои да откриеш топлата вода, но добри чичковци отдавна са измислили велосипед MVC.

 

нищо лично

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
$res = mysql_query("SELECT * FROM `pvpgn_BNET` WHERE acct_username='$user'");$row = mysql_fetch_assoc($res);if($oldpass != $row['password']){ echo "<div class='error'>Грешна сегашна парола</div>";}else{$nq = "UPDATE `pvpgn_BNET` SET acct_passhash1='$password' WHEREacct_email='$email' AND acct_passhash1='$oldpass'";

При SELECT и при UPDATE викаш различни полета за паролата от таблицата.


  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
if($oldpass != $row['acct_passhash1']){

^ Значи така трябва да се направи в кода от пост #3.

 

Да така се получи благодаря ви много !!!

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.