View difference between Paste ID: uJZSwxwb and ZTdiLdK6
SHOW: | | - or go back to the newest paste.
1
<html><head>
2-
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script></head>
2+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
3
<title>circumvent max_input_vars limit in PHP</title></head>
4-
<a href="">restart</a><br>
4+
5
<a href="max_input_vars3.php">restart</a><br>
6
<?php 
7-
	echo sizeof($_REQUEST)." num request variables
7+
8
	echo count($_REQUEST,1)." num request variables
9-
	var_export($_REQUEST);
9+
10
	
11
	if(isset($_REQUEST['serialized_data'])){
12
		$params = array();
13
		parse_str(urldecode($_REQUEST['serialized_data']), $params);
14-
		for($i=0;$i<10;$i++) echo '<input type="hiddden" value="v'.$i.'<a>" name="v'.$i.'">';
14+
		echo count($params,1)." serialized variables:";
15
		var_export($params);
16
	}else var_export($_REQUEST);
17-
	<h1>hidden form 2</h1>
17+
18-
	<form method="post" id="f2"><?
18+
19-
		for($i=0;$i<10;$i++) echo '<input type="hidden" value="v'.$i.'&quot;a" name="v'.$i.'">';
19+
20
	<form method="post" id="f" action=""><?
21
		for($i=0;$i<10;$i++) echo '<input type="hiddden" value="v'.$i.'<" name="v'.$i.'">';
22
		?><input type="submit" name="sadosa">
23
	</form> 
24-
	<h1>get form 1</h1>
24+
	<h1>hidden form 2 1100 vars</h1>
25
	<form method="post" id="f2">
26
		<input type="text" value="v&quot;a" name="somequote"><?
27
		for($i=0;$i<1100;$i++) echo '<input type="hidden" value="v'.$i.'" name="v'.$i.'">';
28
		?><textarea name="bla">blubb</textarea>
29
<select name="bla"><option>test</select>
30
<input type="submit">
31
	</form> 
32
	<h1>multidimensional form</h1>
33
	<form method="post" id="m"><?
34
		for($i=0;$i<5;$i++){
35
			for($k=0;$k<2;$k++){
36
				echo '<input type="hidden" value="m'.$i.'_'.$k.'" name="m['.$i.']['.$k.']">';
37
			}
38
		}?><input type="submit">
39
	</form> 
40
	<h1>get form</h1>
41-
		$(this).append('	<input type="hidden" name="serialized_hidden_data" value="'+data+'">');  // maybe .replace(/"/g,'&quot;')
41+
42
		for($i=0;$i<10;$i++) echo '<input type="hidden" value="v'.$i.'" name="v'.$i.'">';
43-
		//$(this).append('	<textarea style="display:none" name="serialized_data">'+(data)+'</textarea>'); // maybe .replace(/</g,'&lt;')
43+
44
	</form> 
45
	<?
46
47
48
}
49
?>
50
	<script>
51
	// this disables all form elements and creates only one new element that contains all data serialized
52
	$('form[method=post]').click(function() {
53
		var data=$(this).serialize();
54
		var num_form_elements=$(this).find('input, select, textarea').not('[type="submit"]').length;
55
		var num_elements_already_disabled=$(this).find('input:disabled, select:disabled, textarea:disabled').length;
56
		$(this).find('input, select, textarea').not('[type="submit"]').attr("disabled", true);
57
		$(this).append('	<input type="hidden" name="num_form_elements" value="'+num_form_elements+'">');  // to mark request
58
		$(this).append('	<input type="hidden" name="num_elements_already_disabled" value="'+num_elements_already_disabled+'">');  // to mark request
59
		$(this).append('	<textarea style="display:true" name="serialized_data">'+(data)+'</textarea>'); // maybe .replace(/</g,'&lt;')
60
		// or use instead of a hidden input:
61
		//$(this).append('	<input type="hidden" name="serialized_data" value="'+data+'">');  // maybe .replace(/"/g,'&quot;')
62
		
63
		/*
64
65
		TODO: find submitbutton and clone it, somehow like var submitbutton = $(this).find("input[type=submit]").first();
66
		
67
		$( "form[method=post]" ).each(function( index ) {
68
			$(this).attr("uniqueID",index)
69
		});
70
		...
71
		var uniqueID=$(this).attr("uniqueID");
72
		//var uniqueID = Math.floor( Math.random()*99999 );
73
74
		var action=$(this).attr("action");
75
		var actionstr='';
76
		if(action!=undefined) actionstr=' action="'+action+'"';
77
		alert($(this).attr("id"));
78
		$(this).append('<form method="post"'+actionstr+' id="generatedform'+uniqueID+'">');
79
		$(this).append('	<input type="submit">'); 
80
		$(this).append('</form>'); 
81
		*/
82
		//t=setTimeout("$('#generatedform'+uniqueID).submit();",500);
83
		
84
		//return false;
85
	});
86
	</script>
87
</body></html><?