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

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

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

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

Q&A

解決済

3回答

974閲覧

php 会員登録画面でパスワード等を入力して登録ボタンを押すとエラー文が出てくる

na_shi

総合スコア1

PHP

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

0グッド

0クリップ

投稿2021/09/13 03:06

編集2021/11/22 03:09

前提・実現したいこと

PHPで制作したサイトの会員登録画面で名前やパスワードを入力して、確認画面(check.php)から登録完了画面(thanks.php)に移行する際にエラー文を出さずに移行できるようにしたい。

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

Warning: Cannot modify header information headers already sent by (output started at /blog/post/join/check.php:15) in /blog/post/join/check.php on line 19

該当のソースコード


試したこと

ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答3

0

ベストアンサー

dbconnect.phpの中かsession_start()の中でHTMLの出力を始めちゃっていて、そのためすでにHTTPヘッダの出力も済んでしまっているので、header('Location: index.php');でヘッダ出力はもうできず、ウォーニングになっているのでは。

下記と同じ問題かと。

PHP - Warning: Cannot modify header information - headers already sent byのエラーが出ます|teratail

(追記)
先に出力しちゃってるのはheader('Location: thanks.php');の前に自分でechoしてるからでしたね。m.ts10806さんの指摘通り。

投稿2021/09/13 03:14

編集2021/09/13 03:18
itagagaki

総合スコア8402

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

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

0

エラーに言及されてる通りです。

header

覚えておいて頂きたいのは、header() 関数は、 通常の HTML タグまたは PHP からの出力にかかわらず、すべての実際の 出力の前にコールする必要があることです。

なにをするためにそのechoは書いてますか?
もちろん、全半角スペースさえも「出力」とみなされるのでご注意を。

投稿2021/09/13 03:12

編集2021/09/13 03:14
m.ts10806

総合スコア80861

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

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

itagagaki

2021/09/13 03:16

あ、そっちですね
m.ts10806

2021/09/13 03:18 編集

「headerの前で何かしら出力がある」という点は同じですね。 というかエラー出たら思考停止するんじゃなくまず読んでほしい。
na_shi

2021/09/13 04:05

お二方ともありがとうございます。 エラー文の意味を勘違いしていました。 sha1($_SESSION['join']['password']) ここで問題があるのだと思っていました。
guest

0

header('Location: thanks.php');
これを消して、
form action=にthanks.phpを入れたらいけました。

回答してくださった方の意図とは違う形になったかもしれませんが、とりあえず成功したので解決にしたいと思います。

投稿2021/09/13 04:07

na_shi

総合スコア1

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

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

m.ts10806

2021/09/13 05:00

formリクエストを受け取るかどうかで決めたら良いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問