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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

4222閲覧

PHPでecho内にechoと$_SESSIONを入れたらformがうまく表示されない

samlife

総合スコア45

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1グッド

1クリップ

投稿2014/11/19 15:05

php脱初心者に向けて頑張っているものです。

phpで「ヘッダー画像のアップロードを促す」というのを作っています。該当フォルダがない時はアップロードフォームを出現させる、というものなのですが、

<?php //ヘッダー画像がない場合はアップロードを促す if(!file_exists(PATH.'blog/'.$_SESSION["id"])){ echo ' ヘッダー画像を設定しよう<br> <form action="" method="POST" enctype="multipart/form-data"> <input type="file" name="blog_header"> <input type="hidden" name="token" value="<?php echo h($_SESSION["token"]); ?>"> <input type="submit" value="アップロード"> </form>'; } ?>

上記のコードだと、下記のように「">」が表示されてしまいます。エラーなどは出ません。

![イメージ説明]WIDTH:314

おそらく8行目のvalue=""の部分だと思うのですが、echo内でセッション変数をechoすることはできるのでしょうか?

ロリポップレンタルサーバーを使っており、設定は下記のとおりです。サーバーの設定などは関係有るのか、記述方法などの問題なのか。解る方いらっしゃいましたらよろしくお願いします。
![イメージ説明]WIDTH:500

DrqYuto👍を押しています

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

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

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

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

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

guest

回答2

0

<?php?> で閉じる前に再び<?php と記述し2重に開いている部分があります

適切な位置で一度閉じ、再び開始タグを設定する必要があるでしょう
この場合は...

lang

1<?php 2//ヘッダー画像がない場合はアップロードを促す 3if(!file_exists(PATH.'blog/'.$_SESSION["id"])){ 4?> 5ヘッダー画像を設定しよう<br> 6<form action="" method="POST" enctype="multipart/form-data"> 7<input type="file" name="blog_header"> 8<input type="hidden" name="token" value="<?php echo h($_SESSION["token"]); ?>"> 9<input type="submit" value="アップロード"> 10</form> 11<?php } ?>

(いくつかの変数と、h() 関数が見つからない、と言われてしまいましたが ユーザ定義のものか、あるいはフレームワークに定義されていて、問題なく動作しているのですね)

HTML タグが混在する割合が多い場合は、ヒアドキュメントを利用すると、比較的スッキリ書けるように思います

lang

1<?php 2// 実行時エラーを表示させる 3ini_set('display_errors', 1); 4 5function h($str) { 6 return $str; 7} 8 9// 10// ヘッダー画像がない場合はアップロードを促す 11// 12$file_path = $PATH.'blog/'.$_SESSION["id"]; 13if (!file_exists($file_path)) { 14 $token = h($_SESSION["token"]); 15 echo <<<EOT 16 ヘッダー画像を設定しよう<br> 17 <form action="" method="POST" enctype="multipart/form-data"> 18 <input type="file" name="blog_header"> 19 <input type="hidden" name="token" value="$token"> 20 <input type="submit" value="アップロード"> 21 </form> 22EOT; 23} 24?>

Links

投稿2014/11/19 17:59

gouf

総合スコア2321

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

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

0

返事遅くなりました。

回答ありがとうございます。
EOTで囲んで、{$sample}と書くとうまくいきました。

ヒアドキュメントというのは見かけたことはありましたが、使うのははじめてだったので助かりました。これを機に習得したいと思います。

ついでにちょっと質問なのですが、ネット上にEOMとかEOFとか色々書き方があるが、ABCとかでもよくて、要するにその文字列が出てくるまで続ける、的な事を書いてあったのですが、そういう理解で合っていますか?

投稿2014/11/22 07:14

samlife

総合スコア45

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

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

gouf

2014/11/22 10:48

おっしゃるとおり 識別子は、(ヒアドキュメント中に登場しないのであれば)自由に設定することが出来ます。 とくべつにそのヒアドキュメントを識別する必要がある(eg. ヒアドキュメントを多用する, ドキュメントの量が多い)場合に、異なる識別子のペア名を利用する、といったこともあるかもしれません。 ヒアドキュメントの識別子、EOF, EOD, EOT, EOS, .. « DEV MEMO http://blog.favoritesoftware.jp/2013/12/17/%E3%83%92%E3%82%A2%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E8%AD%98%E5%88%A5%E5%AD%90%E3%80%81eof-eod-eot-eos/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問