联系表格变为不起作用,并且不会显示错误消息

时间:2020-04-04 16:04:14

标签: laravel

一年前,我做了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;

2 个答案:

答案 0 :(得分:0)

更改此项:

$ this-> validate($ request,$ rules);

收件人:

request()-> validate($ rules);

答案 1 :(得分:0)

我认为这会对您有所帮助。

$request->validate([
        'name' => 'required',
        'hp' => 'required',
        'email' => 'required|email'
]);