I am creating an application where user selects plot no, year and month. Then according to selected year and month, the no. of days for the selected month are calculated.
and then on next page i.e. schedulemasternew.php, user will have to enter date, litres and hours for no. of times depending upon the month and year selected (i.e. 31 times for January, 28 times for February).
and in schedule_entry.php, there is logic to insert the records.
but, i'm facing problem here while inserting records.
first of all, i'm not sure that, the array is properly created for the records to be inserted.
because, when i execute, it shows Fatal Error :Maximum execution time of 30 seconds exceeded in C:\wamp\www\agro\agro\schedule_entry.php on line 20
and, when i check database, only last entry is inserted in scheduledetail table.
can u please tell me, how should i solve this problem...???
You have a problem in your script.
#1
In your for statement you are using a variable variable. While this can be done, you are setting it with a number, which a variable cannot be. I'm assuming that you just messed up and put an extra $ in there.
#2
You are passing the inputs as litres<?php $i;?> which doesn't really do anything. So you are posting a value from $_POST['litres'].
You should be passing the inputs as litres<?php echo $i;?> which would pass it as $_POST['litres0']. $_POST['litres1'], etc.
#3
You are not retrieving these same litres variable right, you are only retrieving $_POST['litres'] which gives you the LAST value submitted. (*note* this applies to litres and to hours).
#4
You should be retrieving your litres and hours variables from inside the for loop. Otherwise you cannot automate the count.
Side Note. Please sanitize your data, some very good sanitize functions floating around this forum. This will help your database from getting screwed, and protect your user's from the boogey man.
I discovered some things that the script was asking for, that wasn't provided. I suppose your sending the plotno, year, month some other way, than that form.
Other than that, I think this will solve it. Let me know if there are problems.
// Remove Null Characters // This prevents sandwiching null characters // between ascii characters, like Java\0script. $data = preg_replace('/\0+/', '', $data); $data = preg_replace('/(\\\\0)+/', '', $data);
// Validate standard character entities // Add a semicolon if missing. We do this to enable // the conversion of entities to ASCII later. $data = preg_replace('#(&\#*\w+)[\x00-\x20]+;#u',"\\1;",$data);
// Validate UTF16 two byte encoding (x00) // Just as above, adds a semicolon if missing. $data = preg_replace('#(&\#x*)([0-9A-F]+);*#iu',"\\1\\2;",$data);
// URL Decode // Just in case stuff like this is submitted: // <a href="http://%77%77%77%2E%67%6F%6F%67%6C%65%2E%63%6F%6D">Google</a> // Note: Normally urldecode() would be easier but it removes plus signs $data = preg_replace("/([a-z0-9]{3})/i", "&#x\\1;", $data); $data = preg_replace("/%([a-z0-9]{2})/i", "&#x\\1;", $data);
// Convert character entities to ASCII // This permits our tests below to work reliably. // We only convert entities that are within tags since // these are the ones that will pose security problems. if (preg_match_all("/<(.+?)>/si", $data, $matches)) { for ($i = 0; $i < count($matches['0']); $i++) { $data = str_replace($matches['1'][$i], html_entity_decode($matches['1'][$i], ENT_COMPAT, $charset), $data); } }
// Convert all tabs to spaces // This prevents strings like this: ja vascript // Note: we deal with spaces between characters later. $data = preg_replace("#\t+#", " ", $data);
// Makes PHP tags safe // Note: XML tags are inadvertently replaced too: // xml // But who cares, only terrorists use XML. :) $data = str_replace(array('<?php', '<?PHP', '<?', '?>'), array('<?php', '<?PHP', '<?', '?>'), $data);
// Compact any exploded words // This corrects words like: j a v a s c r i p t // These words are compacted back to their correct state. $words = array('javascript', 'vbscript', 'script', 'applet', 'alert', 'document', 'write', 'cookie', 'window'); foreach ($words as $word) { $temp = ''; for ($i = 0; $i < strlen($word); $i++) { $temp .= substr($word, $i, 1)."\s*"; }
// Remove JavaScript Event Handlers // Note: This code is a little blunt. It removes // the event handler and anything up to the closing >, // but it's unlikely to be a problem.
// Sanitize naughty HTML elements // If a tag containing any of the words in the list // below is found, the tag gets converted to entities. // So this: <blink> // Becomes: <blink> $data = preg_replace('#<(/*\s*)(alert|vbscript|javascript|applet|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|layer|link|meta|object|plaintext|style|script|textarea|title|xml|xss|lowsrc)([^>]*)>#is', "<\\1\\2\\3>", $data);
// Sanitize naughty scripting elements // Similar to above, only instead of looking for // tags it looks for PHP and JavaScript commands // that are disallowed. Rather than removing the // code, it simply converts the parenthesis to entities // rendering the code un-executable. // For example: eval('some code') // Becomes: eval('some code') $data = preg_replace('#(alert|cmd|passthru|eval|exec|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)#si', "\\1\\2(\\3)", $data);
// Final clean up // This adds a bit of extra precaution in case // something got through the above filters $bad = array( 'document.cookie' => '', 'document.write' => '', 'window.location' => '', "javascript\s*:" => '', "Redirect\s+302" => '', '<!--' => '<!--', '-->' => '-->' );