Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Переход на другую страницу,после проверки пароля (https://javascript.ru/forum/dom-window/43073-perekhod-na-druguyu-stranicu-posle-proverki-parolya.html)

valiker 20.11.2013 21:43

Переход на другую страницу,после проверки пароля
 
Добрый день. Нужно сделать простую проверку пароля.Если пароль правильный,перейдет на другую страницу. Пароль проверяет,но на страницу не переходит.Пока слабоват в скрипте ,подскажите как сделать правильно.Буду очень признателен.

<!DOCTYPE html>   
<head>  
<meta charset="utf-8">  
<title>pass validation</title>  
<link rel='stylesheet' href='form-style.css' type='text/css' />  
</head>  
<body>  
<div class="mail">  
<h2>Input Password and Submit [6 to 20 characters which contain at least one numeric digit, one uppercase and one lowercase letter]</h2>  
<form name="form1" action="#">  
<ul>  
<li><input type='text' name='text1'/></li>  
<li class="rq">*Enter numbers only.</li>  
<li>&nbsp;</li>  
<li class="submit"><input type="submit" name="submit" value="Submit" onclick="CheckPassword(document.form1.text1)"/></li>  
<li>&nbsp;</li>  
</ul>  
</form>  
</div>  
<script type="text/javascript">
function CheckPassword(inputtxt)   
{   
var passw = "rai50";  
if(inputtxt.value.match(passw))   
{   
return true; 
document.location.href = "http://www.google.com";
}  
else  
{   
alert('Wrong...!')  
return false;  
}  
} 
</script>  
</body>  
</html>

Rise 20.11.2013 21:53

Удалите return true; и все получится

valiker 20.11.2013 21:56

Цитата:

Сообщение от Rise (Сообщение 282027)
Удалите return true; и все получится

убрал,не получилось.

JS&PHP 20.11.2013 22:01

<!DOCTYPE html>   
<head>  
<meta charset="utf-8">  
<title>pass validation</title>  
</head>  
<body>  
<div class="mail">  
<h2>Input Password and Submit [6 to 20 characters which contain at least one numeric digit, one uppercase and one lowercase letter]</h2>  
<form name="form1" action="#">  
<ul>  
<li><input type='text' name='text1' id="pas"/></li>  
<li class="rq">*Enter numbers only.</li>  
<li>&nbsp;</li>  
<li class="submit"><input type="submit" name="submit" value="Submit" onclick="CheckPassword()"/></li>  
<li>&nbsp;</li>  
</ul>  
</form>  
</div>  
<script type="text/javascript">
function CheckPassword(inputtxt)   
{   
var passw = "rai50";  
var pasCode = document.getElementById("pas");
if(pasCode.value.match(/rai50/g)[0] == passw)   
{   
alert("Good");
window.location = "http://first_site/";
document.write("All be good! ;)");
return true;
}  
else  
{   
alert('Wrong...!')  
return false;  
}  
} 
</script>  
</body>  
</html>


Если выводит сообщение "Good", значит проверка прошла успешно

valiker 20.11.2013 22:05

Цитата:

Сообщение от JS&PHP (Сообщение 282029)
<!DOCTYPE html>   
<head>  
<meta charset="utf-8">  
<title>pass validation</title>  
</head>  
<body>  
<div class="mail">  
<h2>Input Password and Submit [6 to 20 characters which contain at least one numeric digit, one uppercase and one lowercase letter]</h2>  
<form name="form1" action="#">  
<ul>  
<li><input type='text' name='text1' id="pas"/></li>  
<li class="rq">*Enter numbers only.</li>  
<li>&nbsp;</li>  
<li class="submit"><input type="submit" name="submit" value="Submit" onclick="CheckPassword()"/></li>  
<li>&nbsp;</li>  
</ul>  
</form>  
</div>  
<script type="text/javascript">
function CheckPassword(inputtxt)   
{   
var passw = "rai50";  
var pasCode = document.getElementById("pas");
if(pasCode.value.match(/rai50/g)[0] == passw)   
{   
alert("Good");
window.location.href = "test.php";
}  
else  
{   
alert('Wrong...!')  
return false;  
}  
} 
</script>  
</body>  
</html>


Если выводит сообщение "Good", значит проверка прошла успешно

проверка там работает,мне нужен переход на другую страницу после проверки.

JS&PHP 20.11.2013 22:18

<!DOCTYPE html>   
<head>  
<meta charset="utf-8">  
<title>pass validation</title>  
</head>  
<body>  
<div class="mail">  
<h2>Input Password and Submit [6 to 20 characters which contain at least one numeric digit, one uppercase and one lowercase letter]</h2>  
<ul>  
<li><input type='text' id="pas"/></li>  
<li>*Enter numbers only.</li>  
<li>&nbsp;</li>  
<li class="submit"><input type="submit" onclick="CheckPassword()"/></li>  
<li>&nbsp;</li>  
</ul>   
</div>  
<script type="text/javascript">
function CheckPassword(){   
	var passw = "rai50";  
	var pasCode = document.getElementById("pas");
	if(pasCode.value.match(/rai50/g)[0] == passw){   
		window.location.href = "http://www.google.com";
		return true;
	}  
	else{   
		alert('Wrong...!')  
		return false;  
	}  
} 
</script>  
</body>  
</html>


Все должно работать.

Напишите, работает ли.

Rise 20.11.2013 22:20

А так...
<!DOCTYPE html>   
<head>  
<meta charset="utf-8">  
<title>pass validation</title>  
<link rel='stylesheet' href='form-style.css' type='text/css' />  
</head>  
<body>  
<div class="mail">  
<h2>Input Password and Submit [6 to 20 characters which contain at least one numeric digit, one uppercase and one lowercase letter]</h2>  
<form name="form1" action="#">  
<ul>  
<li><input type='text' name='text1'/></li>  
<li class="rq">*Enter numbers only.</li>  
<li>&nbsp;</li>  
<li class="submit"><input type="submit" name="submit" value="Submit" onclick="return CheckPassword()"/></li>  
<li>&nbsp;</li>  
</ul>  
</form>  
</div>  
<script type="text/javascript">
function CheckPassword() {
	var passw = "rai50";
	var reg = new RegExp("^" + passw + "$");
	if(reg.test(document.form1.text1.value)) {   
		document.location.href = "http://www.google.com";
	} else {   
		alert('Wrong...!');
	} 
	return false;
} 
</script>
</body>  
</html>

valiker 20.11.2013 22:24

Цитата:

Сообщение от JS&PHP (Сообщение 282033)
<!DOCTYPE html>   
<head>  
<meta charset="utf-8">  
<title>pass validation</title>  
</head>  
<body>  
<div class="mail">  
<h2>Input Password and Submit [6 to 20 characters which contain at least one numeric digit, one uppercase and one lowercase letter]</h2>  
<ul>  
<li><input type='text' id="pas"/></li>  
<li>*Enter numbers only.</li>  
<li>&nbsp;</li>  
<li class="submit"><input type="submit" onclick="CheckPassword()"/></li>  
<li>&nbsp;</li>  
</ul>   
</div>  
<script type="text/javascript">
function CheckPassword(){   
	var passw = "rai50";  
	var pasCode = document.getElementById("pas");
	if(pasCode.value.match(/rai50/g)[0] == passw){   
		window.location.href = "http://www.google.com";
		return true;
	}  
	else{   
		alert('Wrong...!')  
		return false;  
	}  
} 
</script>  
</body>  
</html>


Все должно работать.

Напишите, работает ли.

на страницу переходит,но теперь не выводит алерт,если неправильный пароль

valiker 20.11.2013 22:26

Цитата:

Сообщение от Rise
А так...

Да,все отлично !

Спасибо за помощь ,ребята!

JS&PHP 20.11.2013 22:30

<!DOCTYPE html>   
<head>  
<meta charset="utf-8">  
<title>pass validation</title>  
</head>  
<body>  
<div class="mail">  
<h2>Input Password and Submit [6 to 20 characters which contain at least one numeric digit, one uppercase and one lowercase letter]</h2>  
<ul>  
<li><input type='text' id="pas"/></li>  
<li>*Enter numbers only.</li>  
<li>&nbsp;</li>  
<li class="submit"><input type="submit" onclick="CheckPassword()"/></li>  
<li>&nbsp;</li>  
</ul>   
</div>  
<script type="text/javascript">
function CheckPassword(){   
	var passw = "rai50";  
	var pasCode = document.getElementById("pas");
	if((pasCode.value.match(/rai50/g) != null) && pasCode.value.match(/rai50/g)[0] == passw){   
		window.location.href = "http://www.google.com";
	}  
	else{   
		alert('Wrong...!')  
		return false;  
	}  
} 
</script>  
</body>  
</html>

BETEPAH 20.11.2013 22:32

valiker,
вы же понимаете, насколько ненадежная эта защита, да?

valiker 20.11.2013 22:51

Цитата:

Сообщение от BETEPAH (Сообщение 282040)
valiker,
вы же понимаете, насколько ненадежная эта защита, да?

на сайте будут разделы с информацией для оптовых и розничных покупателей. пароль будет висеть на разделе для оптовых покупателей.никакой важной информации там не будет. заказчик так захотел.

Amok_Yu 09.08.2021 19:49

Искал скрипт, как сделать переход на другую страницу сайта нажав кнопку, но с проверкой введенного пароля (ребенку хотел игру типа квеста сделать). Нашел эту ветку многолетней давности.

Добавил еще найденный скрипт на отмену использования правой кнопки мышки и горячих клавиш для просмотра кода страницы - чтоб там пароль не подсмотрели так просто.

Но тут обратил внимание, что скрипт принимает не только указанный пароль:
var passw = "rai50"

Но и все комбинации содержащие указанную комбинацию, в данном случае "rai50" при вводе, хоть в конце, хоть в начале, хоть и там и там любое *rai50*

В принципе для моих целей это не критично. Но всё же интересно, это можно как-то исправить в данном коде?

рони 09.08.2021 19:54

Amok_Yu,
if(pasCode.value === passw)

Amok_Yu 09.08.2021 21:59

Цитата:

Сообщение от рони (Сообщение 539294)
if(pasCode.value === passw)

Спасибо. Помогло.
Я в java не силен. Но вроде разобрался.
Просто добавив эту строку перед if((pasCode.value.match... оно уже заработало, но перестало выдавать сообщение об ошибке при неправильном пароле.
А потом добавил через && в строку с if(...) и заработало как надо :dance:


<script type="text/javascript">
function CheckPassword(){  
    var passw = "rai50"; 
    var pasCode = document.getElementById("pas");
    if((pasCode.value.match(/rai50/g) != null) && pasCode.value.match(/rai50/g)[0] == passw   &&  pasCode.value === passw){  
        window.location.href = "01.html";
    } 
    else{  
        alert('ОТВЕТ неверный. Попробуй ещё раз!') 
        return false; 
    } 
}
</script>



Ещё несколько вопросов.:help:
? Зачем это:
<div class="mail">

Я удалил - все работает.
И в строке:
<li class="submit"><input type="submit" onclick="CheckPassword()"/></li>
- часть class="submit" тоже вроде лишняя. Удалил -работает.

Это просто ненужные остатки кода, который откуда-то скопипастили или все же это нужно оставить, т.к. в каком-то браузере без этого будет не работать?

Я сделал все без разметки по пунктам через <ul> <li> и еще добавил скрипт, который запрещает использование правой кнопки мыши, комбинаций клавиш trl+U, ctrl+shift+i и F12. Чтобы нельзя было посмотреть код страницы, т.к. в нём пароль прописан. Нагуглил несколько. Взял самый понравившийся.

Вот что получилось:
<!DOCTYPE html>  
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>pass validation</title> 
</head> 
<!-- Запрет правой кнопки мыши  и горячих клавиш Ctrl+U и пр. (чтоб не посмотрели код страницы) -->
<script type="text/javascript">
document.onkeydown = function(event) {
    if (event.ctrlKey && (event.keyCode == 85) || (event.ctrlKey && event.shiftKey && (event.keyCode == 73)) || event.keyCode == 123) {
        return false
    }
}
document.oncontextmenu = function(){
    return false
}
</script>
<body>
<h2>Решите задание и введите пароль для перхода на следующую страницу</h2>
Пароль введите в окошке ниже.
<p>
<b>Введи пароль:</b> 
<input type='text' id="pas"/><br>
<font size="-1"> [пароль может содержать цифры, строчные и заглавные буквы русского и английского алфавита]</font>
<br><br>
<input type="submit"  value="Проверить пароль"  onclick="CheckPassword()"/><br>
<script type="text/javascript">
function CheckPassword(){  
    var passw = "кот50"; 
    var pasCode = document.getElementById("pas");
    if((pasCode.value.match(/кот50/g) != null) && pasCode.value.match(/кот50/g)[0] == passw  &&  pasCode.value === passw) {  
        window.location.href = "http://www.google.com";
    } 
    else{  
        alert('ПАРОЛЬ неверный. Попробуй ещё раз!') 
        return false; 
    } 
}
</script> 
</body> 
</html>

рони 10.08.2021 07:45

Цитата:

Сообщение от Amok_Yu
if((pasCode.value.match(/кот50/g) != null) && pasCode.value.match(/кот50/g)[0] == passw  &&  pasCode.value === passw)

достаточно одной таблетки!)))
Цитата:

Сообщение от рони
if(pasCode.value === passw)



Часовой пояс GMT +3, время: 06:59.