Update CodeIgniter system 3.1.0 => 3.1.16
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2019, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,8 +29,8 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
|
||||
* @license https://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
* @filesource
|
||||
@@ -584,7 +584,7 @@ class CI_Form_validation {
|
||||
{
|
||||
if ($row['is_array'] === FALSE)
|
||||
{
|
||||
isset($_POST[$field]) && $_POST[$field] = $row['postdata'];
|
||||
isset($_POST[$field]) && $_POST[$field] = is_array($row['postdata']) ? NULL : $row['postdata'];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1200,7 +1200,7 @@ class CI_Form_validation {
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
elseif ( ! in_array($matches[1], array('http', 'https'), TRUE))
|
||||
elseif ( ! in_array(strtolower($matches[1]), array('http', 'https'), TRUE))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1208,6 +1208,13 @@ class CI_Form_validation {
|
||||
$str = $matches[2];
|
||||
}
|
||||
|
||||
// Apparently, FILTER_VALIDATE_URL doesn't reject digit-only names for some reason ...
|
||||
// See https://github.com/bcit-ci/CodeIgniter/issues/5755
|
||||
if (ctype_digit($str))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// PHP 7 accepts IPv6 addresses within square brackets as hostnames,
|
||||
// but it appears that the PR that came in with https://bugs.php.net/bug.php?id=68039
|
||||
// was never merged into a PHP 5 branch ... https://3v4l.org/8PsSN
|
||||
@@ -1216,18 +1223,7 @@ class CI_Form_validation {
|
||||
$str = 'ipv6.host'.substr($str, strlen($matches[1]) + 2);
|
||||
}
|
||||
|
||||
$str = 'http://'.$str;
|
||||
|
||||
// There's a bug affecting PHP 5.2.13, 5.3.2 that considers the
|
||||
// underscore to be a valid hostname character instead of a dash.
|
||||
// Reference: https://bugs.php.net/bug.php?id=51192
|
||||
if (version_compare(PHP_VERSION, '5.2.13', '==') OR version_compare(PHP_VERSION, '5.3.2', '=='))
|
||||
{
|
||||
sscanf($str, 'http://%[^/]', $host);
|
||||
$str = substr_replace($str, strtr($host, array('_' => '-', '-' => '_')), 7, strlen($host));
|
||||
}
|
||||
|
||||
return (filter_var($str, FILTER_VALIDATE_URL) !== FALSE);
|
||||
return (filter_var('http://'.$str, FILTER_VALIDATE_URL) !== FALSE);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
@@ -1240,9 +1236,16 @@ class CI_Form_validation {
|
||||
*/
|
||||
public function valid_email($str)
|
||||
{
|
||||
if (function_exists('idn_to_ascii') && $atpos = strpos($str, '@'))
|
||||
if (function_exists('idn_to_ascii') && preg_match('#\A([^@]+)@(.+)\z#', $str, $matches))
|
||||
{
|
||||
$str = substr($str, 0, ++$atpos).idn_to_ascii(substr($str, $atpos));
|
||||
$domain = defined('INTL_IDNA_VARIANT_UTS46')
|
||||
? idn_to_ascii($matches[2], 0, INTL_IDNA_VARIANT_UTS46)
|
||||
: idn_to_ascii($matches[2]);
|
||||
|
||||
if ($domain !== FALSE)
|
||||
{
|
||||
$str = $matches[1].'@'.$domain;
|
||||
}
|
||||
}
|
||||
|
||||
return (bool) filter_var($str, FILTER_VALIDATE_EMAIL);
|
||||
|
||||
Reference in New Issue
Block a user