контактная форма становится не работает и не показывает сообщение об ошибке - PullRequest
1 голос
/ 04 апреля 2020

Я сделал Laravel контактную форму проекта в год go, и он работал отлично. Я не использовал это. И сегодня я поставил тот же проект на арендуемом веб-сервере (тот же сервер и тот же план), но он не работает. и не будет отображаться сообщение об ошибке.

Первая проблема связана с проверкой. На своем локальном (я использую XAMPP) я могу go на следующей странице, которая подтверждается. php. однако я развернул на своем реальном сервере и заполняю всю информацию в текстовом поле и нажимаю кнопку отправить. но страница обновляется очень быстро и не go следующая страница, которая подтверждается. php. Может кто-нибудь дать мне направление, пожалуйста?

Laravel Framework - 5.7.28

UPDATE

FORM CODE

@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

Это проблема развертывания и маршрутизации ? но это работало год go, и я не менял код ... Я обновляю заголовок 1-й страницы, это index.blade. php

<form class="form-horizontal" role="form" method="post" action="{{url('/mail')}}">

и вот файл .env

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;

А вот модель

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Contact extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
use EncryptsAttributes;
protected $encrypts = [
        'name',        
        'hp',
        'email',
        'body'
];

    protected $fillable = [     
        'name',
        'title',
        'sec',
        'hp',
        'email',
        'body'];

}

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Я думаю, что это поможет вам.

$request->validate([
        'name' => 'required',
        'hp' => 'required',
        'email' => 'required|email'
]);
0 голосов
/ 04 апреля 2020

Изменить это:

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

Кому:

request () -> validate ($ rules);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...