でも!!
今まで動作していたBasic認証のコードを、
そのままNetbeansが自動生成したソースに移植しても動作しなくなってしまった。
そのことを解決したときの備忘録。
---
NetBeansで新規PHPを作成した場合、
以下のようなソースが自動で作成される。
//---------------------------------------------------
//Netbeans自動生成ソース抜粋
//---------------------------------------------------
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
// put your code here
//ここに普通はPHPのコードを記載する
?>
</body>
</html>
上記朱記の箇所に、以下のソース抜粋(NG)のようにコード記載したら
Basic認証できなくなってしまった。
(Basic認証の入力画面が表示されない!)
//---------------------------------------------------
//Basic認証コード追加ソース抜粋(NG)
//---------------------------------------------------
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
// put your code here
if ( !isset($_SERVER["PHP_AUTH_USER"])
|| !($_SERVER["PHP_AUTH_USER"] == "hogehoge"
&& $_SERVER["PHP_AUTH_PW"] == "hogehogepasswords") )
{
header("WWW-Authenticate: Basic realm=\"Welcome!! \"");
header("HTTP/1.0 401 Unauthorized");
echo "ユーザまたはパスワードが不正です。\n";
echo "<br>";
echo "サイトアクセスしたい場合は、こちらへ連絡ください。\n";
echo "<br>";
echo "hogehoge@gmail.com\n";
exit;
}
include("/var/www/php-bin/welcome.php");
?>
</body>
</html>
以下のようにしたらうまく動作するようになった。
index.phpとしているのに、"DOCTYPE html"とHTML宣言しているからかな。
理由はよくわからないけど、これで動作するようになったからOK!かな。
//---------------------------------------------------
//Basic認証コード追加ソース抜粋(OK)
//---------------------------------------------------
<?php
if ( !isset($_SERVER["PHP_AUTH_USER"])
|| !($_SERVER["PHP_AUTH_USER"] == "hogehoge"
&& $_SERVER["PHP_AUTH_PW"] == "hogehogepasswords") )
{
header("WWW-Authenticate: Basic realm=\"Welcome!! \"");
header("HTTP/1.0 401 Unauthorized");
echo "ユーザまたはパスワードが不正です。\n";
echo "<br>";
echo "サイトアクセスしたい場合は、こちらへ連絡ください。\n";
echo "<br>";
echo "hogehoge@gmail.com\n";
exit;
}
include("/var/www/php-bin/welcome.php");
?>
<!--To change this template, choose Tools | Templates
and open the template in the editor.-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
// put your code here
?>
</body>
</html>
CentOS6
Netbeas7.0.1
以上
0 件のコメント:
コメントを投稿