1.000.000đ
Giáo dục giới tính nhằm hướng tới đối tượng tuổi vị thành niên (10 - 19 tuổi) và giới trẻ (cho tới 25 tuổi) nhằm cung cấp cho lứa tuổi này những hiểu biết cần thiết để xây dựng mối quan hệ nhân văn và có trách nhiệm giữa hai giới, biết tự bảo vệ và để hình thành nên một nhân cách tích cực với những phẩm chất đạo đức mà xã hội đang mong đợi. Muc tiêu đã rõ ràng, nhưng cho đến nay chúng ta vẫn chưa định hình được một chương trình giáo dục giới tính (GDGT) đích thực, phù hợp với văn hóa dân tộc và xu thế phát triển của xã hội nước ta. Giáo dục sức khỏe sinh sản và giáo dục dân số là hai chủ đề lớn đã được đưa vào nhà trường trong thời gian qua, góp phần tích cực vào việc ổn định và nâng cao chất lượng dân số, phòng chống căn bệnh thế kỷ HIV/AIDS. Nhưng đối với lứa tuổi thanh thiếu niên còn nhiều vấn đề cần được cộng đồng quan tâm, đó là những hành vi xã hội đáng lo ngại đang diễn ra ở lứa tuổi này (từ bạo lực học đường cho đến tội phạm các loại, kể cả sử dụng ma túy, đua xe…), vì vậy giáo dục thanh thiếu niên cần một nội dung toàn diện hơn. Với mong muốn góp phần xây dựng một chương trình giáo dục hợp lý nhất cho thanh thiếu niên, tôi cho ra đời khóa học “Giáo dục giới tính cho thanh thiếu niên” hi vọng sẽ giúp các bạn thanh thiếu niên, những người trẻ có thêm những kiến thức, kĩ năng hiểu về sức khỏe giới tính và cả các bậc phụ huynh có thêm những kĩ năng trong việc giáo dục giới tính cho con.
LỢI ÍCH CỦA KHÓA HỌC
- Cha mẹ biết cách thấu hiểu con
- Cha mẹ biết cách ứng xử trong những trường hợp thắc mắc về giới tính
- Cha mẹ biết cách giáo dục con về những bí ẩn về giới tính phát triển tốt nhất
- Cha mẹ sẽ có một tư duy tích cực khi giáo dục con
- Con trẻ sẽ biết cách tự bảo vệ mình và tránh những trường hợp xâm hại giới tính.
- Con trẻ sẽ biết cách yêu thương và tôn trọng người khác trong từng giai đoạn.
- Con trẻ sẽ biết cách có tính trách nhiệm và hợp tác
- Các con sẽ được “Bình an và Hạnh phúc”
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 | "Zinl3UfVmwivFoz1ZVSHvgAAACk"
|
REDIRECT_HTTPS | "on"
|
REDIRECT_SSL_TLS_SNI | "proparents.vn"
|
REDIRECT_STATUS | "200"
|
UNIQUE_ID | "Zinl3UfVmwivFoz1ZVSHvgAAACk"
|
HTTPS | "on"
|
SSL_TLS_SNI | "proparents.vn"
|
HTTP_ACCEPT | "*/*"
|
HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
|
HTTP_HOST | "proparents.vn"
|
PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
|
SERVER_SIGNATURE | "" |
SERVER_SOFTWARE | "Apache/2"
|
SERVER_NAME | "proparents.vn"
|
SERVER_ADDR | "112.213.91.215"
|
SERVER_PORT | "443"
|
REMOTE_ADDR | "3.17.75.227"
|
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 | "8005"
|
REDIRECT_URL | "/giao-duc-gioi-tinh-cho-thanh-thieu-nien.html"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
SERVER_PROTOCOL | "HTTP/1.1"
|
REQUEST_METHOD | "GET"
|
QUERY_STRING | "" |
REQUEST_URI | "/giao-duc-gioi-tinh-cho-thanh-thieu-nien.html"
|
SCRIPT_NAME | "/index.php"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1714021853.491
|
REQUEST_TIME | 1714021853
|
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"
|