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

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

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

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

HTML

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

Q&A

解決済

1回答

506閲覧

PHP 一部実行されない

nanasinogonntya

総合スコア18

PHP

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

HTML

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

0グッド

1クリップ

投稿2022/09/11 04:22

編集2024/03/26 15:04

PHPのスクリプト"setcookie","header"が動きません。
動かない部分の隙間に"echo"を入れたら動きます。

php

1<?php 2 3session_start(); 4 5//メニューバーの読み出し 6$manu_file = "URL"; 7echo file_get_contents($manu_file); 8 9if (isset($_POST['_login'])) { 10 11 $user = $_POST['user']; 12 $pas = $_POST['pas']; 13 14 $fp = "../user/data/".$user."/data.txt"; 15 16 $data = file_get_contents($fp); 17 18 $data = explode(",",$data); 19 20 $url = 21 22 23 if ($data[0] == $user) { 24 if ($data[1] == $pas) { 25 setcookie("UserName",$user,time()+60*60*24*1800,"/"); //動か 26 setcookie("DispName",$data[2],time()+60*60*24*1800,"/"); //ない 27 header("Location:$url"); //部分 28 //echo は動く 29 } else { 30 echo "ユーザー名 または パスワードが違います"; 31 } 32 } else { 33 echo "ユーザー名 または パスワードが違います"; 34 } 35} 36?> 37<h1>かさ上げ</h1> 38<form method="post"> 39 <input type="text" name="user"> 40 <dir></dir> 41 <input type="password" name="pas"> 42 <input type="submit" name="_login"> 43</form> 44

サーバーの問題かもしれません。
昨日は動きました

php.ini を編集していたので昨日と同じ設定に戻しました。
それでも動きませんでした。

エラーも特にありません。

url のサイトは下です
上のコメントに書いてある通りメニューバーのスクリプトです。

php

1<meta charset="utf-8"> 2<meta name="viewport" content="width=device-width, initial-scale=1"> 3<title><?php echo $_GET['SitePlace']; ?></title> 4<link rel="stylesheet" type="text/css" href="~~~/manu.css"> 5<!-- site top manu --> 6<link rel="icon" type="image/png" href="~~~~/icon.png"> 7<!-- site icon --> 8 9<nav> 10 <a href="//lipilea.jp/gamo/home.php"> 11 <img style="position: absolute; top: 0px;left: 0px;" src="~~~~/home.jpg"> 12 </a> 13 <ul> 14 <li><a href="~~~~/source.php?SitePlace=Board">掲示板</a></li> 15 <li><a href="~~~~/source.php?SitePlace=Sell">売買</a></li> 16 <li><a href="~~~~/source.php?SitePlace=Blog">ブログ</a></li> 17 </ul> 18</nav> 19

なぜecho は動くんでしょうね?

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

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

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

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

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

m.ts10806

2022/09/11 04:30 編集

「動く」「動かない」では分からないので、起きている現象を具体的に記載してください。 想定している挙動と実際に起きている現象ですね。 何のために何を実現しようとして実装されたものかは書かれないことには伝わりませんので(何がしたいのか伝わらないと応えようがないのです)
m.ts10806

2022/09/11 04:31

ところで、$urlの設定値は実在のアクセス先のようですが、公開しても問題ないものですか?
m.ts10806

2022/09/11 06:31

対応されたように見えないので再掲します。 ------------------------------------- 「動く」「動かない」では分からないので、起きている現象を具体的に記載してください。 想定している挙動と実際に起きている現象ですね。 何のために何を実現しようとして実装されたものかは書かれないことには伝わりませんので(何がしたいのか伝わらないと応えようがないのです)
guest

回答1

0

ベストアンサー

回答

PHP

1echo file_get_contents($manu_file);

これが問題です。
setcookie()header()の関数より前に文字列の出力があると、動かなくなります。
とりあえず消してみてちゃんと動くようになったら、位置を調整してみてください。

昨日は動きました

は、多分file_get_contents()が失敗していたんじゃないかと予想します。

そもそも論

エラーも特にありません。

これはエラー表示周りの設定が適切ではないからです。
とりあえず、今回のスクリプトの<?php の直後に

PHP

1ini_set('display_errors', "On"); 2ini_set('error_reporting', E_ALL);

を追記してみてください。
そうすると
Warning: Cannot modify header information - headers already sent by
というエラーが表示されるはずです。
(かつ、エラーメッセージで検索すると、回答のような答えにたどり着けます。)

エラー表示を適切に行わずにバグを発見するのは困難なので、まずは
PHP エラー 設定あたりで検索して、適切にエラーメッセージを表示(もしくはログに出力)されるように設定することをお勧めします。

投稿2022/09/12 12:55

tanat

総合スコア18713

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

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

nanasinogonntya

2022/09/12 13:09 編集

file_get_contents でメニューバーを表示してちゃんと動作はしているんですよね... エラー出してみます。
tanat

2022/09/12 13:22

> file_get_contents でメニューバーを表示してちゃんと動作はしているんですよね... この場合、メニューバーが出ちゃうとheader()やsetcookie()が動かないという趣旨の回答になります。 メニュー周りの処理をheader()やsetcookie()より後ろに動かす必要があります。
nanasinogonntya

2022/09/13 10:47

メニューバー読み込みこみを 一番最後に記述するとちゃんと動作しました ありがとうござました!
tanat

2022/09/13 11:17

解決してよかったです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問