ヘッダは一番先に送られる必要があるため、たった1文字でも空白でもヘッダに先立って送られるとブラウザにエラーではじかれてしまいます。出力にかかわらず、すべての実際の出力の前に呼び出す必要があります。タグの前に空白があったとしてもエラーの原因になります。)パラメータstring(string):ヘッダ文字列。ヘッダを追加するかどうかを指定します。複数のヘッダを強制的に生成します。レスポンスコード(ステータスコード)を強制的に指定の値にします。空文字列でないときだけです。ヘッダーを使用します。文などで条件分岐させて、条件により別のページに移動させるなどの使い方ができます。リダイレクトする場合は、300番台のステータスコードを使用します。リダイレクトを表すステータスコードには「301」「302」「303」「307」の4種類があり、用途によって使い分けます。Permanently」を使用します。恒久的に変更されたことを表します。一時的に別のURLへ遷移させたい時に使用します。メソッドでアクセスすることが決められたリダイレクトです。変更する、といった用途で使われます。一時的に別のURLへ遷移させたい時に使用します。POST)をそのまま使う」という違いがあります。指定があり、それをそのままリダイレクト先へ引き継がせたい場合は、307リダイレクトを使います。以下はリダイレクトの例です。関数を使ってスクリプトを終了するようにします。コードで終了タグの後に何もない場合は、終了タグを省略したほうが良いです。ヘッダ特定の時間経過後ページをリフレッシュします。ヘッダのURLで自身のページを参照すれば、自分自身をリフレッシュすることができます。動的にページを生成するので、ブラウザのキャッシュを無効にしたい場合があります。関数を使用すると、強制的にキャッシュを無効にすることができます。関数を使ってキャッシュを無効にしても、ブラウザの種類やユーザーの設定によりキャッシュされてしまうこともあります。以下のように指定すると、強制的に無効にすることができます。過去の日付を指定するとキャッシュを無効にできます。マニュアルには以下の方法が紹介されています。関数でファイルを出力します。関数は、ファイルを読み込んで標準出力(ブラウザ)に書き出します。以下は、画像ファイル(JPEG)をダウンロードさせるサンプルです。:送信されるデータがどのようなものかを示す情報です。:attachment(添付ファイル)と宣言して、添付ファイルの名前を指定します。:ファイルを転送するエンコード(binary)を指定します。:データのサイズをブラウザに伝えます。)は仕様が異なるため、処理を分けます。no-cache」でキャッシュを無効化します。no-cache」を送信するとデータをダウンロードさせられなくなってしまうため「no-cache」以外の「public」か「private」を指定します。認証)方式の一つです。認証は、パスワードがそのままHTTPのネットワークを流れるので、盗聴などセキュリティ上の危険性があるため、機密性の高いセキュリティが必要な場合は向いていません。認証の通信の流れです。クライアントが認証が必要なページをリクエストします。関する情報をクライアントに知らせます。クライアントは、認証領域をユーザに示して、ユーザ名とパスワードの入力を求めます。ユーザによりユーザ名とパスワードが入力されると、クライアントはリクエストに認証ヘッダを追加して再度送信します。認証に成功すると、サーバは認証の必要なページのリクエストを処理します。ユーザ名やパスワードが間違っている場合は、サーバは再び401レスポンスコードを返し、それによりクライアントは再びユーザにユーザ名とパスワードの入力を求めます。パスワードを入力する認証画面が表示されます。以下のグローバル変数で取得することができます。ユーザー名」と表示する例です。存在するかを調べます。初回アクセス時は、存在しないので、以下の記述により認証画面が表示されます。Area」と指定しています。セキュリティゾーンというものを定義して、特定のユーザー名とパスワードを保護することができます。後続する認証ヘッダに対する認証ウィンドウを表示しないようにします。指定した文字列は認証画面で表示されます。表示のされ方はブラウザにより異なります。存在すれば、ユーザー名とパスワードが一致するかを調べます。一致しない場合は、再度認証画面が表示されます。よりメッセージが表示され終了します。使って文字コードを指定します。前述の例では、ユーザー名とパスワードをそのままファイルに記述していますが、実際にはユーザー名とパスワードはハッシュ化しておく方が安全です。関数を使ってハッシュ化しておく例です。関数を使って簡単に生成できます。ファイルに以下のように記述して、ブラウザでプレビューできます。関数を利用しています。して渡す必要があります。複数のページで認証スクリプトを使う複数のページで認証スクリプトを使う場合は、以下の認証スクリプトを「authorize.php」として保存し、認証が必要なページの先頭で「require_once」で読み込むようにします。使ってベーシック認証をする方法もあります。Failed.");?>認証スクリプトを使うページでは以下のように記述します。(Basic認証)パスワードハッシュハッシュ化とは、元のデータから一定の計算手順に従ってハッシュ値と呼ばれる擬似乱数を求め、その値によって元のデータを置き換えることで、パスワードの保管などでよく用いられるます。任意長のデータを固定長のデータに圧縮する操作を「ハッシュ関数」といい、ハッシュ関数によって得られた固定長データのことを「ハッシュ」、あるいは「ハッシュ値」といいます。連想配列(文字列をキーとする配列)のことをハッシュと呼ぶのは、連想配列の実装にハッシュアルゴリズムを用いていたことに由来ししているとのことです。ハッシュ関数の特性の1つに一方向性というものがあり、ハッシュ値から元の文字列を求めることが困難ということです。このような性質のため、パスワードを保管する際にパスワードそのものではなくパスワードのハッシュ値を保管し、認証の際には入力値のハッシュ値と比較する手法(パスワードのハッシュ化)がよく用いられます。作るパスワードが弱いものになってしまいます。発生するようになりました。十分に強いソルトを指定して、セキュリティを確保するようにします。パラメータstr(string):ハッシュ化したい文字列。アルゴリズムの実装によって決まるので、予期せぬ結果となることがあり得ます。戻り値ハッシュ化した文字列を返します。文字未満の文字列を返します。関数を使って文字列(パスワード)をハッシュ化するフォームの例です。die('不正な入力です。die('不正な入力です。}}?><!--$_SERVER['PHP_SELF']も自分自身への送信になるが、$_SERVER['PHP_SELF']をaction属性値として直接<form>タグに記述するとXSS脆弱性となるので、絶対に避ける。「""」(空)にするか、以下のようにhtmlspecialchars()関数でエスケープする。/></form></div><p>以下がハッシュ化されたパスワードです。新しいパスワードハッシュを作ります。関数のページには以下のような記述があります。強力なハッシュを使い、強力なソルトを生成して、それを複数回自動的に適用します。シンプルなラッパーであり、既存のパスワードハッシュと互換性があります。使うことを推奨します。)パラメータpassword(string):ユーザーのパスワード。algo(integer):パスワードのハッシュに使うアルゴリズムを表すパスワードアルゴリズム定数。options(array):オプションを含む連想配列。パスワードアルゴリズム定数のページを参照。生成してデフォルトのコストを使います。戻り値ハッシュしたパスワードを返します。以下は、パスワード「password」を「PASSWORD_BCRYPT」アルゴリズムを指定してハッシュ化する例です。使って文字列(パスワード)をハッシュ化するフォームの例です。PASSWORD_BCRYPT);」に変更になっている点だけです。die('不正な入力です。die('不正な入力です。/></form></div><p>以下がハッシュ化されたパスワードです。