powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Пишу форму для смены пароля, есть вопросы
3 сообщений из 3, страница 1 из 1
Пишу форму для смены пароля, есть вопросы
    #38703075
Dadont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
<?
header('Content-type: text/html; charset=utf-8'); 
include 'conn.php';//Данные для подключения к БД
if (!$_GET['hash']) { //Если нет хеш кода, то отправляем на фиг
header("Location: /index.php");
}
$hash=CheckUserData($_GET['hash']); //Если есть, проверяем на мусор
if ($_POST['npass']) //Если указали новый пароль
{
$npass=CheckUserData($_POST['npass']);//проверяем
//обновляем пароль в базе
$str="update users set pass='$npass', hash='', user_status = 1 where hash = '$hash'";
$result = mysql_query($str, $db);
echo "<script>alert ('Set new password!');</script>";
echo "Set new password!";
//отправляем на начальную страницу
echo "<meta http-equiv='Refresh' content='0; url=index.php'>";
exit();
}
//проверяем наличие хеша в БД
$result = mysql_query("select id, login from users where hash = '$hash'", $db);
$myrow = mysql_fetch_array ($result);
//если есть, то выгоняем форму для смены пароля
if (!empty($myrow[id])){

print<<<HERE

<html>
    <head>
    <title>New password</title>
	<script>
	function check(a){
		for (i=0;i<2;i++){
		if (a.elements[i].value==''){
			alert ("Enter password!");
			a.elements[i].focus();
			return false;
			}
	}
	var npass=a.elements[0].value;
	var nspass=a.elements[1].value;
	if (npass != nspass){
		alert ("Passwords do not match");
		a.npass.focus();
		return false;
	
	}
	}
	
	</script>
    </head>
    <body>
    <h3>Hi, $myrow[login]!</h3>
<form method="POST">
<label>Enter new password:</label>
<input type="password" name="npass"><br>
<label>Confirm new password:</label>
<input type="password" name="nspass"><br>
<input type="submit" onClick="check(this.form)"><br>
</form>
HERE;
}//если хеша нет в БД, то тоже посылаем
else header("Location: /index.php");
?>



так вот, ява скрипты внутри формы, которые служат для проверки данных, не останавливают вывод, пароль все равно обновляется, даже без потверждения
...
Рейтинг: 0 / 0
Пишу форму для смены пароля, есть вопросы
    #38703101
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО обработчик надо на onsubmit вешать.

Модератор: Тема перенесена из форума "PHP, Perl, Python".
...
Рейтинг: 0 / 0
Пишу форму для смены пароля, есть вопросы
    #38703473
Dadont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решил проблему так:
1. вместо
<input type="submit" onClick="check(this.form)"><br>
написал
<input type="button" value='Set password' onClick="check(this.form)"><br>

2. вместо
<form method="POST">
написал
<form id='form' method='POST' >

3.в конец скрипта добавил:
form.submit();

всем спасибо, а особенно гуглу )))
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Пишу форму для смены пароля, есть вопросы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]