• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Post формы через Javascript или стандартно

  • Автор темы Автор темы admin
  • Дата начала Дата начала
A

admin

Такой вопрос есть.

Отличаются-ли внутренне конструкции.

HTML:
<input type="button" onclick="document.adminForm.submit();" />

и 

<input type="submit" />

спросил вот почему.
начал я баловаться редактором SPAW, так вот если отправлять по первому принципу, то в массив $_POST значение этого редактора идёт старое. Например если до этого там было написано "Hello people", то изменяя в нем это значение, например на "Hello boys & girls" мы в $_POST получим "Hello people", а если делать через второй вариант без Javascript, то всё нормально. Массив меняется.
Как бы это дело обмануть? Т.к. через тип submit отправлять форму меня не совсем устраивает.
 
по идее не должны отличаться..
 
Для: Andrew Stephanoff
это по идее :)
при отправке формы через метод submit(), а не через кнопку <input type="submit" /> в форме не происходит событие "onsubmit", поэтому SPAW (а также большинство WYSIWYG редакторов) не обновляет значение элемента формы, к которому он привязан.
 
но проблему не понял все равно.. сделал тестовую страничку с двумя кнопками и скрипт, который выводит на экран переменную.. как я не отправлял -- результат одинаковый...
Код:
<html>
<head>
<title>test</title>
 <script language="JavaScript">
onClick = function() {
 var frmTest = document.getElementById("frmTest");
 frmTest.submit();
}
 </script>
</head>

<body>

<form action="test.php" method="post" target="_blank" id="frmTest">
 <input type="text" name="txtTest" value="" />
 <input type="submit" value="submit" />
 <input type="button" value="button" onclick="onClick();" />
</form>

</body>
</html>

Код:
<?php
 $txt_test = $_POST["txtTest"];
 echo $txt_test;
?>
 
Для: Andrew Stephanoff
знаю, но я понял в чём фишка.
когда делаешь frmTest.submit();, то не выполняется событио onSubmit для формы.
решение такое.
перед frmTest.submit(); надо вставить
Код:
	try {
document.frmTest.onsubmit();
}
catch(e){}
 
<!--QuoteBegin-Серёга+30:08:2005, 11:14 -->
<span class="vbquote">(Серёга @ 30:08:2005, 11:14 )</span><!--QuoteEBegin-->Для: Andrew Stephanoff
знаю, но я понял в чём фишка.
когда делаешь frmTest.submit();, то не выполняется событио onSubmit для формы.
решение такое.
перед frmTest.submit(); надо вставить
Код:
	try {
document.frmTest.onsubmit();
}
catch(e){}
[snapback]24269" rel="nofollow" target="_blank[/snapback]​
[/quote]
onSubmit не вызывается, это я заметил :P но вот почему у тебя в $_POST[] попадали старые значения не понял..
и еще, ты вызываешь frmTest.onSubmit(); но это же событие, а не метод, вроде его можно только назначить, да и в спецификации DOM у form только два метода: void submit(); и void reset();
 
Для: Andrew Stephanoff
я знаю про это.
тем не менее it works! %)
загадок искать не буду, почему что и как. просто не времени, надо делать проект.
просто скачай SPAW Editor и потести его, если интересно.
 
хммм.. :P очень интересно :P у меня конструкция frmTest.onsubmit(); не прокатила :P ни в IE, ни в opera ни в FireFox

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
 <title>test</title>
 <script language="JavaScript">
onSubmit = function() {
 window.alert("hooray!!");
}  
onClick = function() {
 var frmTest = document.getElementById("frmTest");
 try {
   frmTest.onSubmit();
 } catch(e) {
   window.alert("ooops!!");
 }
 frmTest.submit();
}
 </script>
</head>

<body>

<form id="frmTest" onsubmit="onSubmit();">
 <input type="submit" value="submit" />
 <input type="button" value="button" onclick="onClick();" />
</form>

</body>
</html>
но вот такой вариант работает
Код:
onClick = function() {
 var frmTest = document.getElementById("frmTest");
 onSubmit();
 frmTest.submit();
}
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab