init
This commit is contained in:
		
						commit
						9b70aa22b6
					
				
					 13 changed files with 711 additions and 0 deletions
				
			
		
							
								
								
									
										119
									
								
								lib/validation.php
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								lib/validation.php
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,119 @@ | |||
| <?php | ||||
| 
 | ||||
| // https://stackoverflow.com/a/600306/9123061
 | ||||
| function is_valid_note($x) | ||||
| { | ||||
|     return ($x & ($x - 1)) == 0; | ||||
| } | ||||
| 
 | ||||
| function is_valid_time($check_time) | ||||
| { | ||||
|     if(!is_string($check_time)) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     $check_time = remove_whitespace($check_time); | ||||
|     $check_time_explode = explode("/", $check_time, 2); | ||||
|     $check_time_explode[0] = intval($check_time_explode[0]); | ||||
|     $check_time_explode[1] = intval($check_time_explode[1]); | ||||
|     if(count($check_time_explode) != 2 || $check_time_explode[0] < 1 || $check_time_explode[1] < 1) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     if(!is_valid_note($check_time_explode[1])) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     $ratio = $check_time_explode[0] / $check_time_explode[1]; | ||||
|     $new_rhythm_length = intval(MAX_FRACTION * $ratio); | ||||
|     if(!is_int($new_rhythm_length) || $new_rhythm_length == 0) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| function is_valid_tempo($check_tempo) | ||||
| { | ||||
|     if(!is_string($check_tempo)) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     $check_tempo = remove_whitespace($check_tempo); | ||||
|     $check_tempo_explode = explode("=", $check_tempo, 2); | ||||
|     $check_tempo_explode[0] = intval($check_tempo_explode[0]); | ||||
|     $check_tempo_explode[1] = intval($check_tempo_explode[1]); | ||||
|     if(count($check_tempo_explode) != 2 || $check_tempo_explode[0] < 1 || $check_tempo_explode[1] < 1) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     if(!is_valid_note($check_tempo_explode[0])) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| function is_valid_bars($check_bars) | ||||
| { | ||||
|     if(!intval($check_bars)) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     $check_bars = intval($check_bars); | ||||
|     if($check_bars < 1 || $check_bars > 64) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| function is_valid_dynamic($check_dynamic) | ||||
| { | ||||
|     if(!is_string($check_dynamic)) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     $allowed_dynamics_regex = "/^(p{1,5}|f{1,5}|m(p|f)|s(p{1,2}|f{1,2})|fp|(s|r)fz)$/"; | ||||
|     if(!preg_match($allowed_dynamics_regex, $check_dynamic)) | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| function validate_get_parameter() | ||||
| { | ||||
|     if(!(isset($_GET["time"]) && is_valid_time($_GET["time"]))) | ||||
|     { | ||||
|         $_GET["time"] = "4/4"; | ||||
|     } | ||||
|     $_GET["time"] = remove_whitespace($_GET["time"]); | ||||
| 
 | ||||
|     if(!(isset($_GET["tempo"]) && is_valid_tempo($_GET["tempo"]))) | ||||
|     { | ||||
|         $_GET["tempo"] = "4=90"; | ||||
|     } | ||||
|     $_GET["tempo"] = remove_whitespace($_GET["tempo"]); | ||||
| 
 | ||||
|     if(!(isset($_GET["bars"]) && is_valid_bars($_GET["bars"]))) | ||||
|     { | ||||
|         $_GET["bars"] = "2"; | ||||
|     } | ||||
| 
 | ||||
|     if(!(isset($_GET["dynamic_beat"]) && is_valid_dynamic($_GET["dynamic_beat"]))) | ||||
|     { | ||||
|         $_GET["dynamic_beat"] = "pp"; | ||||
|     } | ||||
|     if(!(isset($_GET["dynamic_rhythm"]) && is_valid_dynamic($_GET["dynamic_rhythm"]))) | ||||
|     { | ||||
|         $_GET["dynamic_rhythm"] = "ff"; | ||||
|     } | ||||
| 
 | ||||
|     if(!(isset($_GET["id"]) && is_string($_GET["id"]) && strlen($_GET["id"]) > 1)) | ||||
|     { | ||||
|         $_GET["id"] = md5(random_bytes(60)); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| ?>
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue