質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1509閲覧

【Laravel】{{ ('文字列') }}と{{ __( '文字列') }}の違い、formのactionもhtmlエスケープした方がいいのか

yor13

総合スコア8

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/03/21 00:46

編集2020/03/21 01:10

質問1
make:authで作られるファイルに、{{ __('文字列') }}というのがあったので、{{ ('文字列') }}と何が違うのか知りたいです。

PHP

1//プロジェクト名\resources\views\auth\register.blade.php 2 3@extends('layouts.app') 4 5@section('content') 6<div class="container"> 7 <div class="row justify-content-center"> 8 <div class="col-md-8"> 9 <div class="card"> 10 <div class="card-header">{{ __('Register') }}</div> 11 12 <div class="card-body"> 13 <form method="POST" action="{{ route('register') }}"> 14 @csrf 15 16 <div class="form-group row"> 17 <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label> 18 19 <div class="col-md-6"> 20 <input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus> 21 22 @error('name') 23 <span class="invalid-feedback" role="alert"> 24 <strong>{{ $message }}</strong> 25 </span> 26 @enderror 27 </div> 28 </div> 29 30 <div class="form-group row"> 31 <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> 32 33 <div class="col-md-6"> 34 <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email"> 35 36 @error('email') 37 <span class="invalid-feedback" role="alert"> 38 <strong>{{ $message }}</strong> 39 </span> 40 @enderror 41 </div> 42 </div> 43 44 <div class="form-group row"> 45 <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label> 46 47 <div class="col-md-6"> 48 <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password"> 49 50 @error('password') 51 <span class="invalid-feedback" role="alert"> 52 <strong>{{ $message }}</strong> 53 </span> 54 @enderror 55 </div> 56 </div> 57 58 <div class="form-group row"> 59 <label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label> 60 61 <div class="col-md-6"> 62 <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password"> 63 </div> 64 </div> 65 66 <div class="form-group row mb-0"> 67 <div class="col-md-6 offset-md-4"> 68 <button type="submit" class="btn btn-primary"> 69 {{ __('Register') }} ここです 70 </button> 71 </div> 72 </div> 73 </form> 74 </div> 75 </div> 76 </div> 77 </div> 78</div> 79@endsection

質問2
Laravelのviewで、

パターン1: <form method="POST" action="URL"> パターン2: <form method="POST" action="{{ url('URL') }}">

どちらの書き方がセキュリティ的には好ましいですか?
おそらくパターン2の方が好ましいと思いますが、そこまで気にしなくてもいいですか?
パターン1で書いているサイトもあれば、パターン2で書いているサイトもあるので。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/03/21 00:48

1のほう、見つけたところに解説はなかったのですか?どこで見つけたのでしょう?出典明示してください。 ドキュメントに何も説明なかったですか?
yor13

2020/03/21 00:56

ソースコードを載せました
yor13

2020/03/21 00:58

ドキュメントも見たのですが、自分が調べた範囲では説明がありませんでした。
m.ts10806

2020/03/21 00:59

あの、「出典」なので、見つけた場所、記事URLなど提示してもらえたらと。 単にコードだけだと「意味はわからないけど使ってみてる自分のコードを解説してほしい」みたいな依頼になってしまいます。
yor13

2020/03/21 01:02

載せたソースコードは、make:authというコマンドで作られるファイルです。自分のコードではないです。
m.ts10806

2020/03/21 01:03

でしたら、その旨記載いただけたらと。
guest

回答2

0

LaravelのAuthのviewで{{ __('文字列') }}というのがあったので、{{ ('文字列') }}と何が違うのか知りたいです。

公式ドキュメント日本語訳 5.8

翻訳に通すか、直で表示するかの違いです。
公式ではないですが、日本語訳版にも書いてあります。

6.x、5.8ともにこの部分に関しては書いてある内容に大差はないです。(見落としてるかもしれませんが

どちらの書き方が好ましいですか?

おそらくパターン2の方が好ましいと思いますが、そこまで気にしなくてもいいですか?
パターン1で書いているサイトもあれば、パターン2で書いているサイトもあるので。

これに関しては完全に要件次第です。

投稿2020/03/21 01:01

編集2020/03/21 01:08
kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yor13

2020/03/21 01:08

セキュリティ的にはどちらでも問題ないですか?
kyoya0819

2020/03/21 01:12

どういう観点でのセキュリティですか?
yor13

2020/03/21 01:13

質問2の方です
yor13

2020/03/21 01:13

xssの対策です
yor13

2020/03/21 01:21

自己解決しました。
m.ts10806

2020/03/21 01:23

XSS気にされるならそういう文字列をURLとして指定してみたら良いのでは…。
guest

0

ベストアンサー

__()は翻訳。
https://readouble.com/laravel/7.x/ja/helpers.html#method-__
これはLaravelではなく、もっと昔からの慣習。WordPress・CakePHP・Symfonyにもある。

url()でもなくroute()使うことが多い。
url()使ってもあまり変わらないけどroute()だと変わる。
サイト内の構成を変える=URLを変えることはたまにあるけどroute()で使っていればviewの変更は少ない。

投稿2020/03/21 01:14

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問