ID: 48906 User updated by: arno dot zandink at gmail dot com Reported By: arno dot zandink at gmail dot com Status: Open Bug Type: Date/time related Operating System: * PHP Version: 5.3.0 New Comment:
hmm, indeed I changed my scripted at the last minute because I got a deprecated notice. My first test was as following: <?php $date = "01-01-1980 <script>alert('test');</script>"; $aDate_parts = split('-', $date); print_r($aDate_parts); var_dump( checkdate( $aDate_parts[1], // Month $aDate_parts[0], // Day $aDate_parts[2] // Year ) ); ?> This example will result in the following array: <?php Array ( [0] => 01 [1] => 01 [2] => 1980 <script>alert('test');</script> ) ?> And it will return a boolean (true) Previous Comments: ------------------------------------------------------------------------ [2009-07-13 19:49:18] sjoerd-php at linuxonly dot nl Thank you for your bug report. Your example code can be summarized as follows: <?php var_dump(checkdate('01', '01', '1980')); ?> I would expect this to return true, because January 1st 1980 is a valid date. Why do you think it is an invalid date? ------------------------------------------------------------------------ [2009-07-13 19:11:20] arno dot zandink at gmail dot com Description: ------------ checkdate returns true when the date given is not a valid date If this is not considered a bug, perhaps adding a waring on the manual page would be wise Reproduce code: --------------- --- >From manual page: function.checkdate --- <?php $date = "01-01-1980 <script>alert('test');</script>"; $aDate_parts = preg_split("/[\s-]+/", $date); var_dump( checkdate( $aDate_parts[1], // Month $aDate_parts[0], // Day $aDate_parts[2] // Year ) ); ?> Expected result: ---------------- I would expect var_dump to print a boolean (false) because the date is not valid Actual result: -------------- A boolean (true) is returned with a invalid date ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=48906&edit=1