245.000đ
PHÂN TÍCH THÀNH PHẦN
Purified water : Nước tinh khiết
Glycerin : là chất hút ẩm từ không khí xung quanh và giúp giữ độ ẩm trong da , Phù hợp với tất cả loại da và mọi lứa tuổi . Glycerin Dưỡng ẩm và làm mềm da ,Ngăn ngừa quá trình lão hóa , Điều trị mụn trứng cá ,Làm sạch da mặt, ngăn ngừa kích ứng da trong quá trình làm sạch da mặt ,Ngăn sự bức xạ của các tia UVA – UVB.
PEG-7 GLYCERYL COCOATE : là ester đi từ glycerin và dầu dừa. PEG-7 với hàng loạt các công dụng gồm nhũ hóa, cung cấp độ ẩm cho da, tăng tính thấm ướt bề mặt da và tăng cường bọt.
Cocamidopropyl betaine : làm sạch da chết trên da , cung cấp dưỡng chất da da khỏi bị bào mòn da.
Sodium Laureth Sulfate: Thành phần tạo bọt , làm sạch và loại bỏ các chất dư thừa trên da.
Disodium Cocoamphodiacetate : Tạo bọt nhẹ và dưỡng ẩm cho da
Peg 40 hydrogenated castor oil : Giúp làm mềm da , dưỡng ẩm cao , chống khô da trong thời tiết khô hanh oi bức , Giảm nhờn dít và giúp da mềm khô thoáng bề mặt da sau khi rửa mặt , dùng thay thế cho dầu khoáng trong sản xuất mỹ phẩm , ngăn chặn sự thoát nước và cung cấp độ ẩm phù hợp cho từng loại da, có tác dụng chống nắng bảo vệ da.
Phenoxyethanol : là một chất lỏng không màu với mùi dễ chịu, chống côn trùng, sát trùng, chất bảo quản .
Fragrance : Tinh chất hương thơm .
Aloe barbadensis leaf juice : được dùng trong điều trị, kiểm soát, phòng chống kích ứng da .
Sodium chloride : Còn được gọi là muối , muối chịu trách nhiệm cao nhất đối với độ mặn của nước biển và của dịch ngoại bào của nhiều sinh vật đa bào. Nó được liệt kê trong Danh sách mô hình các loại thuốc thiết yếu của Tổ chức Y tế Thế giới. Kiểm soát phân phối nước , cần bằng chất lỏng và áp suất thẩm thấu của chất lỏng cơ thể.
Lactic acid : Giúp làm mờ các vết nhăn , thông thoáng lỗ chân lông , cải thiện bề mặt da , giảm thâm nám , làm sáng và cải thiện sắc tố da .
Ethylhexylglycerin : là chất lỏng trong suốt không màu , Ethylhexylglycerin có chức năng giữ ẩm tuyệt vời đóng vai trò kháng khuẩn trong công thức. Ethylhexylglycerin cũng có thể đạt được hiệu quả khử mùi đáng kể, ức chế hiệu quả sự phát triển và sinh sản của vi khuẩn gây mùi và không ảnh hưởng đến hệ thực vật da có lợi của cơ thể, điều này có lợi cho việc bảo vệ sức khoẻ con người.
Potassium Sorbate : là một trong những chất bảo quản cho cả dòng thực phẩm và mỹ phẩm. Nó được tìm thấy trong acid của một số loại trái cây. Nó là một trong những hóa chất an toàn nhất và phổ biến nhất hiện nay dùng cho chất bảo quản.
Sodium Benzoate : Có khả năng chống lại nấm mốc và một số loại vi khuẩn hoạt động bề mặt. Nó cần phải kết hợp với các chất bảo quản khác để có thể tăng cường hiệu quả kháng khuẩn.
HƯỚNG DẪN SỬ DỤNG
BƯỚC 1: Làm ướt da mặt
BƯỚC 2 :Ấn nhẹ phần đầu cọ để ra bọt,cho lượng bọt vừa đủ.
BƯỚC 3: Bôi đều lên vùng da mặt, dùng đầu cọ massage nhẹ theo chiều vòng tròn trên da để nâng cơ và làm sạch sâu ( không rửa quá 30s)
BƯỚC 4: Rửa lại bằng nước sạch.
if ($this->useLocking) { // ignoring errors here, there's not much we can do about them flock($this->stream, LOCK_EX); } $this->streamWrite($this->stream, $record); if ($this->useLocking) { flock($this->stream, LOCK_UN); } } /** * Write to stream * @param resource $stream * @param array $record */ protected function streamWrite($stream, array $record) { fwrite($stream, (string) $record['formatted']); } private function customErrorHandler($code, $msg) { $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg); } /** * @param string $stream * * @return null|string */ private function getDirFromStream($stream) { $pos = strpos($stream, '://'); if ($pos === false) { return dirname($stream); } if ('file://' === substr($stream, 0, 7)) {
"fwrite(): write of 1678 bytes failed with errno=28 No space left on device"
if ($this->useLocking) { // ignoring errors here, there's not much we can do about them flock($this->stream, LOCK_EX); } $this->streamWrite($this->stream, $record); if ($this->useLocking) { flock($this->stream, LOCK_UN); } } /** * Write to stream * @param resource $stream * @param array $record */ protected function streamWrite($stream, array $record) { fwrite($stream, (string) $record['formatted']); } private function customErrorHandler($code, $msg) { $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg); } /** * @param string $stream * * @return null|string */ private function getDirFromStream($stream) { $pos = strpos($stream, '://'); if ($pos === false) { return dirname($stream); } if ('file://' === substr($stream, 0, 7)) {
$this->createDir(); $this->errorMessage = null; set_error_handler(array($this, 'customErrorHandler')); $this->stream = fopen($this->url, 'a'); if ($this->filePermission !== null) { @chmod($this->url, $this->filePermission); } restore_error_handler(); if (!is_resource($this->stream)) { $this->stream = null; throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url)); } } if ($this->useLocking) { // ignoring errors here, there's not much we can do about them flock($this->stream, LOCK_EX); } $this->streamWrite($this->stream, $record); if ($this->useLocking) { flock($this->stream, LOCK_UN); } } /** * Write to stream * @param resource $stream * @param array $record */ protected function streamWrite($stream, array $record) { fwrite($stream, (string) $record['formatted']); } private function customErrorHandler($code, $msg) { $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg); }
$this->url = $this->getTimedFilename(); $this->close(); } /** * {@inheritdoc} */ protected function write(array $record) { // on the first record written, if the log is new, we should rotate (once per day) if (null === $this->mustRotate) { $this->mustRotate = !file_exists($this->url); } if ($this->nextRotation < $record['datetime']) { $this->mustRotate = true; $this->close(); } parent::write($record); } /** * Rotates the files. */ protected function rotate() { // update filename $this->url = $this->getTimedFilename(); $this->nextRotation = new \DateTime('tomorrow'); // skip GC of old logs if files are unlimited if (0 === $this->maxFiles) { return; } $logFiles = glob($this->getGlobPattern()); if ($this->maxFiles >= count($logFiles)) { // no files to remove return;
* * @author Jordi Boggiano <j.boggiano@seld.be> * @author Christophe Coevoet <stof@notk.org> */ abstract class AbstractProcessingHandler extends AbstractHandler { /** * {@inheritdoc} */ public function handle(array $record) { if (!$this->isHandling($record)) { return false; } $record = $this->processRecord($record); $record['formatted'] = $this->getFormatter()->format($record); $this->write($record); return false === $this->bubble; } /** * Writes the record down to the log of the implementing handler * * @param array $record * @return void */ abstract protected function write(array $record); /** * Processes a record. * * @param array $record * @return array */ protected function processRecord(array $record) {
} $ts->setTimezone(static::$timezone); $record = array( 'message' => (string) $message, 'context' => $context, 'level' => $level, 'level_name' => $levelName, 'channel' => $this->name, 'datetime' => $ts, 'extra' => array(), ); try { foreach ($this->processors as $processor) { $record = call_user_func($processor, $record); } while ($handler = current($this->handlers)) { if (true === $handler->handle($record)) { break; } next($this->handlers); } } catch (Exception $e) { $this->handleException($e, $record); } return true; } /** * Ends a log cycle and frees all resources used by handlers. * * Closing a Handler means flushing all buffers and freeing any open resources/handles. * Handlers that have been closed should be able to accept log records again and re-open * themselves on demand, but this may not always be possible depending on implementation. * * This is useful at the end of a request and will be called automatically on every handler
* @param array $context The log context * @return bool Whether the record has been processed */ public function err($message, array $context = array()) { return $this->addRecord(static::ERROR, $message, $context); } /** * Adds a log record at the ERROR level. * * This method allows for compatibility with common interfaces. * * @param string $message The log message * @param array $context The log context * @return bool Whether the record has been processed */ public function error($message, array $context = array()) { return $this->addRecord(static::ERROR, $message, $context); } /** * Adds a log record at the CRITICAL level. * * This method allows for compatibility with common interfaces. * * @param string $message The log message * @param array $context The log context * @return bool Whether the record has been processed */ public function crit($message, array $context = array()) { return $this->addRecord(static::CRITICAL, $message, $context); } /** * Adds a log record at the CRITICAL level. * * This method allows for compatibility with common interfaces.
* @return void */ public function write($level, $message, array $context = []) { $this->writeLog($level, $message, $context); } /** * Write a message to Monolog. * * @param string $level * @param string $message * @param array $context * @return void */ protected function writeLog($level, $message, $context) { $this->fireLogEvent($level, $message = $this->formatMessage($message), $context); $this->monolog->{$level}($message, $context); } /** * Register a file log handler. * * @param string $path * @param string $level * @return void */ public function useFiles($path, $level = 'debug') { $this->monolog->pushHandler($handler = new StreamHandler($path, $this->parseLevel($level))); $handler->setFormatter($this->getDefaultFormatter()); } /** * Register a daily file log handler. * * @param string $path
* * @param string $message * @param array $context * @return void */ public function critical($message, array $context = []) { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log an error message to the logs. * * @param string $message * @param array $context * @return void */ public function error($message, array $context = []) { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log a warning message to the logs. * * @param string $message * @param array $context * @return void */ public function warning($message, array $context = []) { $this->writeLog(__FUNCTION__, $message, $context); } /** * Log a notice to the logs. * * @param string $message * @param array $context * @return void
*/ public function report(Exception $e) { if ($this->shouldntReport($e)) { return; } if (method_exists($e, 'report')) { return $e->report(); } try { $logger = $this->container->make(LoggerInterface::class); } catch (Exception $ex) { throw $e; // throw the original exception } $logger->error( $e->getMessage(), array_merge($this->context(), ['exception' => $e] )); } /** * Determine if the exception should be reported. * * @param \Exception $e * @return bool */ public function shouldReport(Exception $e) { return ! $this->shouldntReport($e); } /** * Determine if the exception is in the "do not report" list. * * @param \Exception $e * @return bool */
* A list of the inputs that are never flashed for validation exceptions. * * @var array */ protected $dontFlash = [ 'password', 'password_confirmation', ]; /** * Report or log an exception. * * This is a great spot to send exceptions to Sentry, Bugsnag, etc. * * @param \Exception $exception * @return void */ public function report(Exception $exception) { parent::report($exception); } /** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $exception * @return \Illuminate\Http\Response */ public function render($request, Exception $exception) { return parent::render($request, $exception); } }
} /** * Handle an uncaught exception from the application. * * Note: Most exceptions can be handled via the try / catch block in * the HTTP and Console kernels. But, fatal error exceptions must * be handled differently since they are not normal exceptions. * * @param \Throwable $e * @return void */ public function handleException($e) { if (! $e instanceof Exception) { $e = new FatalThrowableError($e); } try { $this->getExceptionHandler()->report($e); } catch (Exception $e) { // } if ($this->app->runningInConsole()) { $this->renderForConsole($e); } else { $this->renderHttpResponse($e); } } /** * Render an exception to the console. * * @param \Exception $e * @return void */ protected function renderForConsole(Exception $e) { $this->getExceptionHandler()->renderForConsole(new ConsoleOutput, $e);
Key | Value |
REDIRECT_UNIQUE_ID | "aB1kMEUZ-BKYA1rsHOT60gAAAAI"
|
REDIRECT_HTTPS | "on"
|
REDIRECT_SSL_TLS_SNI | "www.proparents.vn"
|
REDIRECT_STATUS | "200"
|
UNIQUE_ID | "aB1kMEUZ-BKYA1rsHOT60gAAAAI"
|
HTTPS | "on"
|
SSL_TLS_SNI | "www.proparents.vn"
|
HTTP_ACCEPT | "*/*"
|
HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
|
HTTP_ACCEPT_ENCODING | "gzip, br, zstd, deflate"
|
HTTP_HOST | "www.proparents.vn"
|
PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
|
SERVER_SIGNATURE | "" |
SERVER_SOFTWARE | "Apache/2"
|
SERVER_NAME | "www.proparents.vn"
|
SERVER_ADDR | "112.213.91.215"
|
SERVER_PORT | "443"
|
REMOTE_ADDR | "18.225.254.235"
|
DOCUMENT_ROOT | "/home/proparents/domains/proparents.vn/private_html"
|
REQUEST_SCHEME | "https"
|
CONTEXT_PREFIX | "" |
CONTEXT_DOCUMENT_ROOT | "/home/proparents/domains/proparents.vn/private_html"
|
SERVER_ADMIN | "webmaster@proparents.vn"
|
SCRIPT_FILENAME | "/home/proparents/domains/proparents.vn/private_html/index.php"
|
REMOTE_PORT | "21433"
|
REDIRECT_URL | "/s-a-r-a-mat-cleansing-foam.html"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
SERVER_PROTOCOL | "HTTP/1.1"
|
REQUEST_METHOD | "GET"
|
QUERY_STRING | "" |
REQUEST_URI | "/s-a-r-a-mat-cleansing-foam.html"
|
SCRIPT_NAME | "/index.php"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1746756656.8279
|
REQUEST_TIME | 1746756656
|
APP_NAME | "proparents.vn"
|
APP_ENV | "prod"
|
APP_KEY | "base64:UuF6+mYiV/yaDvS4eAv0mHB3A3jPTvWnOSUstfTCf+Q="
|
APP_DEBUG | "true"
|
APP_LOG_LEVEL | "debug"
|
APP_URL | "https://proparents.vn/"
|
APP_LOG | "daily"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "localhost"
|
DB_PORT | "3306"
|
DB_DATABASE | "proparents_data2"
|
DB_USERNAME | "proparents_user"
|
DB_PASSWORD | "oEEDlkbV"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
SESSION_LIFETIME | "120"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "smtp"
|
MAIL_HOST | "smtp.gmail.com"
|
MAIL_PORT | "587"
|
MAIL_USERNAME | "congdongchamechuyenghiep@gmail.com"
|
MAIL_PASSWORD | "suhefifmiwyvteiq"
|
MAIL_FROM_ADDRESS | "congdongchamechuyenghiep@gmail.com"
|
MAIL_FROM_NAME | "Proparent"
|
MAIL_ENCRYPTION | "tls"
|
QUEUE_CONNECTION | "redis"
|
QUEUE_DRIVER | "redis"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
PUSHER_APP_CLUSTER | "mt1"
|
STORE_TEMPLATE | "organic"
|
PAYMENT_MOMO_SERVER | "https://test-payment.momo.vn"
|
PAYMENT_MOMO_PARTNER | "MOMOZH0L20190313"
|
PAYMENT_MOMO_ACCESS | "eLbFLL4QG99vaAAD"
|
PAYMENT_MOMO_SECRET | "16c7uWFBJ5rAVAstEtmoA5vVX0LGITDt"
|
PAYMENT_ONEPAY_LOCAL_SERVER | "https://onepay.vn/onecomm-pay/vpc.op"
|
PAYMENT_ONEPAY_LOCAL_ACCESSCODE | "G6HUQ6BX"
|
PAYMENT_ONEPAY_LOCAL_MERCHANT | "WBCOSMETIC"
|
PAYMENT_ONEPAY_LOCAL_SECRET | "3D7FF79A36159C4BA956198CE45907D0"
|
CALLBACK_SERVER | "https://wbcosmetic.vn/checkout/payment-result"
|
PRODUCT_PP | "20"
|
NEWS_PP | "10"
|
ARCANEDEV_LOGVIEWER_MIDDLEWARE | "web,auth"
|
YOUTUBE_MAIN | "https://www.youtube.com/embed/-vFKJiQX1m0"
|
HOME_HOTNEWS_ID | "122"
|
HOME_WEEKLY_MEMBER | "12"
|
SELLER_AUTO_APPROVE | "0"
|
SELLER_FILEINFO_ENABLE | "0"
|
ADMIN_MAIL | "wbcosmetic.vn@gmail.com"
|
MENU_POPUP_SLIDE | "" |
VNPOST_USERNAME | "0898499486"
|
VNPOST_PASSWORD | "abcd@1234"
|
Key | Value |
APP_NAME | "proparents.vn"
|
APP_ENV | "prod"
|
APP_KEY | "base64:UuF6+mYiV/yaDvS4eAv0mHB3A3jPTvWnOSUstfTCf+Q="
|
APP_DEBUG | "true"
|
APP_LOG_LEVEL | "debug"
|
APP_URL | "https://proparents.vn/"
|
APP_LOG | "daily"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "localhost"
|
DB_PORT | "3306"
|
DB_DATABASE | "proparents_data2"
|
DB_USERNAME | "proparents_user"
|
DB_PASSWORD | "oEEDlkbV"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
SESSION_LIFETIME | "120"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "smtp"
|
MAIL_HOST | "smtp.gmail.com"
|
MAIL_PORT | "587"
|
MAIL_USERNAME | "congdongchamechuyenghiep@gmail.com"
|
MAIL_PASSWORD | "suhefifmiwyvteiq"
|
MAIL_FROM_ADDRESS | "congdongchamechuyenghiep@gmail.com"
|
MAIL_FROM_NAME | "Proparent"
|
MAIL_ENCRYPTION | "tls"
|
QUEUE_CONNECTION | "redis"
|
QUEUE_DRIVER | "redis"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
PUSHER_APP_CLUSTER | "mt1"
|
STORE_TEMPLATE | "organic"
|
PAYMENT_MOMO_SERVER | "https://test-payment.momo.vn"
|
PAYMENT_MOMO_PARTNER | "MOMOZH0L20190313"
|
PAYMENT_MOMO_ACCESS | "eLbFLL4QG99vaAAD"
|
PAYMENT_MOMO_SECRET | "16c7uWFBJ5rAVAstEtmoA5vVX0LGITDt"
|
PAYMENT_ONEPAY_LOCAL_SERVER | "https://onepay.vn/onecomm-pay/vpc.op"
|
PAYMENT_ONEPAY_LOCAL_ACCESSCODE | "G6HUQ6BX"
|
PAYMENT_ONEPAY_LOCAL_MERCHANT | "WBCOSMETIC"
|
PAYMENT_ONEPAY_LOCAL_SECRET | "3D7FF79A36159C4BA956198CE45907D0"
|
CALLBACK_SERVER | "https://wbcosmetic.vn/checkout/payment-result"
|
PRODUCT_PP | "20"
|
NEWS_PP | "10"
|
ARCANEDEV_LOGVIEWER_MIDDLEWARE | "web,auth"
|
YOUTUBE_MAIN | "https://www.youtube.com/embed/-vFKJiQX1m0"
|
HOME_HOTNEWS_ID | "122"
|
HOME_WEEKLY_MEMBER | "12"
|
SELLER_AUTO_APPROVE | "0"
|
SELLER_FILEINFO_ENABLE | "0"
|
ADMIN_MAIL | "wbcosmetic.vn@gmail.com"
|
MENU_POPUP_SLIDE | "" |
VNPOST_USERNAME | "0898499486"
|
VNPOST_PASSWORD | "abcd@1234"
|