LINUX.ORG.RU

Имитация отправки формы

 ,


0

1

подскажите пожалуйста, есть форма -

<form action="http://some/b0/b.php" method="post" id="battleform" name="battleform"></form>
<input type="hidden" name="fightit" value="2">
<input type="hidden" name="fightvl" value="10">
<input type="hidden" name="turn" value="2">
<input type="hidden" name="bid" value="1200310820">
<input type="hidden" name="5b807" value="8361e">

дальше идут не hidden инпуты, куда и вводится полезная информация. На странице есть такой яваскрипт -

<script language="javascript">
right_attack_value=0; right_attack_required=1;
left_attack_value=0; left_attack_required=0;
enemyis=false;
check_grenade=0;
defend_value=0;
attack_type=0;
function rightattackcheck() {  attack_type=1;  right_attack_value=1; }
function leftattackcheck() {   attack_type=1;  left_attack_value=1;  }
function defencecheck() {  defend_value=1; }
function enemycheck() { enemyis=true; }
function drawlineclick(uid) {
 enemycheck();
 var optionlist = document.getElementById('euids').options;
 for (var option = 0; option < optionlist.length; option++ ) {  if (optionlist[option].value == uid) { optionlist[option].selected = true; break; } }
 }
function fight() {
bad=0;
rav=right_attack_value;
lav=left_attack_value;
if (check_grenade==1) {
if (document.forms.battleform.use_grenade.checked==true) { rav=1; lev=1; attack_type=1; }
			}	
if (attack_type==0) { s="Выберите способ атаки"; bad=1; } else {
   if ((right_attack_required==1) && (rav==0)) { s="Укажите, куда стрелять из оружия в правой руке"; bad=1; }
   if ((left_attack_required==1) && (lav==0)) { s="Укажите, куда стрелять из оружия в левой руке"; bad=1; }
   }
document.forms.battleform.fightit.value="3";
if (defend_value==0) { s="Решите, как будете уворачиваться"; bad=1; }
if (bad==1) { alert(s); }  
else {
s="c6548b8c1f5b471e9cd1c0b357018107";
document.forms.battleform.fightvl.value=s;
document.forms.battleform.fightit.value=s;
if ((document.forms.battleform.fightvl.value==s) && (document.forms.battleform.fightit.value==s)) 
  { 
  document.forms.battleform.submit();
  }
 }
}
</script>

В итоге вопрос - почему инпуты не в форме и что будет отправлено при отправке формы. Из скрипта видно, что когда все введенно, в форме устанавливаются 2 каких-то совершенно левых одинаковых значения и она сабмится. Но если отправляются только они, то непонятно как введенная пользователем инфа отправляется.

С вебом почти не знаком, пожалуйста проще

почему инпуты не в форме

Потому что кто-то криво написал код, не?

что будет отправлено при отправке формы

Очевидно: ничего, т.е. пустой пост.

Apple-ch ★★ ()

Это феерический быдлокод, забей.

metrokto ★★ ()
Ответ на: комментарий от Apple-ch

а если над формой без инпутов выполнить следующий код -

document.forms.battleform.fightvl.value=s;
document.forms.battleform.fightit.value=s;
эти значения могут попасть в отправляемые формой данные?

pseudo-cat ★★★ ()
Ответ на: комментарий от metrokto

не похоже, не считая скрипта для музыки, вот все что там есть -

<script>
var InBattle=0;
var RefreshDisabled=0;
var BattleChatDelay=15;
var TimeIsOver=0;

function show_user_window(x,y,text) {
if (document.getElementById('userinfo').style.display=='none') {
 document.getElementById('userinfo').style.display='inline'; 
 document.getElementById('userinfo').style.top=y; 
 document.getElementById('userinfo').style.left=x; 
 document.getElementById('userinfo').innerHTML='<nobr>'+text+'</nobr>';
 } else document.getElementById('userinfo').style.display='none'; 
  }
function hide_user_window() {
 document.getElementById('userinfo').style.display='none';
 }

function hidegrenadearea() {
document.getElementById('grenade_area').style.display='none';
 }
function showgrenadearea() {
if (document.getElementById('grenade_area').style.display=='none')
    document.getElementById('grenade_area').style.display='inline';
 else document.getElementById('grenade_area').style.display='none';
  }

function editline() {
 RefreshDisabled=0;
 if (document.forms.battlechat.newmessage.value!='') RefreshDisabled=1;
 }

var secback = 21; 
var time1 = new Date(); 
function timer() { 
var time2 = new Date(); 
var seconds = (secback-Math.floor((time2.getTime()-time1.getTime())/1000)); 
if (seconds < 0) { 
document.getElementById('ticker').innerHTML='<font color=red>время вышло</font>'; 
TimeIsOver=1;
BattleChatDelay=5;
if (RefreshDisabled!=1) window.location.href='b.php?bid=1200310820';
} else { 
minutes = Math.floor(seconds/60); 
seconds = Math.floor(seconds); 
document.getElementById('ticker').innerHTML=minutes+':'+(seconds-minutes*60); 
setTimeout('timer()', 1000); 
} 
} 
timer();
</script>

<script>
top.BattleID=1200310820;
top.LastBattleUpdate=1369082323;
</script>
<script>
var InBattle=1;
</script>
<script language="javascript">
right_attack_value=0; right_attack_required=1;
left_attack_value=0; left_attack_required=0;
enemyis=false;
check_grenade=0;
defend_value=0;
attack_type=0;
function rightattackcheck() {  attack_type=1;  right_attack_value=1; }
function leftattackcheck() {   attack_type=1;  left_attack_value=1;  }
function defencecheck() {  defend_value=1; }
function enemycheck() { enemyis=true; }
function drawlineclick(uid) {
 enemycheck();
 var optionlist = document.getElementById('euids').options;
 for (var option = 0; option < optionlist.length; option++ ) {  if (optionlist[option].value == uid) { optionlist[option].selected = true; break; } }
 }
function fight() {
bad=0;
rav=right_attack_value;
lav=left_attack_value;
if (check_grenade==1) {
if (document.forms.battleform.use_grenade.checked==true) { rav=1; lev=1; attack_type=1; }
			}	
if (attack_type==0) { s="Выберите способ атаки"; bad=1; } else {
   if ((right_attack_required==1) && (rav==0)) { s="Укажите, куда стрелять из оружия в правой руке"; bad=1; }
   if ((left_attack_required==1) && (lav==0)) { s="Укажите, куда стрелять из оружия в левой руке"; bad=1; }
   }
document.forms.battleform.fightit.value="3";
if (defend_value==0) { s="Решите, как будете уворачиваться"; bad=1; }
if (bad==1) { alert(s); }  
else {
s="c6548b8c1f5b471e9cd1c0b357018107";
document.forms.battleform.fightvl.value=s;
document.forms.battleform.fightit.value=s;
if ((document.forms.battleform.fightvl.value==s) && (document.forms.battleform.fightit.value==s)) 
  { 
  document.forms.battleform.submit();
  }
 }
}
</script>
pseudo-cat ★★★ ()
Ответ на: комментарий от C1nde

да, так действительно удобней:

fightit:1060fbe0ebda0b771ff1efc4f161fb18
fightvl:1060fbe0ebda0b771ff1efc4f161fb18
turn:1
bid:1200486616
c8d36:eaa80
right_attack:3
defence:2
attack_key:1
def_key:1
enemy:1

pseudo-cat ★★★ ()
Ответ на: комментарий от pseudo-cat

Должно быть ещё что-то.
Ведь кто-то же ассоциирует форму с методом fight.
Там же должно происходить набивание формы значениями.

vtVitus ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.