登录的時刻候报错
警告: ヘッダー情報は変更できません - ヘッダーはすでに送信されています (出力は D:wampwwwbbblogin.php:2 で開始されます) の D:wampwwwbbbbincludeslogin.func.php の 36 行目
警告: ヘッダーは変更できません情報 - ヘッダーすでに送信済み (出力は D:wampwwwbbblogin.php:2 で開始) D:wampwwwbbbincludeslogin.func.php のオンライン 37
警告: ヘッダー情報は変更できません - ヘッダーはすでに送信されています (出力は D:wampwwwbbblogin.php:2 で開始) ) D:wampwwwbbbincludesglobal.func.php の 40 行目
?
global.func.php代码如下:
/**
* TestGuest バージョン 1.0
* ========================================== ======
* コピー 2010-2012 yc60
* ウェブ: http://www.yc60.com
* ====================== ==========================
* 著者: Lee
* 日付: 2010-8-11
*/
/**
*_runtime() は実行時間を取得するために使用されます
* @access public は関数がパブリックであることを意味します
* @return float は返される数値が浮動小数点数であることを意味します
*/
function _runtime() {
$_mtime = explode(' ',microtime());
return $_mtime[1] + $_mtime[0];
}
/**
* _alert_back() テーブルは JS ポップアップ ウィンドウです
* @access public
* @param $_info
* @return void ポップアップ ウィンドウ
*/
function _alert_back($_info) {
echo "";
exit();
} else {
header('場所:'.$_url);
}
}
/**
* _login_state ログイン状態の判定
*/
function _login_state() {
if (isset($_COOKIE['username'])) {
_alert_back('登录状態态無法进行本操作!');
}
}
/**
* _session_destroy删除セッション
*/
function _session_destroy() {
session_destroy();
}
/**
* Cookie _unsetcookies() を削除します
*/
function _unsetcookies() {
setcookie('username','',time()-1);
setcookie('uniqid','',time()-1);
_session_destroy();
_location(null,'index.php');
}
/**
*
*/
function _sha1_uniqid() {
return _mysql_string(sha1(uniqid(rand(),true)));
}
/**
* _mysql_string
* @param string $_string
* @return string $_string
*/
function _mysql_string($_string) {
//get_magic_quotes_gpc()如果开启状態态,那么就不要转义
if (!GPC) {
return mysql_real _escape_string($_string );
}
return $_string;
}
/**
* _check_code
* @param string $_first_code
* @param string $_end_code
* @return void 検証コードの比較
*/
function _check_code($_first_code,$_end_code) {
if ($_first_code != $_end_code) {
_alert_back('验证码不正确!');
}
}
/**
* _code()は認証コードの関数です
* @access public
* @param int $_widthは認証コードの長さを表します
* @param int $_heightは認証コードの高さを表します
* @param int $_rnd_code検証コードのビットを表します 数値
* @param bool $_flag は検証コードに境界線が必要かどうかを示します
* @return void この関数は実行後に検証コードを生成します
*/
function _code($_width = 75,$_height = 25,$_rnd_code = 4,$_flag = false) {
//($i=0;$i<$_rnd_code;$i++) {
のランダム コード
を作成します。 $_nmsg .= dechex(mt_rand(0,15));
}
//セッションに保存
$_SESSION['code'] = $_nmsg //画像を作成
$_img = imagecreatetruecolor($ _width; ,$_height);
//White
$_white = imagecolorallocate($_img,255,255,255);
//Fill
imagefill($_img,0,0,$_white); //黒、境界線
$_black = imagecolorallocate($_img,0,0,0);
imagerectangle($_img,0,0,$_height-1,$_black);
/ /すぐに 6 本の線を描画します
for ($i=0;$i<6;$i++) {
$_rnd_color = imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)); $_img,mt_rand(0,$_width),mt_rand(0,$_height),mt_rand(0,$_width),mt_rand(0,$_height),$_rnd_color)
}
//雪の結晶
for ($ i=0;$i<100;$i++) {
$_rnd_color = imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
imagestring($_img,1, mt_rand(1, $_width),mt_rand(1,$_height),'*',$_rnd_color);
}
//($i=0;$i
imagestring($_img,5,$i*$_width/$_rnd_code +mt_rand(1) ,10),mt_rand(1,$_height/2),$_SESSION['code'][$i],$_rnd_color)
}
//出力画像
header('Content-Type: image/png' );
imagepng($_img);
//
imagedestroy($_img) を破棄します } ?>
ディスカッションに返信 (解決策) )
D:wampwwwbbblogin.php:2 で開始された出力
は、D:wampwwwbbblogin.php の 2 行目に出力があることを意味します
出力は D:wampwwwbbblogin.php:2 で開始されました
は、D:wampwwwbbblogin.php の 2 行目に出力があることを意味します
これは、login.php のコードです:
/**
* TestGuest バージョン 1.0
* ========================================== ======
* コピー 2010-2012 yc60
* ウェブ: http://www.yc60.com
* ====================== ==========================
* 著者: Lee
* 日付: 2010-8-21
* /
session_start();
//ファイルの呼び出しを許可する定数を定義します
define('IN_TG',true);
//このページのコンテンツを指定する定数を定義します
define('SCRIPT ',' login');
//公開ファイルを導入します
require dirname(__FILE__).'/includes/common.inc.php';
//ログインステータス
_login_state()
//ログインステータスの処理を開始します
if ($_GET ['action'] == 'login') {
//悪意のある登録やクロスサイト攻撃を防ぐため
_check_code($_POST['code'],$_SESSION['code'])
//はじめに検証ファイル
include ROOT_PATH.'includes/login.func.php';
//データを受け入れる
$_clean ['username'] = _check_username($_POST['username'],2, 20);
$_clean['password'] = _check_password($_POST['password'],6);
$_clean['time'] = _check_time($_POST['time']);データベースを検証するために移動します
if (!!$_rows = _fetch_array("SELECT tg_username,tg_uniqid FROM tg_user WHERE tg_username='{$_clean['username']}' AND tg_password='{$_clean['password']}' AND tg_active= '' LIMIT 1")) {
_close();
_session_destroy();
_setcookies($_rows['tg_username'],$_rows['tg_uniqid'],$_clean['time']);
_location (null ,'index.php');
} else {
_close();
_location('ユーザー名とパスワードが間違っているか、アカウントがアクティブ化されていません。 ','login.php');
}
}
?>
誰が教えてくれますか〜ありがとう
ほとんどの BOM は utf-8 BOM です
これをどう変更すればよいですか?
エディタで開き、ファイルとして保存し、保存時に BOM なしの UTF-8 を選択する場合もありますが、これは同じことを意味します
初心者さん、急いでください
です。私のphp.iniのoutput_bufferingがオフになり、Just onに変更されました