Как да стане mysql-а

obqvi_in

Registered
Имам тази част от код, която променя паролата chengepass.php:
PHP:
    if(isset($_SESSION['username']))
    {
     include "1config.php";
     $connect = mysql_connect($host, $userDB, $pass);
     mysql_select_db($bd, $connect) or die (mysql_error());
     mysql_query("SET names cp1251");
	 
	 $query = "SELECT `password` FROM `users`"; 
     $result = mysql_query($query) or die('Error, query failed 2'); 
     $row= mysql_fetch_array($result, MYSQL_ASSOC);
	 
	 ?><div class="profile">
     <a href="profile.php">Профил</a>
     </div><?php
	 
	    if(isset($_POST['change_pass']))
		{
         $old_password = md5($_POST['oldpass']);
         $new_password1 = trim($_POST['newpass1']);
		 $new_password2 = trim($_POST['newpass2']);
            if(isset($old_password) && !empty($new_password1) && !empty($new_password2))
			{
				if($new_password1 == $new_password2)
			    {
				    if(strlen($new_password1) >= 6 && strlen($new_password2) >= 6)
				    {
                        if($old_password == md5($row['password']))
					    {
				         $update = mysql_query("UPDATE `users` SET `password` = '" . md5($new_password1) . "' WHERE `password` = '{$old_password}'");
		                 echo "<br><br><center><span style='font: bold 17px tahoma; color: #104b13;'>Успешно променихте паролата си</span></center>";							
						}
						else
					    {
					     echo "<br><br><center><span style='font: bold 17px tahoma; color: #460e1b;'>Сегашната ви парола е грешна</span></center>";
					    }
					}
				    else
					{
					 echo "<br><br><center><span style='font: bold 17px tahoma; color: #460e1b;'>Новата парола е по-малко от 6 символа</span></center>";
				    }
			    }
				else
				{
				 echo "<br><br><center><span style='font: bold 17px tahoma; color: #460e1b;'>Новата парола в полето \"отново\" не съвпада с новата парола</span></center>";
				}
			}
			else
		    {
             echo "<br><br><center><span style='font: bold 17px tahoma; color: #460e1b;'>Не сте попълнили всички полета</span></center>";
            }
		}
		
     ?><br><center>
	 <form action="" method="post">
	 <table border="0" class="table-profile">
	 <tr>
	 <td class="text-profile" align="center" colspan="3">Промяна парола</td>
	 </tr>
	 <tr><td style="height: 30px;"></td></tr>
	 <tr>
	 <td align="right">Старата парола:</td><td><input type="password" name="oldpass" class="change-danni" /></td>
	 </tr>
	 <tr>
	 <td align="right">Новата парола:</td><td><input type="password" name="newpass1" class="change-danni" /></td>
	 </tr>
	  <tr>
	 <td align="right">Отново:</td><td><input type="password" name="newpass2" class="change-danni" /></td>
	 </tr>
     <tr>
	 <td></td><td align="center"><input type="submit" name="change_pass" value= "Промени" /></td><td align="right"><a href="logout.php" class="izhod">Изход</a></td>
	 </tr>
     </table>
	 </form>
	 </center><?php
       
	}
    else
    {
	 include "user.php";
    }
проблема идва от този ред : $query = "SELECT `password` FROM `users`"; където $row взима първата парола от цялата таблица, а аз искам да взима тази парола с която се е регистрирал даденият потребител в момента, но не знам как да да направя select-a. Това е заради последният if, който сравнява съществуващата парола с тази който въвеждаме в полето "старата парола".
 
Ако ти е кодирана(хеширана паролата) така трябва да работи. Е.. чак сега забелязвам колко е отвратително да имаш хиляди if(){else}{}if{}else[}

..

Въпрос? Защо не използваш тоя connection направо в config-а? Даже като гледам, май имаш 2-3 config файла, което е безсмислено.

Какъв е смисъла да криптираш паролата при проверката дали е едно към едно, като то трябва в базата данни да е криптирана(хеширана)? Или е ползвай хеширана или не. Въпрос на принципи и избор.
- по-добрия вариант криптирай + уникален salt

Както и да е.

PHP:
<?php
if(isset($_SESSION['username'])) {
	include "1config.php";
	$connect = mysql_connect($host, $userDB, $pass);
	mysql_select_db($bd, $connect) or die (mysql_error());
	mysql_query("SET names cp1251");
         
	$result = mysql_query("SELECT `password` FROM `users`") or die('Error, query failed 1');
	$row= mysql_fetch_array($result);
?>
<div class="profile"><a href="profile.php">Профил</a></div><?php
if(isset($_POST['change_pass'])) {
	$old_password = md5($_POST['oldpass']);
	$new_password1 = trim($_POST['newpass1']);
	$new_password2 = trim($_POST['newpass2']);
	if(isSet($old_password) && !empty($new_password1) && !empty($new_password2)) {
		if($new_password1 == $new_password2) {
			if(strlen($new_password1) >= 6 && strlen($new_password2) >= 6) {
				if($old_password == $row['password']) {
					mysql_query("UPDATE `users` SET `password` = '" . md5($new_password1) . "' WHERE `username` = '{$_SESSION['username']}';") or die(mysql_error());
					echo "<br><br><center><span style='font: bold 17px tahoma; color: #104b13;'>Успешно променихте паролата си</span></center>";                                                   
				} else {
					echo "<br><br><center><span style='font: bold 17px tahoma; color: #460e1b;'>Сегашната ви парола е грешна</span></center>";
				}
			} else {
				echo "<br><br><center><span style='font: bold 17px tahoma; color: #460e1b;'>Новата парола е по-малко от 6 символа</span></center>";
			}
		} else {
			echo "<br><br><center><span style='font: bold 17px tahoma; color: #460e1b;'>Новата парола в полето \"отново\" не съвпада с новата парола</span></center>";
		}
	} else {
		echo "<br><br><center><span style='font: bold 17px tahoma; color: #460e1b;'>Не сте попълнили всички полета</span></center>";
	}
}
?><br><center>
         <form action="" method="post">
         <table border="0" class="table-profile">
         <tr>
         <td class="text-profile" align="center" colspan="3">Промяна парола</td>
         </tr>
         <tr><td style="height: 30px;"></td></tr>
         <tr>
         <td align="right">Старата парола:</td><td><input type="password" name="oldpass" class="change-danni" /></td>
         </tr>
         <tr>
         <td align="right">Новата парола:</td><td><input type="password" name="newpass1" class="change-danni" /></td>
         </tr>
          <tr>
         <td align="right">Отново:</td><td><input type="password" name="newpass2" class="change-danni" /></td>
         </tr>
     <tr>
         <td></td><td align="center"><input type="submit" name="change_pass" value= "Промени" /></td><td align="right"><a href="logout.php" class="izhod">Изход</a></td>
         </tr>
     </table>
         </form>
         </center>
<?php
} else {
	include "user.php";
}
 
Това което ме по съветва не го разбрах , но това заради малките ми познания, но пък виж колко бързо изкара +1, разбира се заслужено. Благодаря ти.
 

Back
Горе