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

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

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

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

2回答

604閲覧

$_SERVER['PHP_SELF']を使用すると「このサイトにアクセスできません」となります。

genkimitsu

総合スコア2

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2021/10/07 11:48

以下のコードで画像のような表示が出てしまいます。

php

1<?php 2session_start(); 3$self_url = $_SERVER['PHP_SELF']; 4?> 5 6<form action="<?php echo $self_url; ?>"> 7 <input type="text" name="title"> 8 <input type="submit" name="type" value="create"> 9</form> 10 11 12<?php 13if (isset($_POST['type'])) { 14 if ($_POST['type'] === 'create') { 15 $_SESSION['todos'][] = $_POST['title']; 16 } 17} 18 19if (empty($_SESSION['todos'])) { 20 $_SESSION['todos'] = []; 21 echo 'タスクを入力しましょう。'; 22 die(); 23} 24?>

ブラウザに表示された画面
おそらく、

$self_url = $_SERVER['PHP_SELF'];

の部分に原因があるのだと思うのですが、対処法がわかりません。
教えていただけますと、幸いです。

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

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

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

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

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

guest

回答2

0

$_SERVER['PHP_SELF']へのpostでエラーが出る理由はわかりませんが
PHPが動作していないとかそのレベルの話かもしれません
ちなみに$_SERVER['PHP_SELF']はつかってはいけません。
最低でも$_SERVER['SCRIPT_NAME']をご利用ください

エラーの解決ができてないのでなんと言えませんが
ご提示の命題であればこんな風に書くことになると思います

PHP

1<?php 2session_start(); 3$type=filter_input(INPUT_POST,"type"); 4$title=filter_input(INPUT_POST,"title"); 5?> 6 7<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post"> 8 <input type="text" name="title"> 9 <input type="submit" name="type" value="create"> 10 <input type="submit" name="type" value="delete"> 11</form> 12 13 14<?php 15if ($type === 'create'and !empty($title)){ 16 $_SESSION['todos'][] = $title; 17} 18if ($type === 'delete') { 19 unset($_SESSION['todos']) ; 20} 21if(empty($_SESSION['todos'])) { 22 echo 'タスクを入力しましょう。'; 23} 24print_r($_SESSION);

投稿2021/10/08 00:54

yambejp

総合スコア115012

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

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

0

<form action="">ではダメですか?

投稿2021/10/07 12:09

itagagaki

総合スコア8402

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問