To moje pierwsze zapytanie więc prosze o wyrozumiałość.
Mam problem odnośnie stworzenia formularza zamówienia. Póki co dodalam kilka pól, które w przyszłości zamierzam rozbudować ale niestety po sprawdzeniu wiadomości nie dochodzą. Po wypełnieniu pól formularza wyskakuje komunikat: "Ups, tutaj nic nie ma" i wraca na stronę główną. Formularz robiłąm zgodnie z instrukcją na stronie: https://devcave.pl/dajsiepoznac2017/formula...taktowy-HTML-JS.
Pewnie coś pokręciłam ale dopiero się uczę więc nie rozumiem gdzie jest błąd. Prosze o pomoc. Poniżej wklejam kod.
funtions.php:
<?php use Respect\Validation\Exceptions\NestedValidationException; use Respect\Validation\Rules\Email; use Respect\Validation\Rules\Length; use Respect\Validation\Rules\StringType; use Respect\Validation\Rules\NotEmpty; use Respect\Validation\Validator; require_once __DIR__ . '/vendor/autoload.php'; /** * @param array $form * * @return array of errors */ { $errors = []; $rules = [ 'email' => (new Validator())->addRules([new NotEmpty(), new Email()]), 'name' => (new Validator())->addRules([new NotEmpty(), new StringType(), new Length(4, 78)]), 'message' => (new Validator())->addRules([new NotEmpty(), new StringType(), new Length(8, 6000)]), ]; $validationMessages = (require_once __DIR__ . '/settings.php')['validationMessages']; foreach ($rules as $key => $validator) { /** @var $validator Validator */ try { $validator->setName($key)->assert($form[$key]null);
} catch (NestedValidationException $exception) { $exception->findMessages($validationMessages); $errors[$key] = $exception->getMessages(); } } if (validateReCaptcha($form['g-recaptcha-response']'') === false) {
$errors['recaptcha'][] = "Potwierdź, że nie jesteś robotem!"; } return $errors; } function validateReCaptcha(string $code): bool { $url = 'https://www.google.com/recaptcha/api/siteverify?' . http_build_query([ 'secret' => (require __DIR__ . '/settings.php')['reCaptcha']['secret'], 'response' => $code, ]); $response = json_decode($content, true); return $response['success']; } function getMailer(): Swift_Mailer { $config = (require __DIR__ . '/settings.php')['mailer']; $transport = new Swift_SmtpTransport($config['host'], $config['port']); $transport->setUsername($config['username']); $transport->setPassword($config['password']); return new Swift_Mailer($transport); } { $config = (require __DIR__ . '/settings.php')['mailer']; $mail = new Swift_Message( $params['name'], $params['message'], 'text/plain', 'UTF-8' ); $mail->setFrom($params['userEmail']); $mail->setReplyTo($params['userEmail']); $mail->setTo($config['email']); return $mail; } { $mailer = getMailer(); return $mailer->send(prepareMail($params)); }
emailform.php:
<?php require_once 'swiftmailer/lib/swift_required.php'; $config = require_once 'emailconfig.php'; $secretKey = $config['secretKey']; $userEmail= $_POST['userEmail']; $subject= filter_var($_POST['subject'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES); $messageText= filter_var($_POST['message'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES); $checkIfBot = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secretKey.'&response='.$_POST['g-recaptcha-response']); $recaptcha = json_decode($checkIfBot); if(!filter_var($name, FILTER_VALIDATE_EMAIL)){ $alert = 'To pole jest wymagane!'; } $alert = 'Wpisz swój adres e-mail!'; } $alert = 'Pusta wiadomość? Napisz coś!'; } else if($recaptcha->success===false){ $alert = 'Potwierdź, że nie jesteś robotem!'; } else { $transport = Swift_SmtpTransport::newInstance($config['mailServer'], $config['port']) ->setUsername($config['username']) ->setPassword($config['password']); $mailer = Swift_Mailer::newInstance($transport); $message = Swift_Message::newInstance($subject) ->setFrom($name) ->setReplyTo($email) ->setTo($config['myEmail']) ->setBody($message); $emailSent = $mailer->send($message); if ($emailSent){ $alert = 'Wysłano. Dzięki za wiadomość!'; } else { $alert = 'Coś poszło nie tak.'; } } 'text' => $alert )); ?>