一年前,我做了Laravel联系表单项目,并且效果很好。我没用过今天,我把这个项目放在租用的Web服务器上(相同的服务器和相同的计划),但是它不起作用。并且不会显示任何错误消息。
第一个问题是关于验证。 在我本地(我使用XAMPP),我可以转到下一个页面,即Confirm.blade.php。但是我部署在我的真实服务器上,并在文本字段中填写了所有信息,然后单击提交。但是页面刷新确实非常快,并且不会进入确认为blade.php的下一页。有人可以给我一个方向吗?
Laravel框架是5.7.28
更新
表格代码
output:
pdf_document:
fig_crop: FALSE
这是部署和路由问题吗?但是它在一年前有效,我没有更改任何代码...我更新了第一页的头,即index.blade.php
@extends('layouts.default_mail')
@section('title', 'test')
@section('content')
<form class="form-horizontal" role="form" method="post" action="{{url('/mail')}}">
<input type="hidden" name="_token" value="{{csrf_token()}}">{{-- CSRF対策--}}
<!--↓↓件名↓↓-->
<div class="form-group">
<label for="name" class="control-label col-sm-2">Name</label>
<div class="col-sm-10 @if($errors->has('name')) has-error @endif">
<input type="text" name="name" id="title" value="{{ old('name') }}" class="form-control" placeholder="" autofocus>
@if($errors->has('name'))
<p class="text-danger" style="margin-bottom: 30px;">{{ $errors->first('name') }}</p>
@endif
<!--/.col-sm-10--></div>
<!--/.form-group--></div>
<!--↑↑件名↑↑-->
<!--↓↓メールアドレス↓↓-->
<div class="form-group">
<label for="email" class="control-label col-sm-2">Email:</label>
<div class="col-sm-10 @if($errors->has('email')) has-error @endif">
<input type="email" name="email" id="email" class="form-control" placeholder="Type Email address" value="{{ old('email') }}" autofocus>
@if($errors->has('email'))
<p class="text-danger" style="margin-bottom: 30px;">{{ $errors->first('email') }}</p>
@endif
<!--/.col-sm-10--></div>
<!--/.form-group--></div>
<!--↑↑メールアドレス↑↑-->
<!--↓↓本文↓↓-->
<div class="form-group">
<label for="body" class="control-label col-sm-2">body</label>
<div class="col-sm-10 @if($errors->has('body')) has-error @endif">
<textarea class="form-control" name="body" id="body" rows="3" placeholder="messages" autofocus>{{ old('body') }}</textarea>
<!--/.col-sm-10--></div>
<!--/.form-group--></div>
<!--↑↑本文↑↑-->
<!--↓↓time and order number ↓↓-->
<input type="hidden" name="sno" class="form-control" value="{{ date('YmdHis') }}">
<input type="hidden" name="time" class="form-control" value="{{ date('Y-m-d H:i:s') }}">
<!--↑↑time and order number ↑↑-->
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary btn-block">submit</button>
</div>
<!--/form-group--></div>
</form>
@endsection
这是.env文件
<form class="form-horizontal" role="form" method="post" action="{{url('/mail')}}">
所有人。谢谢。
APP_URL=http://localhost
这是表格信息
<?php
namespace App\Http\Controllers;
use Mail;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Contact;
class MailController extends Controller
{
public function index(){
return view('mail.index');
}
public function confirm(Request $request)
{
$rules = [
'name' => 'required',
'hp' => 'required',
'email' => 'required|email'
];
$this->validate($request, $rules);
$data = $request->all();
// setting session key value for you data
$request->session()->put('data',$data);
// DEBUG
Log::debug('$data="'.$data.'"');
Log::debug('$request="'.$request.'"');
return view('mail.confirm', compact("data"));
}
/*
* complete page
*/
public function complete(Request $request)
{
$data = $request->session()->pull('data');
$token = array_shift($data);
$Contact = Contact::create($data);
Mail::send(['text' => 'mail.temp'], $data, function($message) use($data){
$message->to($data["email"])->bcc('11223344@yahoo.co.jp')->from('2233@sunshine.online')->subject('Thank you。');});
Mail::send(['text' => 'mail.admintemp'], $data, function($message) use($data){
$message->to('2233@sunshine.online')->from('1122@sunshine.online')->subject('u got mail');});
$data = session()->regenerateToken();
return view('mail.complete');
}
}
这是模特
CREATE TABLE `contact` (
`id` int(10) UNSIGNED NOT NULL,
`name` varchar(100) NOT NULL,
`hp` varchar(100) NOT NULL,
`email` varchar(250) NOT NULL,
`sec` varchar(100) NOT NULL,
`title` varchar(100) NOT NULL,
`body` varchar(100) NOT NULL,
`sno` int(10) NOT NULL,
`time` timestamp NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
答案 0 :(得分:0)
更改此项:
$ this-> validate($ request,$ rules);
收件人:
request()-> validate($ rules);
答案 1 :(得分:0)
我认为这会对您有所帮助。
$request->validate([
'name' => 'required',
'hp' => 'required',
'email' => 'required|email'
]);