Итак, я пытаюсь закодировать простую форму веб-сайта. Но у него есть эта ошибка htmlspecialchars.
Я пытался сделать {{ $message }}, но это не сработало. имеет ту же ошибку.
это мой контроллер:
<?php
namespace App\Http\Controllers;
use Mail;
use Illuminate\Http\Request;
class ContactMessageController extends Controller
{
public function create()
{
return view('form');
}
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required',
'email' => 'required|email',
'address' => 'required',
]);
Mail::send('emails.contact-message', [
'message' => $request->message
], function($mail) use($request) {
$mail->from($request->email, $request->name);
$mail->to('[email protected]')->subject('Contact message');
});
return redirect()->back()->with('flash_message', 'thanks');
}
}
а это мой клинок
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8" />
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<title>Customer Details</title>
<meta name = "viewport" content = "width=device-width, initial-scale=1">
<link rel = "stylesheet" type = "text/css" media = "screen" href = "main.css" />
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.3.0/css/bootstrap.min.css" integrity = "sha384-PDle/QlgIONtM1aqA2Qemk5gPOE7wFq8+Em+G/hmo5Iq0CCmYZLv3fVRDJ4MMwEA" crossorigin = "anonymous">
<style>
.invalid-feedback {
display: block;
}
</style>
</head>
<body>
<div class = "container">
<h1>Customer Form</h1>
@if (Session::has('flash_message'))
<div class = "alert alert-success">{{ Session::get('flash_message') }}</div>
@endif
<form method = "post" action = "{{ route('contact.store') }}">
{{ csrf_field() }}
<div class = "form-group">
<label>Full Name : </label>
<input type = "text" class = "form-control" name = "name">
@if ($errors->has('name'))
<small class = "form-text invalid-feedback">{{ $errors->first('name') }}</small>
@endif
</div>
<div class = "form-group">
<label>Email : </label>
<input type = "text" class = "form-control" name = "email">
@if ($errors->has('email'))
<small class = "form-text invalid-feedback">{{ $errors->first('email') }}</small>
@endif
</div>
<div class = "form-group">
<label>Address : </label>
<textarea name = "address" class = "form-control"></textarea>
@if ($errors->has('address'))
<small class = "form-text invalid-feedback">{{ $errors->first('address') }}</small>
@endif
</div>
<div class = "form-group">
<label>Message : </label>
<textarea name = "message" class = "form-control"></textarea>
@if ($errors->has('message'))
<small class = "form-text invalid-feedback">{{ $errors->first('message') }}</small>
@endif
</div>
<button class = "btn btn-primary">Submit</button>
</form>
</div>
</body>
</html>
а это мой контакт-message.blade.php
{{ $message }}
также я пробовал {{дд($сообщение)}}
но это не сработало.
пожалуйста помоги.
да, но и это не помогает.
Вы пытались проверить, что содержит $message? Ошибка возникает даже из этой конкретной переменной?
@NicoHaase, не могли бы вы объяснить, как мне проверить, что содержит сообщение $? я новичок в ларавеле..
Ну, вы могли бы использовать var_dump, echo, возможно dump от Symfony работает, более изощренные подходы начинались бы с XDebug — я не хочу быть грубым и не хочу звучать высокомерно, но это базовое мастерство, которое вам нужно научитесь более эффективно программировать. Вы увидите, что это быстро окупится :)
@NicoHaase спасибо, но я все еще не могу понять....
Можете ли вы поделиться своим представлением сообщения электронной почты.
@rdhawladar содержит только {{ $message }}
@calvinerico Я добавил ответ, надеюсь, он сработает.






Вы должны попробовать это:
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required',
'email' => 'required|email',
'address' => 'required',
]);
$fromName = $request->name;
$subject = "MailSent";
$data = array(
'message' => $request->message
);
$fromEmail = $request->email;
$toName = 'test';
$toEmail = '[email protected]';
Mail::send('emails.contact-message', $data, function($message) use ($toEmail, $toName, $fromEmail, $fromName, $subject){
$message->from($fromEmail, $fromName);
$message->to($toEmail, $toName);
$message->subject($subject);
});
return redirect()->back()->with('flash_message', 'thanks');
}
}
Пожалуйста, объясните, что именно вы изменили и почему это имеет значение
@NicoHaase: я изменил функцию отправки почты
я пробовал, но тоже не работает. все та же ошибка.
Какой точно вы изменили и почему вы думаете, что это решает проблему? Как давний пользователь SO, вы должны знать, что эти объяснения имеют решающее значение, поскольку ОП должен уметь учиться на вашем ответе.
Просто измените ключ массива с message на messages в вашем контроллере, как показано ниже:
$data = array(
'messages' => $request->message
);
а также в лезвии напечатайте его как {{$messages}}
A $message variable is always passed to e-mail views, and allows the inline embedding of attachments. So, it is best to avoid passing a message variable in your view payload.
Проверьте примечание по этой ссылке: http://laravel.com/docs/5.0/mail#basic-использование
Добро пожаловать @calvinerico. Поскольку вы новичок, просто чтобы вы знали, что если какой-либо ответ вам подходит, вы можете принять его, и принятие идеального ответа повысит ценность вашего профиля. См. подробности здесь: stackoverflow.com/help/someone-answers
Спасибо! Это относится к Laravel 5.8, и эта запись о $message была удалена из документации. Не уверен, почему...
Они должны каким-то образом сказать такие вещи на странице отладки. Я искал везде и перепробовал множество способов отправки данных. О Боже.
Спасибо за это, я бился головой об экран, пока не нашел этот пост и не понял, что происходит какое-то зарезервированное слово BS. Вздох. Спасибо!
видели это? stackoverflow.com/questions/40045920/…