以下はauth.phpというファイルです
<?php
function loginFunction($username, $status){
ユーザー定義のログインフォーム。字数の関係でコメ欄に(質問とは関係無いと思います)
}
$params = array(
"dsn" => "mysqli://aaa:aaa@localhost/test",
"table" => "authtable",
"usernamecol" => "username",
"passwordcol" => "password"
);
$authobj = new Auth("DB", $params, "loginFunction");
$authobj->start();
if ($authobj->getAuth()){
echo 'ログイン済み';
}else{
echo '未ログイン';
}
?>
これをhtaccessからrequireすると正常に作動します。その場合はログインフォームがサイトコンテンツより上に来るので実際はサイトのコンテンツ内(サイドバーなど)に表示させたいです。
そこでコンテンツ内でrequireすると「Warning: Cannot modify header information - headers already sent by」 エラーがでます。Header出力の前に出力があるからです。
この場合どうすればいいでしょうか。字数の関係でコメ欄に追記します。みなさんよろしくお願いします。
■Q. Warning: Cannot modify header information
http://pukiwiki.sourceforge.jp/?Q%EF%BC%86A%2F%E3%82%A4%E3%83%B3...
これは、関係ないとおもいますが念のため
■PearのAuthを使った認証システムを作りたいのですが
http://q.hatena.ne.jp/1132304878
このあたりも見られてるとは思いますが・・。
コメント欄がOPENされているので、とりあえずここまで
で回答します。あとはコメント欄で・・。
print("<form method=\"post\" action=".$_SERVER["PHP_SELF"].">");
print("<table>");
print("<tr>");
print("<td>ユーザー名</td>");
print("<td><input type=\"text\" name=\"username\"></td>");
print("</tr>");
print("<tr>");
print("<td>パスワード</td>");
print("<td><input type=\"password\" name=\"password\"></td>");
print("</tr>");
print("<tr>");
print("<td colspan=\"2\"><input type=\"submit\"></td>");
print("</tr>");
print("</table>");
print("</form>");