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

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

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

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

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

解決済

2回答

9845閲覧

CodeigniterのURLの設定の仕方とパスの位置について知りたい。

Ika3242

総合スコア14

PHP

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

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

0クリップ

投稿2017/09/26 06:57

###前提・実現したいこと
現在、Codeigniterを使ってDBから引っ張ってきたデータを表示させて、データの登録・更新・削除昨日の追加をしようとしています。
ボタンをクリックしてからページ遷移することはできるのですがURLの設定・確認の仕方がわからず、Not foundと表示されてしまいます。
URLの設定とパスの位置が把握できればページが遷移できるのではと思っています。
URLは「localhost/menu」→登録画面へ遷移→「localhost/menu/regist」のように表示されるようにしたいと考えています。
下記のファイル構成の場合、どのようにすればボタンをクリックすればトップ画面から登録画面に遷移するようにできますでしょうか。
漠然かつお任せしてしまう部分が大きいかとは思いますがご教授よろしくお願いします。

ファイル構成
MAMP
┗htdocs
┗test
┗application
┃┗config
┃┃
┃┗controllers
┃┃┗main.php(メインコントローラー)
┃┃
┃┗views
┃┃┗menu.php(トップ画面)
┃┃┗regist.php(登録画面)
┃┃
┃┗langage,model等


┗css・js等

PHP

1 2<!DOCTYPE html> 3<html xmlns="http://www.w3.org/1999/xhtml" > 4<head> 5<meta charset="UTF-8"> 6</head> 7<body> 8 <h2 class="page-title"> 9 トップ画面 10 </h2> 11 <form method="POST" action="regist.php"> 12 <div> 13 <button type="submit">登録画面へ</button> 14 </div> 15 </form> 16</body> 17</html>

###試したこと
コントローラーに下記を追加
$this->load->helper('url');
echo base_url();
これを使って現在のURLを調べる。
「http://[::1]/index.php」と表示されconfig.phpにあるbase_urlに起因しているとわかる。
しかし、どこのindex.phpをみて表示されているのか、menu.phpにするにはどうしたら良いのか。
[::1]に関しては探してみてもみつからない。
どこかデータが壊れてもよろしくないため、上記の変更点は全て元に戻した。
###補足情報(言語/FW/ツール等のバージョンなど)
PHP
Codeigniter
MAMP

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

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

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

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

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

guest

回答2

0

下記の変更を行うとどうでしょうか。
・config.phpのbase_urlに’http://localhost/’を設定する。
・mainをmenuにリネームする
・menuクラスにindexメソッドを定義する、この中でviews/menu.phpをビューとして読み込む。
・menuクラスにregistメソッドを定義する、このメソッドでvirws/regist.phpをビューとして読み込む。
・ボタンが押されたときにmenu/registへ遷移するようにする

投稿2017/09/26 07:11

編集2017/09/26 07:25
yona

総合スコア18155

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

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

Ika3242

2017/09/26 08:07

下記がコントローラで定義したものになるのですがやりたいこととしてはあっていますでしょうか? それと申し訳ないのですがregistメソッド呼び出し方も加えて教えていただけると助かります。。。 class Menu extends CI_Controller { public function index() { $this->load->view('menu'); } public function register() { $this->load->view('register'); } }
yona

2017/09/26 09:50

上記で問題ないと思います。 Menuは表示されましたか? action属性にregisterを設定すると良いですよ。
Ika3242

2017/09/26 10:02

メニューまでは表示されるのですがボタンを押すと下記のようなnot foundになってしまいます。。。 何か設定を間違えているところがあるのでしょうか? Not Found The requested URL /register was not found on this server.
yona

2017/09/26 10:13

base_url(‘menu/register’)にするとどうなりますか?
Ika3242

2017/09/26 13:19

結果としては同じようにnot foundになりました。 echo base_url();だとmenu/register/index.phpになりました
yona

2017/09/26 13:49

config.phpのbase_urlはどのように記載しましたか?
Ika3242

2017/09/27 00:47

返信が遅れてしまい申し訳ございません。 config.phpは以下の記載にしてあります。 $config['base_url'] = 'menu/register';
Ika3242

2017/09/27 01:53

元に戻しました。少し混乱してきたので整理させてください。 トップ画面(viewsのmenu.php)でecho base_url();をすると → http://localhost/ ボタンは下記の通りで良いでしょうか? <form method="POST" action="register"> <div> <button type="submit">登録画面へ</button> </div> </form>
yona

2017/09/27 02:19

まず、今の状態でブラウザにhttp://localhost/menuと入力してください。 menuは表示されますか?
yona

2017/09/27 02:24

main.phpのフルパスを追記してください
Ika3242

2017/09/27 02:38

以下のようなエラーの記述になりました。 Forbidden You don't have permission to access /application/controllers/menu.php on this server.
Ika3242

2017/09/28 00:42

なんとか自己解決することができました。 大変お手数をおかけし、申し訳ありませんでした。
guest

0

自己解決

ボタンでのaction属性の記入を間違えていました。以下メモとして活用
MAMP,CodeIgniterを初期設定で、コントローラーの別メソッドを呼びたい場合は下記のように記述する。
action="index.php/コントローラー名/コントローラー内にあるメソッド"
ずっとaction="遷移先のURL"だと思っていました。。。。

投稿2017/09/28 00:40

Ika3242

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問