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

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

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

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

HTML

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

Q&A

解決済

1回答

687閲覧

同じページに変数を渡したい

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

HTML

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

0グッド

2クリップ

投稿2021/07/28 13:04

編集2021/07/28 13:04

質問です。
PHPでサーバの各フォルダ(path)にアップしたページの画像を取得して一覧を作ろうとしていますが、ページ遷移の段階でpathが失われてしまいます。
どうすれば変数の値を失わずに済みますでしょうか。
cookieやsessionを使うべきなのでしょうか。教えてください。

HTML&PHP

1<head> 2<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" /> 3<meta charset="UTF-8"> 4<!-- CSS読み込み --> 5<link rel="stylesheet" href="design.css"> 6</head> 7<div class ="posted"> 8<?php 9 10date_default_timezone_set('Asia/Tokyo'); 11 12if(!isset($_POST['file_view'])){ 13 14$page = 0; 15$max_page = 0; 16 17}else{ 18 19global $path; 20$path = $_POST['file_view']; 21// ファイル一覧取得 画像だけの投稿は除ける 22$resent_posts = glob('./'.$path.'/*.php'); 23// 配列を逆に並べ替える 24$resent_posts = array_reverse($resent_posts); 25 26// 新しい順から取得していく 27//$resent_posts = array_slice($resent_posts, 0, 5); 28//foreach ((array)$resent_posts as $php_page) { 29 30//コンテンツの最大数 31$max = 4; 32 33$contents_sum = count($resent_posts); //コンテンツの総数 34$max_page = ceil($contents_sum / $max); //ページの最大値 35 36if (!isset($_GET['page'])) { 37 $page = 1; 38} else { 39 $page = $_GET['page']; 40} 41 42$start = $max * ($page - 1); //スタートするページを取得 43$view_page = array_slice($resent_posts, $start, $max, true); //表示するページを取得 44 45 46$num = 0; 47$page_on = 0; 48// ページ変更実装 49if ($num < $max) { 50$page_on = 1; 51} 52while ($num < $max) { 53// 力技で同名の画像を特定する 54$php_page = array_shift($view_page); 55 56// 画像がなくなったらbreak スクリプトが煩雑になるのでforeachの便利さを感じる 57if ($php_page == null) { 58 break; 59} 60 61$php_page_name = "./".$path."_i/".pathinfo($php_page, PATHINFO_FILENAME); 62$php_page_nophp = "./".$path."/".pathinfo($php_page, PATHINFO_FILENAME); 63 64// タイトル名取得、差分ファイルは取り除 65$title = null; 66// file_get_contentsでソース全部読み込む 67$contents = file_get_contents($php_page); 68// タイトルタグを探すための正規表現 69$pattern = '/<title>(.*?)</title>/i'; 70// preg_matchでページ全体からタイトルタグの中身だけを$matchに抽出 71preg_match($pattern, $contents, $match); 72// タイトルタグが一つだけの場合$match[1]がタイトルタグの中身 73if($match != null){ 74$title = $match[1]; 75} 76 77if ($title != null) { 78 // 拡張子を配列にして順番に画像ファイルが存在するかチェック 79 $php_page_name_ext = ['.png', '.jpg', '.jpeg', '.gif', '.bmp']; 80 foreach($php_page_name_ext as $file_ext){ 81 $php_page_name_check = $php_page_name.$file_ext; 82 // ファイルがあった場合はbreakで抜け出す 83 if (file_exists($php_page_name_check)){ 84 break; 85 } 86 } 87 88 echo '<div>'; 89 echo "<a href= $php_page_nophp >".$title . "<br>" . "\n"; 90 echo "<img src = $php_page_name_check ></a>" . "\n"; 91 echo '</div>'; 92 } 93 $num += 1; 94} 95 96} 97?> 98 <?php if ($page > 1): ?> 99 <a href="pic_viewer.php?page=<?php echo ($page-1); ?>"><<前のページへ </a> 100 <?php endif; ?> 101 <?php if ($page < $max_page): ?> 102 <a href="pic_viewer.php?page=<?php echo ($page+1); ?>">次のページへ>></a> 103 <?php endif; ?> 104</div>

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

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

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

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

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

guest

回答1

0

ベストアンサー

そのglobalは何の効果もないです。
PHPマニュアルにある通り、変数のスコープ(有効範囲)を示すもので、それもリクエストを跨ぐものではないです。

ページングとして成り立たせたいのでしたら、セッションで渡しては如何でしょうか。

投稿2021/07/28 13:50

m.ts10806

総合スコア80875

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

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

退会済みユーザー

退会済みユーザー

2021/07/29 12:24

Sessionで動かせました!ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問