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

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

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

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

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

3回答

2920閲覧

気づけばプロ並み PHP 改訂版にてheaderでエラー

hamuneko12

総合スコア4

PHP

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

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

1クリップ

投稿2021/10/04 11:27

前提・実現したいこと

気づけばプロ並みPHP 改訂版にて学習を行っています。
テキストエディターはVSCODEで記述をしており、
header行でエラーが出てしまいます

Chapter3の分岐画面を作ろう!(p117-P118)で
躓いています

発生している問題・エラーメッセージ

ボタンをクリックするとheaderを記述した行で エラーが起こってしまう。 エラーメッセージ Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\phpshop\product\pro_branch.php:1) in C:\xampp\htdocs\phpshop\product\pro_branch.php on line 10

該当のソースコード

<?php if(isset($_POST['disp'])==true) { if(isset($_POST['procode'])==false) { header('Location:pro_ng.php'); exit(); } $pro_code=$_POST['procode']; header('Location:pro_disp.php?procode='.$pro_code); exit(); } if(isset($_POST['add'])==true) { header('Location: pro_add.php'); exit(); } if(isset($_POST['edit'])==true) { if(isset($_POST['procode'])==false) { header('Location:pro_ng.php'); exit(); } $pro_code=$_POST['procode']; header('Location:pro_edit.php?procode='.$pro_code); exit(); } if(isset($_POST['delete'])==true) { if(isset($_POST['procode'])==false) { header('Location:pro_ng.php'); exit(); } $pro_code=$_POST['procode']; header('Location:pro_delete.php?procode='.$pro_code); exit(); } ?>

試したこと

<!DOCTYPE>などHTMLタグを削除した
・header関数の前にHTMLやprintを除いた

補足情報(FW/ツールのバージョンなど)

有識者の方助言をよろしくお願い致します。

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

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

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

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

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

takasima20

2021/10/04 12:05

php タグの前に改行が入ってたりしませんか?
hamuneko12

2021/10/04 12:33

一行目から始めてるので改行は入っていないです。 補足ですがチャプター2では動きました。
takasima20

2021/10/04 13:21

Windows ですよね? コマンドプロンプトでそのphpファイルをtypeコマンドで表示させた時になんか先頭についてませんか?
hamuneko12

2021/10/04 13:34

それは試してませんでした。 type ディレクトリー でコマンドはあってますか?
hamuneko12

2021/10/04 14:57 編集

先頭に何かついてました C:\>type "C:\xampp\htdocs\phpshop\product\pro_branch.php" ・ソ<?php if(isset($_POST['disp'])==true) { if(isset($_POST['procode'])==false) { header('Location:pro_ng.php'); exit(); } $pro_code=$_POST['procode']; header('Location:pro_disp.php?procode='.$pro_code); exit(); } if(isset($_POST['add'])==true) { header('Location: pro_add.php'); exit(); } if(isset($_POST['edit'])==true) { if(isset($_POST['procode'])==false) { header('Location:pro_ng.php'); exit(); } $pro_code=$_POST['procode']; header('Location:pro_edit.php?procode='.$pro_code); exit(); } if(isset($_POST['delete'])==true) { if(isset($_POST['procode'])==false) { header('Location:pro_ng.php'); exit(); } $pro_code=$_POST['procode']; header('Location:pro_delete.php?procode='.$pro_code); exit(); } ?>
guest

回答3

0

コマンドプロンプトで、
type "エラーが出ているファイルのディレクトリ"
を検索。

その結果、1行目に
・ソ<?php
とよくわからない文字がはいっていました。

記述したコードをテキストエディターにはりつけ、
ファイルをつくりなおし、貼り付けた後、
typeコマンドで確認を行ったところ、
<phpのまえのよくわからない文字が消え、
正常に動きました。

投稿2021/10/08 14:39

hamuneko12

総合スコア4

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

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

0

ベストアンサー

Windows でテキストファイルを UTF-8 で保存した時につく "BOM" てやつですね。
テキストエディタなどでは表示されません。

うまくいってるものもあるとのことなので、そのファイルを作り直したらいけるかも?

だめなら "windows bom 削除" で検索すればいろいろ出てきますよ。

投稿2021/10/04 20:52

takasima20

総合スコア7464

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

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

hamuneko12

2021/10/06 06:02

ファイルを作り直したら動きました! ありがとうございました!
guest

0

有識者でもないですが、xammpとか使って動かしているならば
php.iniの値を変更してみてはどうでしょう?
エラーメッセージで検索してみると色々と出てきますよ。

過去に同じ質問がありますね。見てる本も同じかな?

投稿2021/10/04 12:45

naUc

総合スコア36

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

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

hamuneko12

2021/10/04 12:50

php.iniの値を変更をどのように行えばよろしいでしょうか? 過去の文も確認したのですが、 おそらく間違ってる部分がちがうかと。。。
naUc

2021/10/04 12:57

エラーメッセージは過去記事と同じですね。 自分もこのエラーメッセージは昔遭遇しました。 共有urlには他の方法もございますし、分からければ php.ini 編集 で調べましょう。 前後の余分な空白が入ることでエラー発生もあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問