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

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

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

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

1回答

2151閲覧

「laravelタスクリストチュートリアル」 ERR_SSL_PROTOCOL_ERRORが発生する

kazoogon

総合スコア281

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/08/06 06:38

laravelを勉強し始めて、https://readouble.com/laravel/5.1/ja/quickstart.htmlこのチュートリアルをcloud9上でしています。
<問題>
inputタグタスクを書き込んで「タスク追加」ボタンを押す

ERR_SSL_PROTOCOL_ERROR発生

(ブラウザーの)戻るボタンで入力画面にもどる

戻った画面(タスク入力画面)でreload

タスクが追加される

ググって出てくる「cookie,キャッシュを消す」をしても解決しないので、ここで質問させていただきました。

laravel versionは5.1です。下記に必要最低限と思われるファイルを記載しました、他にも「~~のファイルみせてくれ」という要望がありましたら、言ってください。
よろしくお願いします。

app/Http/routes.php

<?php use App\Task; use Illuminate\Http\Request; /* |-------------------------------------------------------------------------- | Application Routes |-------------------------------------------------------------------------- | | Here is where you can register all of the routes for an application. | It's a breeze. Simply tell Laravel the URIs it should respond to | and give it the controller to call when that URI is requested. | */ Route::get('/',function(){ $tasks = Task::orderBy('created_at' , 'asc')->get(); return view('tasks',[ 'tasks'=>$tasks ]); }); Route::post('tutorial/public/task',function(Request $request){ $validator = Validator::make($request->all(),[ 'name' => 'required|max:255', ]); if($validator->fails()){ return redirect('/') ->withInput() ->withErrors($validator); //→これすると$errorsという変数使用可能になる } $task = new Task; $task->name = $request->name; $task->save(); return redirect('/'); }); Route::delete('tutorial/public/task/{id}',function($id){ Task::findOrFail($id)->delete(); return redirect('/'); }); // Route::get('/', function () { // return view('welcome'); // });

resources/views/layouts/app.blade.php

<!DOCTYPE html> <html lang="en"> <head> <title>Laravel Quickstart - Basic</title> <!-- CSSとJavaScript --> </head> <body> <div class="container"> <nav class="navbar navbar-default"> <!-- ナビバーの内容 --> </nav> </div> @yield('content') </body> </html>

resources/views/tasks.blade.php

@extends('layouts.app') @section('content') <!-- Bootstrapの定形コード… --> <div class="panel-body"> <!-- バリデーションエラーの表示 --> @include('common.errors') <!-- 新タスクフォーム --> <form action="tutorial/public/task" method="POST" class="form-horizontal"> {{ csrf_field() }} <!-- タスク名 --> <div class="form-group"> <label for="task" class="col-sm-3 control-label">Task</label> <div class="col-sm-6"> <input type="text" name="name" id="task-name" class="form-control"> </div> </div> <!-- タスク追加ボタン --> <div class="form-group"> <div class="col-sm-offset-3 col-sm-6"> <button type="submit" class="btn btn-default"> <i class="fa fa-plus"></i> タスク追加 </button> </div> </div> </form> </div> <!-- TODO: 現在のタスク --> @if (count($tasks) > 0) <div class="panel panel-default"> <div class="panel-heading"> 現在のタスク </div> <div class="panel-body"> <table class="table table-striped task-table"> <!-- テーブルヘッダー --> <thead> <th>Task</th> <th>&nbsp;</th> </thead> <!-- テーブルボディー --> <tbody> @foreach ($tasks as $task) <tr> <!-- タスク名 --> <td class="table-text"> <div>{{ $task->name }}</div> </td> <td> <!-- TODO: 削除ボタン --> <form action="tutorial/public/task/{{ $task->id }}" method="POST"> {{ csrf_field() }} {{ method_field('DELETE') }} <button>タスク削除</button> </form> </td> </tr> @endforeach </tbody> </table> </div> </div> @endif @endsection

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

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

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

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

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

guest

回答1

0

Laravel以前のCloud9側っぽいので
動作してるURLがhttps://〜:80/なら:80を消したURLで表示してみてください。

https://community.c9.io/t/cloud9-adds-port-80-to-laravel-route/475

投稿2017/08/06 07:21

kawax

総合スコア10377

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

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

kazoogon

2017/08/06 09:37

回答ありがとうございます。↓のように実行してみましたが、ひとつ質問があります。 config/app.php →'url' => 'https://(自分のプロジェクト名).c9users.io/',を書き足す コマンドにてphp artisan serve --host=$IP --port=$PORTを実行 →Laravel development server started on http://0.0.0.0:8080/ [Sun Aug 6 08:53:39 2017] Failed to listen on 0.0.0.0:8080 (reason: Address already in use) 送ってくださったサイトの他の回答者によると、port番号の指定を8050などにすればいけそうだが、ポート番号は勝手にそもそもこっちが決めていいものなのでしょうか?
tsuemura

2017/08/09 16:27

横からすいません。 * http://から始まるアドレスは80番https://から始まるアドレスは443番を使うように決められていて、それ以外のポートを使いたいときはホスト名をhttp://example.com:8080のようにポート番号付きで指定します。 * Webサーバを動かすとき、稼働するホスト名・待ち受けるポートを決める必要があります。 * Cloud9でWebサーバを動かすときには特別なルールがあって、0.0.0.0:8080で動かす必要があります。このIP・ポートは環境変数$IP, $PORTに格納されています。 というわけで、8050番がどこから来たのかリンク先からは分かりませんでしたが、cloud9で8050番で動かしても動作しないのではないかと思います。 failed to listen on 0.0.0.0:8080となってしまうのは、ひょっとして他のコンソールで起動中のWebサーバがあったりしませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問