Mercurial > hg > fapweb
comparison msitegen.inc.php @ 793:ff6e6c6200a4
Add improved error message formatting to stChkRequestItem*() functions.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 21 Nov 2014 23:44:42 +0200 |
parents | cd8a29647c09 |
children | ddb30c989b47 |
comparison
equal
deleted
inserted
replaced
792:b42b23073209 | 793:ff6e6c6200a4 |
---|---|
319 | 319 |
320 return $str.stGetFormOptionListEnd($indent, $outer); | 320 return $str.stGetFormOptionListEnd($indent, $outer); |
321 } | 321 } |
322 | 322 |
323 | 323 |
324 function stErrorStrF($msg, $data) | 324 function stErrorStrF($fmt) |
325 { | 325 { |
326 stError($msg); | 326 $argc = func_num_args(); |
327 $argv = func_get_args(); | |
328 | |
329 $len = strlen($fmt); | |
330 $str = ""; | |
331 $argn = 1; | |
332 for ($pos = 0; $pos < $len; $pos++) | |
333 { | |
334 if ($fmt[$pos] == "%") | |
335 { | |
336 $pos++; | |
337 if ($fmt[$pos] == "%") | |
338 $str .= "%"; | |
339 else | |
340 { | |
341 $n = intval($fmt[$pos]); | |
342 if ($n >= 1 && $n < $argc) | |
343 $str .= $argv[$n]; | |
344 else | |
345 { | |
346 error_log("Invalid stErrorStrF() format string, arg #".$n. | |
347 " referenced, but only has ".$argc." arguments: '".$fmt."'\n"); | |
348 return FALSE; | |
349 } | |
350 } | |
351 } | |
352 else | |
353 $str .= $fmt[$pos]; | |
354 } | |
355 | |
356 stError($str); | |
327 return FALSE; | 357 return FALSE; |
328 } | 358 } |
329 | 359 |
330 | 360 |
331 // | 361 // |
366 function stDoCheckRequestItem($name, &$sdata, $nindex, $argc, $argv) | 396 function stDoCheckRequestItem($name, &$sdata, $nindex, $argc, $argv) |
367 { | 397 { |
368 if (stGetSetting("debug")) | 398 if (stGetSetting("debug")) |
369 { | 399 { |
370 if (!isset($_REQUEST[$name])) | 400 if (!isset($_REQUEST[$name])) |
371 return stErrorStrF("Required data item '".$name."' not set.", $name); | 401 return stErrorStrF("Required data item '%1' not set.", $name); |
372 | 402 |
373 $data = trim($_REQUEST[$name]); | 403 $data = trim($_REQUEST[$name]); |
374 } | 404 } |
375 else | 405 else |
376 { | 406 { |
377 if (!isset($_POST[$name])) | 407 if (!isset($_POST[$name])) |
378 return stErrorStrF("Required data item '".$name."' not set.", $name); | 408 return stErrorStrF("Required data item '%1' not set.", $name); |
379 | 409 |
380 $data = trim($_POST[$name]); | 410 $data = trim($_POST[$name]); |
381 } | 411 } |
382 | 412 |
383 $slen = strlen($data); | 413 $slen = strlen($data); |
394 // Check type of the data | 424 // Check type of the data |
395 switch ($check[1]) | 425 switch ($check[1]) |
396 { | 426 { |
397 case VT_STR: | 427 case VT_STR: |
398 if ($slen == 0) | 428 if ($slen == 0) |
399 return stErrorStrF($check[2], $data); | 429 return stErrorStrF($check[2], $slen); |
400 break; | 430 break; |
401 | 431 |
402 case VT_INT: | 432 case VT_INT: |
403 case VT_BOOL: | 433 case VT_BOOL: |
404 if ($slen == 0 || !is_numeric($data)) | 434 if ($slen == 0 || !is_numeric($data)) |
414 { | 444 { |
415 case VT_STR: | 445 case VT_STR: |
416 case VT_TEXT: | 446 case VT_TEXT: |
417 // Strings get their length checked | 447 // Strings get their length checked |
418 if (!stChkRequestDataItem($check[0], $slen, $check[2])) | 448 if (!stChkRequestDataItem($check[0], $slen, $check[2])) |
419 return stErrorStrF($check[3], $data); | 449 return stErrorStrF($check[3], $slen, $check[2]); |
420 break; | 450 break; |
421 | 451 |
422 case VT_INT: | 452 case VT_INT: |
423 case VT_BOOL: | 453 case VT_BOOL: |
424 // Integer values checked against .. value | 454 // Integer values checked against .. value |
425 if (!stChkRequestDataItem($check[0], intval($data), $check[2])) | 455 if (!stChkRequestDataItem($check[0], intval($data), $check[2])) |
426 return stErrorStrF($check[3], $data); | 456 return stErrorStrF($check[3], intval($data), $check[2]); |
427 break; | 457 break; |
428 } | 458 } |
429 break; | 459 break; |
430 | 460 |
431 case CHK_CUSTOM: | 461 case CHK_CUSTOM: |