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

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

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

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

PHP

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Q&A

2回答

1095閲覧

phpのログイン機能で空欄なのにログイン出来てしまう

miami

総合スコア1

Laravel

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

PHP

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

0グッド

0クリップ

投稿2021/07/16 05:22

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
phpでログイン機能を作っています。
メースアドレスとパスワードを設定しているはずなのでに
空欄でも指定のページ(mypage)へ移動できてしまいます。

どこを変更すべきは教えて欲しいです。

該当のソースコード

<?php session_start(); $error_message = ""; if(isset($_POST["login"])) { if($_POST["e-mail"] == "@gmai.com" && $_POST["current-password"] == "pass") { $_SESSION["e-mail"] = $_POST["e-mail"]; $login_success_url = "{{ asset('/mypage') }}"; header("Location:{$login_success_url}"); exit; } $error_message = "※ID、もしくはパスワードが間違っています。<br> もう一度入力して下さい。"; } ?> <!-- エラーメッセージ --> <?php if($error_message) { echo $error_message; } ?> <div class="Page"> <div class="pageTitle">ログイン</div> <div class="loginForm"> <form action="{{ asset('/mypage') }}" method="POST"> @csrf <!--  Laravel:419|PAGE EXPIREDエラーを防ぐため  --> <label class="label" for="e-mail"><p>メールアドレス</p></label><input type="text" name="e-mail"> <label class="label" for="current-password"><p>パスワード</p></label><input type="current-password" name="current-password"></p> <div><a href="{{ asset('/reset_pass') }}">パスワードを忘れた方</a></div> <div class="button-mypage-new"> <input type="submit" name="login" value="MYPAGEへ" class="button"> <button type="button" class="button">初めての方</button> </div> </form> </div> </div>

補足情報(FW/ツールのバージョンなど)

macでvs codeとlaravelを使っています。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/07/16 06:12 編集

ソースコードは一部分なのかこれで全部なのか。ファイル名とディレクトリ名はどうか。第三者に状況を再現してもらうために必要な情報が足りていないので、丁寧に説明をお願いします。Laravelバージョンによってもいろいろ違うので、phpとLaravelのバージョン情報もしっかり記載してください。
退会済みユーザー

退会済みユーザー

2021/07/16 06:16

その前にLaravelの使い方を何もかも全部間違えてる。こんなレベルの初心者がLaravel使うのは不可能なのでLaravelは捨ててもっと基礎からの学習が必要。
miami

2021/07/16 06:22

Laravelは使う必要があるので私も困っています。
m.ts10806

2021/07/16 06:35

session_start()や$_POST直接利用している時点でLaravel使う意味ない実装になってます。
miami

2021/07/16 06:47

回答有難うございます。 別の方法を検索してみます。
m.ts10806

2021/07/16 07:14 編集

回答ではないです。質問への追記修正依頼です。 回答するほどの内容でもないのでこちらにコメントしています。 このまま作ったところでLaravelは単なるお荷物になるので普通に自前で組んだ方が良いレベルという話ですね。 どうしても使いたいのでしたら、せめて、ドキュメント(日本語訳でOK)は確認しましょう。 ただ「Web職人のためのフレームワーク」がうたい文句なので、他のフレームワークより学習コストは高いです。
guest

回答2

0

Laravelのバージョン、7を使っているのはなにか理由があるのでしょうか。
先端的最新版はバージョン8系で、PHP 7.3以降で動作します。

Laravel 8ですと、Laravel JetstreamやLaravel Breezeといったスターターキットを使えば、
ユーザー管理やログイン機能も備えたものが出来上がりますけれども。

Laravel 6/7ですと、
認証 7.x Laravelの「認証を含むアプリケーションの生成」にあるように、
「laravel new プロジェクト名 --auth」みたいにするとユーザ認証機能付きのものが出来上がります。
(もちろん、予めLaravelからDB接続が利用できるようにしてあることが大前提です。データベース:利用開始 7.x Laravel参照。)

Laravelでの組み方は、

あたりは頻繁に読み返していました。
読んでもわかんないな、手を付けられないな、って思ったら、
まだLaravelをやるべき時期ではないのかもしれません。

投稿2021/07/16 07:43

編集2021/07/16 07:49
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

動かすだけなら

<form action="{{ asset('/mypage') }}" method="POST"> の箇所を <form action="" method="POST"> にすると動くのではないでしょうか?

Laravelを利用するのであれば、web.phpにルーティングを定義し、
routeヘルパ関数などを利用して、ルーティング先のURLへ遷移させて
ログインチェックロジックをコントローラークラスに任せるような記述のほうが
表示と処理を切り分けることができるのでおすすめです
また、Laravelには認証機能も備わってますので、ドキュメントを読んでみてください
Laravel6 認証

投稿2021/07/16 06:14

ya_penguin

総合スコア5

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

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

miami

2021/07/16 06:19

回答有難うございます。laravel7を利用しています。 web.phpに Route::get('/mypage', function () { return view('login/mypage'); }); Route::post('/mypage', function () { return view('login/mypage'); }); を記述しています。 コントローラークラスは触ったことがないので、調べてみます。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問