Собственно код
<?php
if (!defined('SECURITY_KEY')) {
header("HTTP/1.1 404 Not Found");
exit(file_get_contents('../404.html'));
}
if(empty($_SESSION['login']) && empty($_SESSION['password'])){
header("Location:?page=auth");
}
$title = 'Смена пароля';
$login = $_SESSION['login'];
include_once './libs/mysql.php';
//Nazhata li knopka
if($change_ok) {
$change_new = hashPass($change_new);
$change_new2 = hashPass($change_new2);
$change_old = hashPass($change_old);
if ($change_old !== $_SESSION['password']) {
$error[] = 'Неправильный старый пароль';
}
if ($change_new !== $change_new2) {
$error[] = 'Новый пароль не совпадает с подтвержденным';
}
if (is_array($error)) {
echo "<p class='error'> ";
foreach ($error as $err) {
echo $err.'<br />';
}
echo '</p>';
}
//Oshibok net? idem daljshe
else {
$q = ("
UPDATE users
SET password = $change_new
WHERE login = '$login'"
);
if ($q) {
echo "succ <br>";
}
else {
echo "fail";
}
}
}
?>
<form action="" method="post" >
<table border="0" width="400px">
<tr>
<td valign="top" width="47%">
Старый пароль *:
</td>
<td>
<input type="password" name="value18" maxlength="20" />
</td>
</tr>
<tr>
<td valign="top" width="47%">
Новый пароль *:
</td>
<td>
<input type="password" name="value19" maxlength="20" />
</td>
</tr>
<tr>
<td valign="top" width="47%">
Повторите новый пароль *:
</td>
<td>
<input type="password" name="value20" maxlength="20" />
</td>
</tr>
</table>
<input type="submit" name="change_ok" value="Сменить" class="button" />
</form>
Спустя 5 минут, 8 секунд (6.10.2010 - 11:10) Michael написал(а):
база - mysql ? тогда:
$q = "
UPDATE users
SET password = $change_new
WHERE login = '$login'";
$res = mysql_query($q);
if ($res && (mysql_affected_rows() == 1)) {
// изменен
}
// ...
Спустя 5 минут, 45 секунд (6.10.2010 - 11:16) linker написал(а):
Только
$q = "UPDATE users "$change_new в одинарные кавычки.
. "SET password = '$change_new' "
. "WHERE login = '$login'";
Спустя 9 минут, 15 секунд (6.10.2010 - 11:25) forza написал(а):
Michael , linker не помогло
Спустя 1 минута, 50 секунд (6.10.2010 - 11:27) forza написал(а):
$q = "
UPDATE users
SET password = $change_new
WHERE login = '$login'";
$res = mysql_query($q);
if ($res && (mysql_affected_rows() == 1)) {
echo "succ";
}
else {
echo "fail";
}
Выводит Файл
Спустя 51 минута, 50 секунд (6.10.2010 - 12:19) linker написал(а):
$q = "...";Увидишь текст запроса, поймешь в чем ошибка.
echo $q;
Спустя 11 минут, 20 секунд (6.10.2010 - 12:30) forza написал(а):
UPDATE users SET password = 'b44ce5d89fcbd838ef9dfd4132fdee5f20pMk' WHERE login = 'andrej'
А в столбике "андрей" ничего не изменилось. Андрей 1
UPDATE users SET password = 'peet' WHERE login='andrej'
Через SQL запрос, все работает
Спустя 28 минут, 35 секунд (6.10.2010 - 12:59) forza написал(а):
$q = "UPDATE users SET password = 'b44ce5d89fcbd838ef9dfd4132fdee5f20pMk' WHERE login = 'andrej'";
ввыдоит "ку" равное = UPDATE users SET password = 'b44ce5d89fcbd838ef9dfd4132fdee5f20pMk' WHERE login = 'andrej'
Но в базе данных ничего не изменилось. Теперь, если туда вставить SQL запрос (результат "ку")
UPDATE users SET password = 'b44ce5d89fcbd838ef9dfd4132fdee5f20pMk' WHERE login = 'andrej'
то все меняется и работает.
Спустя 2 минуты, 6 секунд (6.10.2010 - 13:01) arvitaly написал(а):
Вы случайно не один и тот же пароль вводите?
Спустя 1 минута, 57 секунд (6.10.2010 - 13:03) Xpund написал(а):
$q = ("
UPDATE users
SET password = '".$change_new."'
WHERE login = '$login'"
);
Спустя 3 минуты, 9 секунд (6.10.2010 - 13:06) linker написал(а):
echo "Новый пароль : " . $change_new . "<br>Старый пароль : " . $change_old;Посмотри, может ошибка именно в том, что старый пароль равен новому, тогда никакого апдейта не произойдет. И вообще не понятно откуда берутся $change_new, $change_old.
Спустя 5 минут, 39 секунд (6.10.2010 - 13:12) forza написал(а):
Старый и новый пароль не равны.
Спустя 10 минут, 45 секунд (6.10.2010 - 13:22) forza написал(а):
//Smena parolja
$change_ok = !empty($_REQUEST['change_ok']) ? $_REQUEST['change_ok'] : NULL;
$change_old = !empty($_REQUEST['value18']) ? trim($_REQUEST['value18']) : NULL;
$change_new = !empty($_REQUEST['value19']) ? trim($_REQUEST['value19']) : NULL;
$change_new2 = !empty($_REQUEST['value20']) ? trim($_REQUEST['value20']) : NULL;
Вот откуда
Спустя 2 минуты, 55 секунд (6.10.2010 - 13:25) inpost написал(а):
$login = "andrej";
$newpass = "abrabra";
$result = msql_query("SELECT * FROM `users` WHERE `login`='".$login."'");
$myrow = mysql_frech_assoc($result);
echo $myrow['login'].$myrow['password'];
$result = mysql_query("UPDATE `users` SET `password`='".$newpass."' WHERE `login`='".$login."'");
if($result==true)
{
echo "<br>Все прошло успешно<br>";
}
else
{
echo "ОШИБКА В НАЗВАНИИ ПОЛЕЙ";
}
$result = msql_query("SELECT * FROM `users` WHERE `login`='".$login."'");
$myrow = mysql_frech_assoc($result);
echo $myrow['login'].$myrow['password'];
Запусти на проверку! Все само найдется.
Спустя 2 минуты, 37 секунд (6.10.2010 - 13:28) linker написал(а):
$q = "UPDATE users "
. "SET password = '$change_new' "
. "WHERE login = '$login'";
$res = mysql_query($q) or die("Ошибка запроса");
if (mysql_affected_rows() > 0))
echo "succ";
else
echo "fail";
Спустя 1 минута, 52 секунды (6.10.2010 - 13:30) forza написал(а):
Самое интересное. Допустим ,ладно. у меня что то не работает с паролями, но Бог с ними, тогда я вставил
и у меня поле city не изменилось.
$q вернула "succ"
SET city = 'moscow'
и у меня поле city не изменилось.
$q = ("
UPDATE users
SET password = '".$change_new."'
WHERE login='".$_SESSION['login']."'"
);
echo $q."<br>";
if ($q) {
echo "succ <br>";
}
else {
echo "fail";
}
$q вернула "succ"
Спустя 2 минуты, 41 секунда (6.10.2010 - 13:32) inpost написал(а):
forza
Запусти мою проверку. Выведи результаты сюда.
Запусти мою проверку. Выведи результаты сюда.
Спустя 1 минута, 37 секунд (6.10.2010 - 13:34) arvitaly написал(а):
Ну правильно вы проверяете, пустая ли у вас переменная $q - а она не пустая
Спустя 5 минут, 35 секунд (6.10.2010 - 13:40) forza написал(а):
$q = "UPDATE users "
. "SET password = '$change_new' "
. "WHERE login = '$_SESSION[login]'";
с таким запросом все прошло!
Почему тогда с моим не проходило ?
$q = "UPDATE users SET password = '$change_new' WHERE login = '$login'";
Синтакстическая ошибка в запросе? Если да, то покажите где, а то у меня есть еще один файл, там тоже есть УПДАТЕ, но он работает хорошо.
Спустя 2 минуты, 9 секунд (6.10.2010 - 13:42) inpost написал(а):
forza
...мой умеешь читать коммент? Там написано, как правильно UPDATE делать, и апострофы правильно стоят, всё как надо.
...мой умеешь читать коммент? Там написано, как правильно UPDATE делать, и апострофы правильно стоят, всё как надо.
Спустя 2 минуты, 43 секунды (6.10.2010 - 13:44) forza написал(а):
да да, прочитал ваш комент.
_____________
Заработок для веб-разработчиков: CodeCanyon
Мое Портфолио